Reland r5963 with two fixes:
Missing ref in GrSweepGradient::TestCreate.
Must reset() the sampler in setup_drawstate_aaclip() to avoid hitting a (dubious) assert.
git-svn-id: http://skia.googlecode.com/svn/trunk@5964 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrDrawState.cpp b/src/gpu/GrDrawState.cpp
index da81a76..cc11f6c 100644
--- a/src/gpu/GrDrawState.cpp
+++ b/src/gpu/GrDrawState.cpp
@@ -54,7 +54,7 @@
fDrawState->setViewMatrix(fViewMatrix);
for (int s = 0; s < GrDrawState::kNumStages; ++s) {
if (fRestoreMask & (1 << s)) {
- *fDrawState->sampler(s)->matrix() = fSamplerMatrices[s];
+ fDrawState->sampler(s)->setMatrixDeprecated(fSamplerMatrices[s]);
}
}
}
@@ -77,6 +77,7 @@
for (int s = 0; s < GrDrawState::kNumStages; ++s) {
if (!(explicitCoordStageMask & (1 << s)) && drawState->isStageEnabled(s)) {
fRestoreMask |= (1 << s);
+ fSamplerMatrices[s] = drawState->sampler(s)->getMatrix();
drawState->sampler(s)->preConcatMatrix(preconcatMatrix);
}
}
@@ -89,7 +90,7 @@
fDrawState->setViewMatrix(fViewMatrix);
for (int s = 0; s < GrDrawState::kNumStages; ++s) {
if (fRestoreMask & (1 << s)) {
- *fDrawState->sampler(s)->matrix() = fSamplerMatrices[s];
+ fDrawState->sampler(s)->setMatrixDeprecated(fSamplerMatrices[s]);
}
}
}