| Index: src/core/SkImageFilterUtils.cpp
|
| diff --git a/src/core/SkImageFilterUtils.cpp b/src/core/SkImageFilterUtils.cpp
|
| index 8385fb446ae0726ade2ccfbad3250239e6209211..a59cf7bbbdb3c1da09d8209984f893a5fb40e4ea 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 = {
|
| + width,
|
| + height,
|
| + kPMColor_SkColorType,
|
| + 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;
|
|
|