Index: src/core/SkImageFilter.cpp |
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp |
index d7af4e65d0656c13572683b08a429c52f13f87ad..15241466ff912324489b425f85e9285d8572b9a8 100644 |
--- a/src/core/SkImageFilter.cpp |
+++ b/src/core/SkImageFilter.cpp |
@@ -347,7 +347,8 @@ bool SkImageFilter::filterImageGPU(Proxy* proxy, const SkBitmap& src, const Cont |
desc.fHeight = bounds.height(); |
desc.fConfig = kRGBA_8888_GrPixelConfig; |
- SkAutoTUnref<GrTexture> dst(context->textureProvider()->createApproxTexture(desc)); |
+ SkAutoTUnref<GrTexture> dst(context->textureProvider()->createTexture(desc, |
+ proxy->getSizeConstraint())); |
if (!dst) { |
return false; |
} |
@@ -600,6 +601,15 @@ void SkImageFilter::PurgeCache() { |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
+#if SK_SUPPORT_GPU |
+SkImageFilter::Proxy::Proxy(bool requireExactTextureSize) |
+ : fSizeConstraint(requireExactTextureSize ? GrTextureProvider::kExact_SizeConstraint |
+ : GrTextureProvider::kApprox_SizeConstraint) |
+{} |
+#else |
+SkImageFilter::Proxy::Proxy(bool) {} |
+#endif |
+ |
SkBaseDevice* SkImageFilter::DeviceProxy::createDevice(int w, int h) { |
SkBaseDevice::CreateInfo cinfo(SkImageInfo::MakeN32Premul(w, h), |
SkBaseDevice::kNever_TileUsage, |