Index: src/gpu/SkGr.cpp |
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp |
index 82b1ce4b878b829218c5daaf0eac1531487deaf5..e311ae2ace4c76991c59a889d9a4ce661dd1ba42 100644 |
--- a/src/gpu/SkGr.cpp |
+++ b/src/gpu/SkGr.cpp |
@@ -283,10 +283,8 @@ static GrTexture *load_yuv_texture(GrContext* ctx, bool cache, const GrTexturePa |
SkRect r = SkRect::MakeWH(SkIntToScalar(yuvSizes[0].fWidth), |
SkIntToScalar(yuvSizes[0].fHeight)); |
GrContext::AutoRenderTarget autoRT(ctx, renderTarget); |
- GrContext::AutoMatrix am; |
- am.setIdentity(ctx); |
GrContext::AutoClip ac(ctx, GrContext::AutoClip::kWideOpen_InitialClip); |
- ctx->drawRect(paint, r); |
+ ctx->drawRect(paint, SkMatrix::I(), r); |
} else { |
SkSafeSetNull(result); |
} |
@@ -522,27 +520,7 @@ void SkPaint2GrPaintNoShader(GrContext* context, const SkPaint& skPaint, GrColor |
#endif |
} |
-/** |
- * Unlike GrContext::AutoMatrix, this doesn't require setting a new matrix. GrContext::AutoMatrix |
- * likes to set the new matrix in its constructor because it is usually necessary to simulataneously |
- * update a GrPaint. This AutoMatrix is used while initially setting up GrPaint, however. |
- */ |
-class AutoMatrix { |
-public: |
- AutoMatrix(GrContext* context) { |
- fMatrix = context->getMatrix(); |
- fContext = context; |
- } |
- ~AutoMatrix() { |
- SkASSERT(fContext); |
- fContext->setMatrix(fMatrix); |
- } |
-private: |
- GrContext* fContext; |
- SkMatrix fMatrix; |
-}; |
- |
-void SkPaint2GrPaintShader(GrContext* context, const SkPaint& skPaint, |
+void SkPaint2GrPaintShader(GrContext* context, const SkPaint& skPaint, const SkMatrix& viewM, |
bool constantColor, GrPaint* grPaint) { |
SkShader* shader = skPaint.getShader(); |
if (NULL == shader) { |
@@ -558,17 +536,14 @@ void SkPaint2GrPaintShader(GrContext* context, const SkPaint& skPaint, |
// want them messing around with the context. |
{ |
// SkShader::asFragmentProcessor() may do offscreen rendering. Save off the current RT, |
- // clip, and matrix. We don't reset the matrix on the context because |
- // SkShader::asFragmentProcessor may use GrContext::getMatrix() to know the transformation |
- // from local coords to device space. |
+ // and clip |
GrContext::AutoRenderTarget art(context, NULL); |
GrContext::AutoClip ac(context, GrContext::AutoClip::kWideOpen_InitialClip); |
- AutoMatrix am(context); |
// Allow the shader to modify paintColor and also create an effect to be installed as |
// the first color effect on the GrPaint. |
GrFragmentProcessor* fp = NULL; |
- if (shader->asFragmentProcessor(context, skPaint, NULL, &paintColor, &fp) && fp) { |
+ if (shader->asFragmentProcessor(context, skPaint, viewM, NULL, &paintColor, &fp) && fp) { |
grPaint->addColorProcessor(fp)->unref(); |
constantColor = false; |
} |