aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph/qsgdefaultimagenode_p.h
diff options
context:
space:
mode:
authorKim Motoyoshi Kalland <kim.kalland@nokia.com>2012-06-29 17:14:10 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-13 11:25:25 +0200
commitd83eb21fb296b73bd111d907dfb9ecde373b9bb3 (patch)
treefbe6b8be85e5a52094a310a72fe5575b7e4131ee /src/quick/scenegraph/qsgdefaultimagenode_p.h
parent60a13ee3fd021080d92a11b3456602103ad61a79 (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.h26
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;