Implement QSGVertexColorMaterial::compare and make the class public
authorGunnar Sletta <gunnar.sletta@nokia.com>
Sun, 11 Sep 2011 07:26:05 +0000 (09:26 +0200)
committerKim M. Kalland <kim.kalland@nokia.com>
Mon, 12 Sep 2011 11:00:44 +0000 (13:00 +0200)
Since the opaque state is just as easily settable through the
Blending flag, we ditch it

Change-Id: I92598e3305bd056fdf0711f1fbd6c1be8bf88275
Reviewed-on: http://codereview.qt-project.org/4628
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>

src/declarative/scenegraph/qsgdefaultrectanglenode.cpp
src/declarative/scenegraph/util/qsgvertexcolormaterial.cpp
src/declarative/scenegraph/util/qsgvertexcolormaterial.h [moved from src/declarative/scenegraph/util/qsgvertexcolormaterial_p.h with 94% similarity]

index b49966b..2905f06 100644 (file)
@@ -174,7 +174,7 @@ void QSGDefaultRectangleNode::setGradientStops(const QGradientStops &stops)
             setGeometry(g);
             setFlag(OwnsGeometry);
         }
-        static_cast<QSGVertexColorMaterial *>(material())->setColorsAreOpaque(m_gradient_is_opaque);
+        static_cast<QSGVertexColorMaterial *>(material())->setFlag(QSGMaterial::Blending, !m_gradient_is_opaque);
     }
 
     m_dirty_geometry = true;
index c31e9dc..26edbc2 100644 (file)
@@ -134,20 +134,20 @@ QSGVertexColorMaterial::QSGVertexColorMaterial()
 }
 
 
-
 /*!
-    Sets if the renderer should treat colors as opaque.
+    int QSGVertexColorMaterial::compare() const
+
+    As the vertex color material has all its state in the vertex attributes,
+    all materials will be equal.
 
-    Setting this flag can in some cases improve performance.
+    \internal
  */
 
-void QSGVertexColorMaterial::setColorsAreOpaque(bool opaqueHint)
+int QSGVertexColorMaterial::compare(const QSGMaterial *other) const
 {
-    setFlag(Blending, !opaqueHint);
+    return 0;
 }
 
-
-
 /*!
     \internal
  */
@@ -50,12 +50,12 @@ QT_BEGIN_NAMESPACE
 
 QT_MODULE(Declarative)
 
-class QSGVertexColorMaterial : public QSGMaterial
+class Q_DECLARATIVE_EXPORT QSGVertexColorMaterial : public QSGMaterial
 {
 public:
     QSGVertexColorMaterial();
 
-    void setColorsAreOpaque(bool opaqueHint);
+    int compare(const QSGMaterial *other) const;
 
 protected:
     virtual QSGMaterialType *type() const;