diff options
Diffstat (limited to 'src/effects/SkDisplacementMapEffect.cpp')
-rw-r--r-- | src/effects/SkDisplacementMapEffect.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp index 90756a7265..06e7e687ab 100644 --- a/src/effects/SkDisplacementMapEffect.cpp +++ b/src/effects/SkDisplacementMapEffect.cpp @@ -597,14 +597,15 @@ void GrGLDisplacementMapEffect::emitCode(EmitArgs& args) { void GrGLDisplacementMapEffect::onSetData(const GrGLSLProgramDataManager& pdman, const GrFragmentProcessor& proc) { const GrDisplacementMapEffect& displacementMap = proc.cast<GrDisplacementMapEffect>(); - GrTexture* colorTex = displacementMap.textureSampler(1).peekTexture(); + GrSurfaceProxy* proxy = displacementMap.textureSampler(1).proxy(); + GrTexture* colorTex = proxy->priv().peekTexture(); SkScalar scaleX = displacementMap.scale().fX / colorTex->width(); SkScalar scaleY = displacementMap.scale().fY / colorTex->height(); pdman.set2f(fScaleUni, SkScalarToFloat(scaleX), - colorTex->origin() == kTopLeft_GrSurfaceOrigin ? + proxy->origin() == kTopLeft_GrSurfaceOrigin ? SkScalarToFloat(scaleY) : SkScalarToFloat(-scaleY)); - fGLDomain.setData(pdman, displacementMap.domain(), colorTex); + fGLDomain.setData(pdman, displacementMap.domain(), proxy); if (SkToBool(displacementMap.colorSpaceXform())) { fColorSpaceHelper.setData(pdman, displacementMap.colorSpaceXform()); } |