diff options
author | Kim Motoyoshi Kalland <kim.kalland@nokia.com> | 2012-06-29 17:14:10 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-13 11:25:25 +0200 |
commit | d83eb21fb296b73bd111d907dfb9ecde373b9bb3 (patch) | |
tree | fbe6b8be85e5a52094a310a72fe5575b7e4131ee /src/quick/scenegraph/qsgdefaultimagenode_p.h | |
parent | 60a13ee3fd021080d92a11b3456602103ad61a79 (diff) |
Change antialiasing method for QML2.
Since multisampling can require a lot of memory, and might not
be supported on some hardware, turn off multisampling and
implement antialiasing in the vertex shader instead. The
alternative method of antialiasing is implemented for Rectangle,
Image, BorderImage and AnimatedImage, and must be explicitly
enabled by setting the new antialiasing property.
Task-number: QTBUG-26268
Change-Id: I39a93d978658a494bf51e9f0fd02d8414eb8be12
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Diffstat (limited to 'src/quick/scenegraph/qsgdefaultimagenode_p.h')
-rw-r--r-- | src/quick/scenegraph/qsgdefaultimagenode_p.h | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/quick/scenegraph/qsgdefaultimagenode_p.h b/src/quick/scenegraph/qsgdefaultimagenode_p.h index 9062aff2c2..87b3f7760b 100644 --- a/src/quick/scenegraph/qsgdefaultimagenode_p.h +++ b/src/quick/scenegraph/qsgdefaultimagenode_p.h @@ -44,20 +44,35 @@ #define DEFAULT_PIXMAPNODE_H #include <private/qsgadaptationlayer_p.h> - #include <QtQuick/qsgtexturematerial.h> QT_BEGIN_HEADER QT_BEGIN_NAMESPACE +class SmoothTextureMaterial : public QSGTextureMaterial +{ +public: + SmoothTextureMaterial(); + + void setTexture(QSGTexture *texture); + +protected: + virtual QSGMaterialType *type() const; + virtual QSGMaterialShader *createShader() const; +}; + class QSGDefaultImageNode : public QSGImageNode { public: QSGDefaultImageNode(); virtual void setTargetRect(const QRectF &rect); - virtual void setSourceRect(const QRectF &rect); + virtual void setInnerTargetRect(const QRectF &rect); + virtual void setInnerSourceRect(const QRectF &rect); + virtual void setSubSourceRect(const QRectF &rect); virtual void setTexture(QSGTexture *t); + virtual void setAntialiasing(bool antialiasing); + virtual void setMirror(bool mirror); virtual void update(); virtual void setMipmapFiltering(QSGTexture::Filtering filtering); @@ -71,11 +86,16 @@ private: void updateGeometry(); QRectF m_targetRect; - QRectF m_sourceRect; + QRectF m_innerTargetRect; + QRectF m_innerSourceRect; + QRectF m_subSourceRect; QSGOpaqueTextureMaterial m_material; QSGTextureMaterial m_materialO; + SmoothTextureMaterial m_smoothMaterial; + uint m_antialiasing : 1; + uint m_mirror : 1; uint m_dirtyGeometry : 1; QSGGeometry m_geometry; |