ganeswidgets/inc/hgvgquadrenderer.h
changeset 2 49c70dcc3f17
parent 1 e48454f237ca
child 5 4fa04caf0f43
equal deleted inserted replaced
1:e48454f237ca 2:49c70dcc3f17
    16 */
    16 */
    17 
    17 
    18 #ifndef HGVGQUADRENDERER_H
    18 #ifndef HGVGQUADRENDERER_H
    19 #define HGVGQUADRENDERER_H
    19 #define HGVGQUADRENDERER_H
    20 
    20 
    21 #include "hgquadrenderer.h"
    21 #include "hgtransformedquadrenderer.h"
    22 #include <qlist>
    22 #include <qlist>
    23 #include <VG/openvg.h>
    23 #include <VG/openvg.h>
    24 #include <qimage>
    24 #include <qimage>
       
    25 #include <qtransform>
    25 
    26 
    26 class QPoint;
    27 class QPoint;
    27 class QPainter;
    28 class QPainter;
    28 class QRectF;
    29 class QRectF;
    29 class QMatrix4x4;
    30 class QMatrix4x4;
    30 class HgVgQuad;
    31 class HgVgQuad;
    31 class HgVgImage;
    32 class HgVgImage;
    32 class HgImageFader;
       
    33 class QSize;
    33 class QSize;
       
    34 class HgTransformedQuad;
    34 /**
    35 /**
    35  * OpenVG implementation of the HgQuadRenderer.
    36  * OpenVG implementation of the HgQuadRenderer.
    36  */
    37  */
    37 class HgVgQuadRenderer: public HgQuadRenderer
    38 class HgVgQuadRenderer: public HgTransformedQuadRenderer
    38 {
    39 {
    39 public:
    40 public:
    40     HgVgQuadRenderer(int maxQuads);
    41     HgVgQuadRenderer(int maxQuads);
    41     virtual ~HgVgQuadRenderer();    
    42     virtual ~HgVgQuadRenderer();    
    42     virtual HgQuad* getQuadAt(const QPointF& point) const;
    43         
    43     virtual void transformQuads(const QMatrix4x4& view, const QMatrix4x4& proj, 
    44     // From HgQuadRenderer
    44         const QRectF& rect);
    45     virtual void drawQuads(QPainter* painter, const QRectF& rect, 
    45     virtual void drawQuads(const QRectF& rect, QPainter* painter);
    46         const QMatrix4x4& viewMatrix, const QMatrix4x4& projectionMatrix,
    46     virtual bool getQuadTranformedPoints(QPolygonF& points, int index) const;
    47         Qt::Orientation orientation, 
       
    48         const QTransform& sceneTransform);    
    47     virtual HgImage* createNativeImage();
    49     virtual HgImage* createNativeImage();
    48     virtual QList<HgQuad*> getVisibleQuads(const QRectF& rect) const;
       
    49     virtual void setDefaultImage(QImage defaultImage);
    50     virtual void setDefaultImage(QImage defaultImage);
    50     
    51 
    51     // new functions
    52     // new functions
    52     HgVgImage* defaultImage();
    53     HgVgImage* defaultImage();
    53     QSize imageSize(bool mirror=false) const;
       
    54     HgImageFader* imageFader();
       
    55     
    54     
       
    55 protected:
       
    56 
       
    57     // From HgTransformedQuadRenderer
       
    58     virtual HgTransformedQuad* createNativeQuad();
       
    59 
    56 private:
    60 private:
    57     
    61     
    58     QList<HgVgQuad*> mTransformedQuads;
    62     QTransform qtToVgTransform(QPainter* painter, const QTransform& sceneTransform, 
    59     
    63         const QRectF& rect, Qt::Orientation orientation) const;
    60     QList<HgVgQuad*> mSortedQuads;
       
    61 
    64 
    62     HgVgImage* mDefaultVgImage;
    65 private:    
    63 
    66     HgVgImage* mDefaultVgImage;    
    64 };
    67 };
    65 
    68 
    66 #endif
    69 #endif