| Index: src/effects/SkMorphologyImageFilter.cpp
|
| diff --git a/src/effects/SkMorphologyImageFilter.cpp b/src/effects/SkMorphologyImageFilter.cpp
|
| index 5d4b58c880fdf4911eac7ddb87ba6ae1b4a4fd52..7e27249a13d97edd953c6529833e2a1327c2083c 100644
|
| --- a/src/effects/SkMorphologyImageFilter.cpp
|
| +++ b/src/effects/SkMorphologyImageFilter.cpp
|
| @@ -474,6 +474,7 @@ static sk_sp<SkSpecialImage> apply_morphology(GrContext* context,
|
| SkISize radius) {
|
| sk_sp<GrTexture> srcTexture(input->asTextureRef(context));
|
| SkASSERT(srcTexture);
|
| + sk_sp<SkColorSpace> colorSpace = sk_ref_sp(input->getColorSpace());
|
|
|
| // setup new clip
|
| const GrFixedClip clip(SkIRect::MakeWH(srcTexture->width(), srcTexture->height()));
|
| @@ -486,7 +487,8 @@ static sk_sp<SkSpecialImage> apply_morphology(GrContext* context,
|
| if (radius.fWidth > 0) {
|
| sk_sp<GrDrawContext> dstDrawContext(context->newDrawContext(SkBackingFit::kApprox,
|
| rect.width(), rect.height(),
|
| - kSkia8888_GrPixelConfig));
|
| + kSkia8888_GrPixelConfig,
|
| + colorSpace));
|
| if (!dstDrawContext) {
|
| return nullptr;
|
| }
|
| @@ -507,7 +509,8 @@ static sk_sp<SkSpecialImage> apply_morphology(GrContext* context,
|
| if (radius.fHeight > 0) {
|
| sk_sp<GrDrawContext> dstDrawContext(context->newDrawContext(SkBackingFit::kApprox,
|
| rect.width(), rect.height(),
|
| - kSkia8888_GrPixelConfig));
|
| + kSkia8888_GrPixelConfig,
|
| + colorSpace));
|
| if (!dstDrawContext) {
|
| return nullptr;
|
| }
|
| @@ -519,10 +522,9 @@ static sk_sp<SkSpecialImage> apply_morphology(GrContext* context,
|
| srcTexture = dstDrawContext->asTexture();
|
| }
|
|
|
| - // TODO: Get the colorSpace from the drawContext (once it has one)
|
| return SkSpecialImage::MakeFromGpu(SkIRect::MakeWH(rect.width(), rect.height()),
|
| kNeedNewImageUniqueID_SpecialImage,
|
| - std::move(srcTexture), sk_ref_sp(input->getColorSpace()),
|
| + std::move(srcTexture), std::move(colorSpace),
|
| &input->props());
|
| }
|
| #endif
|
|
|