diff options
Diffstat (limited to 'src/gpu')
-rw-r--r-- | src/gpu/GrBlurUtils.cpp | 4 | ||||
-rw-r--r-- | src/gpu/SkGpuDevice.cpp | 3 | ||||
-rw-r--r-- | src/gpu/effects/GrConfigConversionEffect.cpp | 62 |
3 files changed, 43 insertions, 26 deletions
diff --git a/src/gpu/GrBlurUtils.cpp b/src/gpu/GrBlurUtils.cpp index d273371c10..733d1e6ece 100644 --- a/src/gpu/GrBlurUtils.cpp +++ b/src/gpu/GrBlurUtils.cpp @@ -242,7 +242,8 @@ void GrBlurUtils::drawPathWithMaskFilter(GrContext* context, return; } - if (paint.getMaskFilter()->directFilterMaskGPU(context, + if (paint.getMaskFilter()->directFilterMaskGPU(context->textureProvider(), + drawContext, renderTarget, &grPaint, clip, @@ -254,7 +255,6 @@ void GrBlurUtils::drawPathWithMaskFilter(GrContext* context, return; } - SkAutoTUnref<GrTexture> mask(create_mask_GPU(context, maskRect, *devPathPtr, diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp index ea2b537520..a4394589bb 100644 --- a/src/gpu/SkGpuDevice.cpp +++ b/src/gpu/SkGpuDevice.cpp @@ -564,7 +564,8 @@ void SkGpuDevice::drawRRect(const SkDraw& draw, const SkRRect& rect, // clipped out return; } - if (paint.getMaskFilter()->directFilterRRectMaskGPU(fContext, + if (paint.getMaskFilter()->directFilterRRectMaskGPU(fContext->textureProvider(), + fDrawContext, fRenderTarget, &grPaint, fClip, diff --git a/src/gpu/effects/GrConfigConversionEffect.cpp b/src/gpu/effects/GrConfigConversionEffect.cpp index fa97f324be..82ac5df081 100644 --- a/src/gpu/effects/GrConfigConversionEffect.cpp +++ b/src/gpu/effects/GrConfigConversionEffect.cpp @@ -207,11 +207,6 @@ void GrConfigConversionEffect::TestForPreservingPMConversions(GrContext* context bool failed = true; - GrDrawContext* drawContext = context->drawContext(); - if (!drawContext) { - return; - } - for (size_t i = 0; i < SK_ARRAY_COUNT(kConversionRules) && failed; ++i) { *pmToUPMRule = kConversionRules[i][0]; *upmToPMRule = kConversionRules[i][1]; @@ -239,30 +234,51 @@ void GrConfigConversionEffect::TestForPreservingPMConversions(GrContext* context SkMatrix::I()))); paint1.addColorProcessor(pmToUPM1); - drawContext->drawNonAARectToRect(readTex->asRenderTarget(), - GrClip::WideOpen(), - paint1, - SkMatrix::I(), - kDstRect, - kSrcRect); + + + GrDrawContext* readDrawContext = context->drawContext(); + if (!readDrawContext) { + failed = true; + break; + } + + readDrawContext->drawNonAARectToRect(readTex->asRenderTarget(), + GrClip::WideOpen(), + paint1, + SkMatrix::I(), + kDstRect, + kSrcRect); readTex->readPixels(0, 0, 256, 256, kRGBA_8888_GrPixelConfig, firstRead); paint2.addColorProcessor(upmToPM); - drawContext->drawNonAARectToRect(tempTex->asRenderTarget(), - GrClip::WideOpen(), - paint2, - SkMatrix::I(), - kDstRect, - kSrcRect); + + GrDrawContext* tempDrawContext = context->drawContext(); + if (!tempDrawContext) { + failed = true; + break; + } + tempDrawContext->drawNonAARectToRect(tempTex->asRenderTarget(), + GrClip::WideOpen(), + paint2, + SkMatrix::I(), + kDstRect, + kSrcRect); paint3.addColorProcessor(pmToUPM2); - drawContext->drawNonAARectToRect(readTex->asRenderTarget(), - GrClip::WideOpen(), - paint3, - SkMatrix::I(), - kDstRect, - kSrcRect); + + readDrawContext = context->drawContext(); + if (!readDrawContext) { + failed = true; + break; + } + + readDrawContext->drawNonAARectToRect(readTex->asRenderTarget(), + GrClip::WideOpen(), + paint3, + SkMatrix::I(), + kDstRect, + kSrcRect); readTex->readPixels(0, 0, 256, 256, kRGBA_8888_GrPixelConfig, secondRead); |