From 7ac3d496c527c841c38fccd9c26de2bb9cc03ad3 Mon Sep 17 00:00:00 2001 From: "garykac@chromium.org" Date: Fri, 8 Aug 2014 21:25:32 +0000 Subject: Implement HiDPI and pinch-zoom scaling of filter params This change implements HiDPI scaling of filter params in CC. It also fixes content scaling of filter params (e.g., with -webkit-transform: scale(X)) as well as pinch-zoom scaling. This code is mostly from http://crrev.com/191123002 "Implement hidpi and pinch-zoom scaling of filter params in cc" and replaces http://crrev.com/317663005 "Scale the ALPHA_THRESHOLD filter's region based on the device scale factor" because this fixes all filters rather than just the AlphaThresholdFilter. BUG=376532, 281516, 281518, 349493 R=brettw@chromium.org, danakj@chromium.org, enne@chromium.org, jschuh@chromium.org Review URL: https://codereview.chromium.org/394193003 Cr-Commit-Position: refs/heads/master@{#288436} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288436 0039d316-1c4b-4281-b951-d872f2087c98 --- cc/layers/delegated_renderer_layer_impl_unittest.cc | 2 ++ cc/layers/render_surface_impl.cc | 7 +++++++ 2 files changed, 9 insertions(+) (limited to 'cc/layers') diff --git a/cc/layers/delegated_renderer_layer_impl_unittest.cc b/cc/layers/delegated_renderer_layer_impl_unittest.cc index 193b7e6..18336d1 100644 --- a/cc/layers/delegated_renderer_layer_impl_unittest.cc +++ b/cc/layers/delegated_renderer_layer_impl_unittest.cc @@ -583,6 +583,7 @@ class DelegatedRendererLayerImplTestTransform child_pass_rect, // contents_changed_since_last_frame gfx::RectF(), // mask_uv_rect FilterOperations(), // filters + gfx::Vector2dF(), // filters_scale FilterOperations()); // background_filters SolidColorDrawQuad* color_quad; @@ -1019,6 +1020,7 @@ class DelegatedRendererLayerImplTestClip child_pass_rect, // contents_changed_since_last_frame gfx::RectF(), // mask_uv_rect FilterOperations(), // filters + gfx::Vector2dF(), // filters_scale FilterOperations()); // background_filters SolidColorDrawQuad* color_quad; diff --git a/cc/layers/render_surface_impl.cc b/cc/layers/render_surface_impl.cc index 04a4da4..4ac76f4 100644 --- a/cc/layers/render_surface_impl.cc +++ b/cc/layers/render_surface_impl.cc @@ -224,6 +224,12 @@ void RenderSurfaceImpl::AppendQuads( gfx::Rect contents_changed_since_last_frame = ContentsChanged() ? content_rect_ : gfx::Rect(); + DCHECK(owning_layer_->draw_properties().target_space_transform.IsScale2d()); + gfx::Vector2dF owning_layer_to_target_scale = + owning_layer_->draw_properties().target_space_transform.Scale2d(); + owning_layer_to_target_scale.Scale(owning_layer_->contents_scale_x(), + owning_layer_->contents_scale_y()); + RenderPassDrawQuad* quad = render_pass->CreateAndAppendDrawQuad(); quad->SetNew(shared_quad_state, @@ -235,6 +241,7 @@ void RenderSurfaceImpl::AppendQuads( contents_changed_since_last_frame, mask_uv_rect, owning_layer_->filters(), + owning_layer_to_target_scale, owning_layer_->background_filters()); } -- cgit v1.1