src/opengl/gl2paintengineex/qglengineshadermanager_p.h
changeset 30 5dc02b23752f
parent 18 2f34d5167611
--- a/src/opengl/gl2paintengineex/qglengineshadermanager_p.h	Wed Jun 23 19:07:03 2010 +0300
+++ b/src/opengl/gl2paintengineex/qglengineshadermanager_p.h	Tue Jul 06 15:10:48 2010 +0300
@@ -272,6 +272,7 @@
         // UntransformedPositionVertexShader must be first in the list:
         UntransformedPositionVertexShader,
         PositionOnlyVertexShader,
+        ComplexGeometryPositionOnlyVertexShader,
         PositionWithPatternBrushVertexShader,
         PositionWithLinearGradientBrushVertexShader,
         PositionWithConicalGradientBrushVertexShader,
@@ -400,7 +401,7 @@
 
     bool                useTextureCoords;
     bool                useOpacityAttribute;
-    bool                usePmvMatrix;
+    bool                usePmvMatrixAttribute;
 
     bool operator==(const QGLEngineShaderProg& other) {
         // We don't care about the program
@@ -446,6 +447,7 @@
         InvertedTextureSize,
         BrushTransform,
         BrushTexture,
+        Matrix,
         NumUniforms
     };
 
@@ -474,6 +476,15 @@
 
     void useSimpleProgram();
     void useBlitProgram();
+    void setHasComplexGeometry(bool hasComplexGeometry)
+    {
+        complexGeometry = hasComplexGeometry;
+        shaderProgNeedsChanging = true;
+    }
+    bool hasComplexGeometry() const
+    {
+        return complexGeometry;
+    }
 
     QGLShaderProgram* currentProgram(); // Returns pointer to the shader the manager has chosen
     QGLShaderProgram* simpleProgram(); // Used to draw into e.g. stencil buffers
@@ -487,6 +498,7 @@
 private:
     QGLContext*     ctx;
     bool            shaderProgNeedsChanging;
+    bool            complexGeometry;
 
     // Current state variables which influence the choice of shader:
     QTransform                  brushTransform;