| Index: src/core/SkImageFilterUtils.cpp
|
| diff --git a/src/core/SkImageFilterUtils.cpp b/src/core/SkImageFilterUtils.cpp
|
| index 8385fb446ae0726ade2ccfbad3250239e6209211..e535d934f8cd65991c6c085946ac860fb877d03c 100644
|
| --- a/src/core/SkImageFilterUtils.cpp
|
| +++ b/src/core/SkImageFilterUtils.cpp
|
| @@ -15,8 +15,14 @@
|
| #include "SkGr.h"
|
|
|
| bool SkImageFilterUtils::WrapTexture(GrTexture* texture, int width, int height, SkBitmap* result) {
|
| - result->setConfig(SkBitmap::kARGB_8888_Config, width, height);
|
| - result->setPixelRef(SkNEW_ARGS(SkGrPixelRef, (texture)))->unref();
|
| + SkImageInfo info;
|
| + info.fWidth = width;
|
| + info.fHeight = height;
|
| + info.fColorType = kPMColor_SkColorType;
|
| + info.fAlphaType = kPremul_SkAlphaType;
|
| +
|
| + result->setConfig(info);
|
| + result->setPixelRef(SkNEW_ARGS(SkGrPixelRef, (info, texture)))->unref();
|
| return true;
|
| }
|
|
|
| @@ -36,8 +42,12 @@ bool SkImageFilterUtils::GetInputResultGPU(SkImageFilter* filter, SkImageFilter:
|
| } else {
|
| if (filter->filterImage(proxy, src, ctm, result, offset)) {
|
| if (!result->getTexture()) {
|
| + SkImageInfo info;
|
| + if (!result->asImageInfo(&info)) {
|
| + return false;
|
| + }
|
| GrTexture* resultTex = GrLockAndRefCachedBitmapTexture(context, *result, NULL);
|
| - result->setPixelRef(new SkGrPixelRef(resultTex))->unref();
|
| + result->setPixelRef(new SkGrPixelRef(info, resultTex))->unref();
|
| GrUnlockAndUnrefCachedBitmapTexture(resultTex);
|
| }
|
| return true;
|
|
|