Chromium Code Reviews| Index: src/effects/SkXfermodeImageFilter.cpp |
| diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp |
| index 010253861d502b90bccf7677755135a61b38cece..6c3298d31c5506aa6b034c2ff3b5386c65b3855b 100644 |
| --- a/src/effects/SkXfermodeImageFilter.cpp |
| +++ b/src/effects/SkXfermodeImageFilter.cpp |
| @@ -243,7 +243,8 @@ sk_sp<SkSpecialImage> SkXfermodeImageFilter::filterImageGPU(SkSpecialImage* sour |
|
robertphillips
2016/07/21 19:22:41
What if foreground & background have different col
Brian Osman
2016/07/21 19:51:44
Yes. Output should be in color space of source. I'
|
| sk_sp<GrDrawContext> drawContext(context->newDrawContext(SkBackingFit::kApprox, |
| bounds.width(), bounds.height(), |
| - kSkia8888_GrPixelConfig)); |
| + kSkia8888_GrPixelConfig, |
| + sk_ref_sp(source->getColorSpace()))); |
| if (!drawContext) { |
| return nullptr; |
| } |
| @@ -252,11 +253,10 @@ sk_sp<SkSpecialImage> SkXfermodeImageFilter::filterImageGPU(SkSpecialImage* sour |
| matrix.setTranslate(SkIntToScalar(-bounds.left()), SkIntToScalar(-bounds.top())); |
| drawContext->drawRect(GrNoClip(), paint, matrix, SkRect::Make(bounds)); |
| - // TODO: Get the colorSpace from the drawContext (once it has one) |
| return SkSpecialImage::MakeFromGpu(SkIRect::MakeWH(bounds.width(), bounds.height()), |
| kNeedNewImageUniqueID_SpecialImage, |
| drawContext->asTexture(), |
| - sk_ref_sp(source->getColorSpace())); |
| + sk_ref_sp(drawContext->getColorSpace())); |
| } |
| #endif |