Access sampler matrices directly, cleanup GrSamplerState::reset()s

Review URL: http://codereview.appspot.com/5488048/


git-svn-id: http://skia.googlecode.com/svn/trunk@2854 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index 4e0e587..4a16d9d 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -868,8 +868,6 @@
         filter = GrSamplerState::kBilinear_Filter;
     }
 
-    GrMatrix sampleM;
-
     GrTexture* src = record->fOffscreen0.texture();
     int scale;
 
@@ -888,11 +886,10 @@
         drawState->setTexture(kOffscreenStage, src);
         drawState->setRenderTarget(dst);
         drawState->setViewMatrix(GrMatrix::I());
-        sampleM.setScale(scale * GR_Scalar1 / src->width(),
-                         scale * GR_Scalar1 / src->height());
         GrSamplerState* sampler = drawState->sampler(kOffscreenStage);
         sampler->reset(GrSamplerState::kClamp_WrapMode, filter);
-        sampler->setMatrix(sampleM);
+        sampler->matrix()->setScale(scale * GR_Scalar1 / src->width(),
+                                    scale * GR_Scalar1 / src->height());
         GrRect rect = SkRect::MakeWH(SkIntToScalar(scale * tileRect.width()),
                                      SkIntToScalar(scale * tileRect.height()));
         target->drawSimpleRect(rect, NULL, 1 << kOffscreenStage);
@@ -930,13 +927,10 @@
     drawState->setTexture(kOffscreenStage, src);
     GrSamplerState* sampler = drawState->sampler(kOffscreenStage);
     sampler->reset(GrSamplerState::kClamp_WrapMode, filter);
-    sampleM.setScale(scale * GR_Scalar1 / src->width(),
-                     scale * GR_Scalar1 / src->height());
-    
-    sampler->setMatrix(sampleM);
-    sampleM.setTranslate(SkIntToScalar(-tileRect.fLeft),
-                         SkIntToScalar(-tileRect.fTop));
-    sampler->preConcatMatrix(sampleM);
+    sampler->matrix()->setScale(scale * GR_Scalar1 / src->width(),
+                                scale * GR_Scalar1 / src->height());
+    sampler->matrix()->preTranslate(SkIntToScalar(-tileRect.fLeft),
+                                    SkIntToScalar(-tileRect.fTop));
 
     GrRect dstRect;
     int stages = (1 << kOffscreenStage) | stageMask;