Chromium Code Reviews| Index: cc/output/gl_renderer.cc |
| diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc |
| index 7cf5a00face44d5bfa4fdf49f6e805ae4d5b209c..87b26d97f88b977836b1e61004094e0a00901582 100644 |
| --- a/cc/output/gl_renderer.cc |
| +++ b/cc/output/gl_renderer.cc |
| @@ -795,9 +795,16 @@ gfx::Rect GLRenderer::GetBackdropBoundingBoxForRenderPassQuad( |
| contents_device_transform, scaled_region.BoundingBox())); |
| if (ShouldApplyBackgroundFilters(quad)) { |
| - int top, right, bottom, left; |
| - quad->background_filters.GetOutsets(&top, &right, &bottom, &left); |
| - backdrop_rect.Inset(-left, -top, -right, -bottom); |
| + SkMatrix matrix; |
| + matrix.setScale(quad->filters_scale.x(), quad->filters_scale.y()); |
| + if (FlippedFramebuffer(frame)) { |
| + // TODO(jbroman): This probably isn't the right way to account for this. |
| + // Probably some combination of frame->projection_matrix, |
| + // frame->window_matrix and contents_device_transform? |
| + matrix.postScale(1, -1); |
|
Stephen White
2016/06/07 16:00:34
I'm not sure about this either.
|
| + } |
| + backdrop_rect = |
| + quad->background_filters.MapRectReverse(backdrop_rect, matrix); |
| } |
| if (!backdrop_rect.IsEmpty() && use_aa) { |