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; |