From e88cf6b7aa5deaeaa9dab18ada7d9d11e1e4be12 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Tue, 7 Feb 2017 11:59:16 -0500 Subject: Remove asTextureRef from SkSpecialImage & update effects accordingly This CL also renames SkSpecialImage::asTextureProxy to asTextureProxyRef Change-Id: I5ed8e475bb9688453b825ae4500ed0e8d324b5ac Reviewed-on: https://skia-review.googlesource.com/7995 Reviewed-by: Brian Salomon Commit-Queue: Robert Phillips --- src/gpu/SkGpuDevice.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/gpu/SkGpuDevice.cpp') diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp index f30057d315..e9d27be0bf 100644 --- a/src/gpu/SkGpuDevice.cpp +++ b/src/gpu/SkGpuDevice.cpp @@ -1178,25 +1178,29 @@ void SkGpuDevice::drawSpecial(const SkDraw& draw, } SkASSERT(result->isTextureBacked()); - sk_sp texture = result->asTextureRef(fContext.get()); - if (!texture) { + sk_sp proxy = result->asTextureProxyRef(fContext.get()); + if (!proxy) { return; } + const GrPixelConfig config = proxy->config(); + SkPaint tmpUnfiltered(paint); tmpUnfiltered.setImageFilter(nullptr); sk_sp colorSpaceXform = GrColorSpaceXform::Make(result->getColorSpace(), fRenderTargetContext->getColorSpace()); - GrPaint grPaint; - sk_sp fp(GrSimpleTextureEffect::Make(texture.get(), + sk_sp fp(GrSimpleTextureEffect::Make(fContext.get(), + std::move(proxy), std::move(colorSpaceXform), SkMatrix::I())); - if (GrPixelConfigIsAlphaOnly(texture->config())) { + if (GrPixelConfigIsAlphaOnly(config)) { fp = GrFragmentProcessor::MakeInputPremulAndMulByOutput(std::move(fp)); } else { fp = GrFragmentProcessor::MulOutputByInputAlpha(std::move(fp)); } + + GrPaint grPaint; if (!SkPaintToGrPaintReplaceShader(this->context(), fRenderTargetContext.get(), tmpUnfiltered, std::move(fp), &grPaint)) { return; -- cgit v1.2.3