Index: cc/output/gl_renderer.cc |
diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc |
index 54f74c45c22f2788f12be7b9671f0b285671eebe..30fde1addc0491ccf2482b8ac6c450dcad65f481 100644 |
--- a/cc/output/gl_renderer.cc |
+++ b/cc/output/gl_renderer.cc |
@@ -633,6 +633,7 @@ static SkBitmap ApplyImageFilter( |
scoped_ptr<GLRenderer::ScopedUseGrContext> use_gr_context, |
ResourceProvider* resource_provider, |
const gfx::Point& origin, |
+ const gfx::Vector2dF& scale, |
SkImageFilter* filter, |
ScopedResource* source_texture_resource) { |
if (!filter) |
@@ -696,10 +697,8 @@ static SkBitmap ApplyImageFilter( |
paint.setImageFilter(filter); |
canvas.clear(SK_ColorTRANSPARENT); |
- // TODO(senorblanco): in addition to the origin translation here, the canvas |
- // should also be scaled to accomodate device pixel ratio and pinch zoom. See |
- // crbug.com/281516 and crbug.com/281518. |
canvas.translate(SkIntToScalar(-origin.x()), SkIntToScalar(-origin.y())); |
+ canvas.scale(scale.x(), scale.y()); |
canvas.drawSprite(source, 0, 0, &paint); |
// Flush the GrContext to ensure all buffered GL calls are drawn to the |
@@ -901,6 +900,7 @@ scoped_ptr<ScopedResource> GLRenderer::GetBackgroundWithFilters( |
ApplyImageFilter(ScopedUseGrContext::Create(this, frame), |
resource_provider_, |
quad->rect.origin(), |
+ quad->filters_scale, |
filter.get(), |
device_background_texture.get()); |
} |
@@ -1031,6 +1031,7 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame, |
ApplyImageFilter(ScopedUseGrContext::Create(this, frame), |
resource_provider_, |
quad->rect.origin(), |
+ quad->filters_scale, |
filter.get(), |
contents_texture); |
} |