| 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);
|
| }
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|