Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3913)

Unified Diff: cc/trees/layer_tree_host_common.cc

Issue 885443002: Roll Chrome into Mojo. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Rebase to ToT mojo Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/test/test_web_graphics_context_3d_unittest.cc ('k') | cc/trees/layer_tree_host_common_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host_common.cc
diff --git a/cc/trees/layer_tree_host_common.cc b/cc/trees/layer_tree_host_common.cc
index 3e70aeb38d24ba19239123b16c3b32a16d3cacfd..e12e272653ab7fa2ed335c41ed084711a0da16c0 100644
--- a/cc/trees/layer_tree_host_common.cc
+++ b/cc/trees/layer_tree_host_common.cc
@@ -1831,14 +1831,6 @@ static void CalculateDrawPropertiesInternal(
data_for_children.full_hierarchy_matrix =
data_from_ancestor.full_hierarchy_matrix;
- // If the subtree will scale layer contents by the transform hierarchy, then
- // we should scale things into the render surface by the transform hierarchy
- // to take advantage of that.
- gfx::Vector2dF render_surface_sublayer_scale =
- globals.can_adjust_raster_scales
- ? combined_transform_scales
- : gfx::Vector2dF(layer_scale_factors, layer_scale_factors);
-
bool render_to_separate_surface =
IsRootLayer(layer) ||
(globals.can_render_to_separate_surface && layer->render_surface());
@@ -1873,17 +1865,19 @@ static void CalculateDrawPropertiesInternal(
// space which we do not want; so here we use the combined_transform
// instead of the draw_transform. However, we do need to add a different
// scale factor that accounts for the surface's pixel dimensions.
- combined_transform.Scale(1.0 / render_surface_sublayer_scale.x(),
- 1.0 / render_surface_sublayer_scale.y());
- render_surface->SetDrawTransform(combined_transform);
+ // Remove the combined_transform scale from the draw transform.
+ gfx::Transform draw_transform = combined_transform;
+ draw_transform.Scale(1.0 / combined_transform_scales.x(),
+ 1.0 / combined_transform_scales.y());
+ render_surface->SetDrawTransform(draw_transform);
// The owning layer's transform was re-parented by the surface, so the
// layer's new draw_transform only needs to scale the layer to surface
// space.
layer_draw_properties.target_space_transform.MakeIdentity();
- layer_draw_properties.target_space_transform.
- Scale(render_surface_sublayer_scale.x() / layer->contents_scale_x(),
- render_surface_sublayer_scale.y() / layer->contents_scale_y());
+ layer_draw_properties.target_space_transform.Scale(
+ combined_transform_scales.x() / layer->contents_scale_x(),
+ combined_transform_scales.y() / layer->contents_scale_y());
// Inside the surface's subtree, we scale everything to the owning layer's
// scale. The sublayer matrix transforms layer rects into target surface
@@ -1892,8 +1886,8 @@ static void CalculateDrawPropertiesInternal(
// but we apply it explicitly to the owning layer and the remainder of the
// subtree independently.
DCHECK(data_for_children.parent_matrix.IsIdentity());
- data_for_children.parent_matrix.Scale(render_surface_sublayer_scale.x(),
- render_surface_sublayer_scale.y());
+ data_for_children.parent_matrix.Scale(combined_transform_scales.x(),
+ combined_transform_scales.y());
// Even if the |layer_is_drawn|, it only contributes to a drawn surface
// when the |layer_is_visible|.
@@ -2311,14 +2305,14 @@ static void CalculateDrawPropertiesInternal(
// surface's subtree into layer space.
gfx::Transform screen_space_transform = layer->screen_space_transform();
screen_space_transform.Scale(
- layer->contents_scale_x() / render_surface_sublayer_scale.x(),
- layer->contents_scale_y() / render_surface_sublayer_scale.y());
+ layer->contents_scale_x() / combined_transform_scales.x(),
+ layer->contents_scale_y() / combined_transform_scales.y());
render_surface->SetScreenSpaceTransform(screen_space_transform);
if (layer->replica_layer()) {
gfx::Transform surface_origin_to_replica_origin_transform;
surface_origin_to_replica_origin_transform.Scale(
- render_surface_sublayer_scale.x(), render_surface_sublayer_scale.y());
+ combined_transform_scales.x(), combined_transform_scales.y());
surface_origin_to_replica_origin_transform.Translate(
layer->replica_layer()->position().x() +
layer->replica_layer()->transform_origin().x(),
@@ -2330,8 +2324,8 @@ static void CalculateDrawPropertiesInternal(
-layer->replica_layer()->transform_origin().x(),
-layer->replica_layer()->transform_origin().y());
surface_origin_to_replica_origin_transform.Scale(
- 1.0 / render_surface_sublayer_scale.x(),
- 1.0 / render_surface_sublayer_scale.y());
+ 1.0 / combined_transform_scales.x(),
+ 1.0 / combined_transform_scales.y());
// Compute the replica's "originTransform" that maps from the replica's
// origin space to the target surface origin space.
« no previous file with comments | « cc/test/test_web_graphics_context_3d_unittest.cc ('k') | cc/trees/layer_tree_host_common_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698