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 |