diff -r e48454f237ca -r 49c70dcc3f17 ganeswidgets/inc/hgtransformedquadrenderer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ganeswidgets/inc/hgtransformedquadrenderer.h Fri May 14 16:57:01 2010 +0300 @@ -0,0 +1,63 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef HGTRANSFORMEDQUADRENDERER_H +#define HGTRANSFORMEDQUADRENDERER_H + +#include "hgquadrenderer.h" +#include +#include + +class QPoint; +class QPainter; +class QRectF; +class QMatrix4x4; +class QSize; +class HgTransformedQuad; + +/** + * Abstract base class for quad renderers, that need to tranform quads manually. (using CPU) + */ +class HgTransformedQuadRenderer: public HgQuadRenderer +{ +public: + + HgTransformedQuadRenderer(int maxQuads); + virtual ~HgTransformedQuadRenderer(); + + virtual HgQuad* getQuadAt(const QPointF& point) const; + virtual bool getQuadTranformedPointsByUserData(QPolygonF& points, const QVariant& userData) const; + virtual QList getVisibleQuads(const QRectF& rect) const; + +protected: + + // this must be called from inheriting class + void init(int maxQuads); + + virtual void transformQuads(const QMatrix4x4& view, const QMatrix4x4& proj, + const QPointF& center, const QSizeF& windowSize); + + virtual void drawTransformedQuads(QPainter* painter, const QRectF& rect); + + virtual HgTransformedQuad* createNativeQuad()=0; + +private: + QList mTransformedQuads; + QList mSortedQuads; +}; + +#endif