Public Member Functions

QxtFlowViewSoftwareRenderer Class Reference

#include <qxtflowview_p.h>

Inheritance diagram for QxtFlowViewSoftwareRenderer:
Inheritance graph
[legend]
Collaboration diagram for QxtFlowViewSoftwareRenderer:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 QxtFlowViewSoftwareRenderer ()
 ~QxtFlowViewSoftwareRenderer ()
virtual void init ()
virtual void paint ()

Detailed Description

Definition at line 210 of file qxtflowview_p.h.


Constructor & Destructor Documentation

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

Member Function Documentation

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

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines