Index: src/gpu/SkGpuDevice.cpp |
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp |
index 34964d53d69eda1f94ce3f4319dda6e2c3b25a80..ca79d0a2d19c18a79c7982d1b9dbcc50d968860b 100644 |
--- a/src/gpu/SkGpuDevice.cpp |
+++ b/src/gpu/SkGpuDevice.cpp |
@@ -1348,12 +1348,15 @@ void SkGpuDevice::internalDrawBitmap(const SkBitmap& bitmap, |
fContext->drawRectToRect(grPaint, dstRect, paintRect); |
} |
-static bool filter_texture(SkBaseDevice* device, GrContext* context, |
- GrTexture* texture, const SkImageFilter* filter, |
- const SkImageFilter::Context& ctx, |
- SkBitmap* result, SkIPoint* offset) { |
+bool SkGpuDevice::filterTexture(GrContext* context, GrTexture* texture, |
+ const SkImageFilter* filter, |
+ const SkImageFilter::Context& ctx, |
+ SkBitmap* result, SkIPoint* offset) { |
SkASSERT(filter); |
- SkDeviceImageFilterProxy proxy(device); |
+ |
+ // FIXME: plumb actual surface props such that we don't have to lie about the flags here |
+ // (https://code.google.com/p/skia/issues/detail?id=3148). |
+ SkDeviceImageFilterProxy proxy(this, SkSurfaceProps(0, getLeakyProperties().pixelGeometry())); |
if (filter->canFilterImageGPU()) { |
// Save the render target and set it to NULL, so we don't accidentally draw to it in the |
@@ -1395,8 +1398,8 @@ void SkGpuDevice::drawSprite(const SkDraw& draw, const SkBitmap& bitmap, |
// This cache is transient, and is freed (along with all its contained |
// textures) when it goes out of scope. |
SkImageFilter::Context ctx(matrix, clipBounds, cache); |
- if (filter_texture(this, fContext, texture, filter, ctx, &filteredBitmap, |
- &offset)) { |
+ if (this->filterTexture(fContext, texture, filter, ctx, &filteredBitmap, |
+ &offset)) { |
texture = (GrTexture*) filteredBitmap.getTexture(); |
w = filteredBitmap.width(); |
h = filteredBitmap.height(); |
@@ -1506,8 +1509,8 @@ void SkGpuDevice::drawDevice(const SkDraw& draw, SkBaseDevice* device, |
// textures) when it goes out of scope. |
SkAutoTUnref<SkImageFilter::Cache> cache(getImageFilterCache()); |
SkImageFilter::Context ctx(matrix, clipBounds, cache); |
- if (filter_texture(this, fContext, devTex, filter, ctx, &filteredBitmap, |
- &offset)) { |
+ if (this->filterTexture(fContext, devTex, filter, ctx, &filteredBitmap, |
+ &offset)) { |
devTex = filteredBitmap.getTexture(); |
w = filteredBitmap.width(); |
h = filteredBitmap.height(); |
@@ -1559,7 +1562,7 @@ bool SkGpuDevice::filterImage(const SkImageFilter* filter, const SkBitmap& src, |
// must be pushed upstack. |
AutoBitmapTexture abt(fContext, src, NULL, &texture); |
- return filter_texture(this, fContext, texture, filter, ctx, result, offset); |
+ return this->filterTexture(fContext, texture, filter, ctx, result, offset); |
} |
/////////////////////////////////////////////////////////////////////////////// |