#include <qxtflowview_p.h>


Public Member Functions | |
| QxtFlowViewSoftwareRenderer () | |
| ~QxtFlowViewSoftwareRenderer () | |
| virtual void | init () |
| virtual void | paint () |
Definition at line 210 of file qxtflowview_p.h.
| QxtFlowViewSoftwareRenderer::QxtFlowViewSoftwareRenderer | ( | ) |
Definition at line 273 of file qxtflowview_p.cpp.
:
QxtFlowViewAbstractRenderer(), size(0, 0), bgcolor(0), effect(-1), blankSurface(0)
{
}
| QxtFlowViewSoftwareRenderer::~QxtFlowViewSoftwareRenderer | ( | ) |
Definition at line 278 of file qxtflowview_p.cpp.
{
surfaceCache.clear();
buffer = QImage();
delete blankSurface;
}
| void QxtFlowViewSoftwareRenderer::init | ( | ) | [virtual] |
Implements QxtFlowViewAbstractRenderer.
Definition at line 312 of file qxtflowview_p.cpp.
References QxtFlowViewAbstractRenderer::dirty, PFREAL_ONE, and QxtFlowViewAbstractRenderer::widget.
Referenced by paint().
{
if (!widget)
return;
surfaceCache.clear();
blankSurface = 0;
size = widget->size();
int ww = size.width();
int wh = size.height();
int w = (ww + 1) / 2;
int h = (wh + 1) / 2;
#ifdef PICTUREFLOW_QT4
buffer = QImage(ww, wh, QImage::Format_RGB32);
#endif
#if defined(PICTUREFLOW_QT3) || defined(PICTUREFLOW_QT2)
buffer.create(ww, wh, 32);
#endif
buffer.fill(bgcolor);
rays.resize(w*2);
for (int i = 0; i < w; i++)
{
PFreal gg = ((PFREAL_ONE >> 1) + i * PFREAL_ONE) / (2 * h);
rays[w-i-1] = -gg;
rays[w+i] = gg;
}
dirty = true;
}
| void QxtFlowViewSoftwareRenderer::paint | ( | ) | [virtual] |
Implements QxtFlowViewAbstractRenderer.
Definition at line 285 of file qxtflowview_p.cpp.
References QxtFlowViewState::backgroundColor, QxtFlowViewAbstractRenderer::dirty, init(), int(), QxtFlowViewState::reflectionEffect, QxtFlowViewAbstractRenderer::state, and QxtFlowViewAbstractRenderer::widget.
{
if (!widget)
return;
if (widget->size() != size)
init();
if (state->backgroundColor != bgcolor)
{
bgcolor = state->backgroundColor;
surfaceCache.clear();
}
if ((int)(state->reflectionEffect) != effect)
{
effect = (int)state->reflectionEffect;
surfaceCache.clear();
}
if (dirty)
render();
QPainter painter(widget);
painter.drawImage(QPoint(0, 0), buffer);
}
1.7.2