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