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;