Hide alloc size vs content size below API
Remove old gl shaders class
Move texture matrix to sampler class

git-svn-id: http://skia.googlecode.com/svn/trunk@808 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gpu/src/GrGpuGLFixed.cpp b/gpu/src/GrGpuGLFixed.cpp
index 76494de..efb0990 100644
--- a/gpu/src/GrGpuGLFixed.cpp
+++ b/gpu/src/GrGpuGLFixed.cpp
@@ -25,7 +25,7 @@
 #define SKIP_CACHE_CHECK    true
 
 struct GrGpuMatrix {
-    GrScalar    fMat[16];
+    GLfloat    fMat[16];
 
     void reset() {
         Gr_bzero(fMat, sizeof(fMat));
@@ -34,19 +34,19 @@
 
     void set(const GrMatrix& m) {
         Gr_bzero(fMat, sizeof(fMat));
-        fMat[0]  = m[GrMatrix::kScaleX];
-        fMat[4]  = m[GrMatrix::kSkewX];
-        fMat[12] = m[GrMatrix::kTransX];
+        fMat[0]  = GrScalarToFloat(m[GrMatrix::kScaleX]);
+        fMat[4]  = GrScalarToFloat(m[GrMatrix::kSkewX]);
+        fMat[12] = GrScalarToFloat(m[GrMatrix::kTransX]);
 
-        fMat[1]  = m[GrMatrix::kSkewY];
-        fMat[5]  = m[GrMatrix::kScaleY];
-        fMat[13] = m[GrMatrix::kTransY];
+        fMat[1]  = GrScalarToFloat(m[GrMatrix::kSkewY]);
+        fMat[5]  = GrScalarToFloat(m[GrMatrix::kScaleY]);
+        fMat[13] = GrScalarToFloat(m[GrMatrix::kTransY]);
 
-        fMat[3]  = m[GrMatrix::kPersp0];
-        fMat[7]  = m[GrMatrix::kPersp1];
-        fMat[15] = m[GrMatrix::kPersp2];
+        fMat[3]  = GrScalarToFloat(m[GrMatrix::kPersp0]);
+        fMat[7]  = GrScalarToFloat(m[GrMatrix::kPersp1]);
+        fMat[15] = GrScalarToFloat(m[GrMatrix::kPersp2]);
 
-        fMat[10] = GR_Scalar1;    // z-scale
+        fMat[10] = 1.f;    // z-scale
     }
 };
 
@@ -106,7 +106,6 @@
     GrGLClearErr();
     fTextVerts = false;
 
-    fHWTextureOrientation = (GrGLTexture::Orientation)-1; // illegal
     fBaseVertex = 0xffffffff;
 }
 
@@ -146,9 +145,8 @@
         return false;
     }
 
-    if (fRenderTargetChanged) {
+    if (fDirtyFlags.fRenderTargetChanged) {
         flushProjectionMatrix();
-        fRenderTargetChanged = false;
     }
 
     for (int s = 0; s < kNumStages; ++s) {
@@ -205,28 +203,20 @@
                     fHWRGBOperand0[s] = nextRGBOperand0;
                 }
 
-                if (fHWTextureOrientation != texture->orientation() ||
-                    fHWDrawState.fTextureMatrices[s] !=
-                    fCurrDrawState.fTextureMatrices[s]) {
+                if (((1 << s) & fDirtyFlags.fTextureChangedMask) ||
+                    (fHWDrawState.fSamplerStates[s].getMatrix() != 
+                     getSamplerMatrix(s))) {
+
+                    GrMatrix texMat = getSamplerMatrix(s);
+                    AdjustTextureMatrix(texture, 
+                                        GrSamplerState::kNormal_SampleMode,
+                                        &texMat);
                     GrGpuMatrix glm;
-                    if (GrGLTexture::kBottomUp_Orientation ==
-                        texture->orientation()) {
-                        GrMatrix m(
-                            GR_Scalar1, 0, 0,
-                            0, -GR_Scalar1, GR_Scalar1,
-                            0, 0, GrMatrix::I()[8]
-                        );
-                        m.preConcat(fCurrDrawState.fTextureMatrices[s]);
-                        glm.set(m);
-                    } else {
-                        glm.set(fCurrDrawState.fTextureMatrices[s]);
-                    }
+                    glm.set(texMat);
                     setTextureUnit(s);
                     GR_GL(MatrixMode(GL_TEXTURE));
                     GR_GL(LoadMatrixf(glm.fMat));
-                    fHWDrawState.fTextureMatrices[s] =
-                                            fCurrDrawState.fTextureMatrices[s];
-                    fHWTextureOrientation = texture->orientation();
+                    recordHWSamplerMatrix(s, getSamplerMatrix(s));
                 }
             } else {
                 GrAssert(!"Rendering with texture vert flag set but no bound texture");
@@ -243,6 +233,7 @@
         fHWDrawState.fViewMatrix =
         fCurrDrawState.fViewMatrix;
     }
+    resetDirtyFlags();
     return true;
 }
 
@@ -263,7 +254,7 @@
                                                     oldTexCoordOffsets,
                                                     &oldColorOffset);
 
-    bool indexed = NULL == startIndex;
+    bool indexed = NULL != startIndex;
 
     int extraVertexOffset;
     int extraIndexOffset;