Make fewer copies when using GrDrawTarget::AutoStateRestore
Review URL: http://codereview.appspot.com/5938043/
git-svn-id: http://skia.googlecode.com/svn/trunk@3557 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrAAHairLinePathRenderer.cpp b/src/gpu/GrAAHairLinePathRenderer.cpp
index 3e5a1fa..3015674 100644
--- a/src/gpu/GrAAHairLinePathRenderer.cpp
+++ b/src/gpu/GrAAHairLinePathRenderer.cpp
@@ -609,17 +609,21 @@
return false;
}
- GrDrawState* drawState = target->drawState();
-
GrDrawTarget::AutoStateRestore asr;
+ GrDrawState* drawState = target->drawState();
if (!drawState->getViewMatrix().hasPerspective()) {
- asr.set(target);
+ // we are going to whack the view matrix to identity to remove
+ // perspective.
+ asr.set(target,
+ GrDrawTarget::kPreserve_ASRInit);
+ drawState = target->drawState();
GrMatrix ivm;
if (drawState->getViewInverse(&ivm)) {
drawState->preConcatSamplerMatrices(stageMask, ivm);
}
drawState->viewMatrix()->reset();
}
+
// TODO: See whether rendering lines as degenerate quads improves perf
// when we have a mix