diff options
Diffstat (limited to 'src/gpu/GrClipMaskManager.cpp')
-rw-r--r-- | src/gpu/GrClipMaskManager.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/gpu/GrClipMaskManager.cpp b/src/gpu/GrClipMaskManager.cpp index 99068c75ed..6415859db9 100644 --- a/src/gpu/GrClipMaskManager.cpp +++ b/src/gpu/GrClipMaskManager.cpp @@ -40,6 +40,9 @@ void setup_drawstate_aaclip(GrGpu* gpu, static const int kMaskStage = GrPaint::kTotalStages+1; SkMatrix mat; + // We want to use device coords to compute the texture coordinates. We set our matrix to be + // equal to the view matrix followed by an offset to the devBound, and then a scaling matrix to + // normalized coords. We apply this matrix to the vertex positions rather than local coords. mat.setIDiv(result->width(), result->height()); mat.preTranslate(SkIntToScalar(-devBound.fLeft), SkIntToScalar(-devBound.fTop)); @@ -51,7 +54,9 @@ void setup_drawstate_aaclip(GrGpu* gpu, GrTextureDomainEffect::Create(result, mat, GrTextureDomainEffect::MakeTexelDomain(result, domainTexels), - GrTextureDomainEffect::kDecal_WrapMode))->unref(); + GrTextureDomainEffect::kDecal_WrapMode, + false, + GrEffect::kPosition_CoordsType))->unref(); } bool path_needs_SW_renderer(GrContext* context, @@ -354,7 +359,8 @@ void GrClipMaskManager::mergeMask(GrTexture* dstMask, GrTextureDomainEffect::Create(srcMask, sampleM, GrTextureDomainEffect::MakeTexelDomain(srcMask, srcBound), - GrTextureDomainEffect::kDecal_WrapMode))->unref(); + GrTextureDomainEffect::kDecal_WrapMode, + false))->unref(); fGpu->drawSimpleRect(SkRect::MakeFromIRect(dstBound), NULL); drawState->disableStage(0); |