summaryrefslogtreecommitdiffstats
path: root/cc/layers/render_surface_impl.cc
diff options
context:
space:
mode:
authorgarykac@chromium.org <garykac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-08 21:25:32 +0000
committergarykac@chromium.org <garykac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-08 21:27:10 +0000
commit7ac3d496c527c841c38fccd9c26de2bb9cc03ad3 (patch)
tree79e77abc163f6ef41b2b26f3533905769d5d4035 /cc/layers/render_surface_impl.cc
parent8d60aa54abe0517d756c9d625ece75feabed613a (diff)
downloadchromium_src-7ac3d496c527c841c38fccd9c26de2bb9cc03ad3.zip
chromium_src-7ac3d496c527c841c38fccd9c26de2bb9cc03ad3.tar.gz
chromium_src-7ac3d496c527c841c38fccd9c26de2bb9cc03ad3.tar.bz2
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
Diffstat (limited to 'cc/layers/render_surface_impl.cc')
-rw-r--r--cc/layers/render_surface_impl.cc7
1 files changed, 7 insertions, 0 deletions
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<RenderPassDrawQuad>();
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());
}