#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); }