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 b8ab367d60755965c57d02ea1d75181810c5b816..9dc5f52ca2165c0a3ae616cc0b77825a595e12bb 100644 |
--- a/cc/trees/layer_tree_host_common.cc |
+++ b/cc/trees/layer_tree_host_common.cc |
@@ -798,6 +798,7 @@ static void CalculateDrawPropertiesInternal( |
const gfx::Transform& parent_matrix, |
const gfx::Transform& full_hierarchy_matrix, |
const gfx::Transform& current_scroll_compensation_matrix, |
+ const gfx::Transform& next_sublayer_matrix, |
enne (OOO)
2013/05/29 20:34:12
I'm always skeptical about adding more parameters
|
LayerType* current_fixed_container, |
gfx::Rect clip_rect_from_ancestor, |
gfx::Rect clip_rect_from_ancestor_in_descendant_space, |
@@ -1311,6 +1312,8 @@ static void CalculateDrawPropertiesInternal( |
-layer->anchor_point().y() * bounds.height()); |
} |
+ sublayer_matrix.PreconcatTransform(next_sublayer_matrix); |
+ |
LayerList& descendants = |
(layer->render_surface() ? layer->render_surface()->layer_list() |
: *layer_list); |
@@ -1337,11 +1340,13 @@ static void CalculateDrawPropertiesInternal( |
LayerType* child = |
LayerTreeHostCommon::get_child_as_raw_ptr(layer->children(), i); |
gfx::Rect drawable_content_rect_of_child_subtree; |
+ gfx::Transform identity_matrix; |
CalculateDrawPropertiesInternal<LayerType, LayerList, RenderSurfaceType>( |
child, |
sublayer_matrix, |
next_hierarchy_matrix, |
next_scroll_compensation_matrix, |
+ identity_matrix, |
next_fixed_container, |
clip_rect_for_subtree, |
clip_rect_for_subtree_in_descendant_space, |
@@ -1551,9 +1556,10 @@ void LayerTreeHostCommon::CalculateDrawProperties( |
PreCalculateMetaInformation<Layer>(root_layer); |
CalculateDrawPropertiesInternal<Layer, LayerList, RenderSurface>( |
root_layer, |
- device_scale_transform, |
identity_matrix, |
identity_matrix, |
+ identity_matrix, |
+ device_scale_transform, |
NULL, |
device_viewport_rect, |
device_viewport_rect, |
@@ -1581,6 +1587,7 @@ void LayerTreeHostCommon::CalculateDrawProperties( |
void LayerTreeHostCommon::CalculateDrawProperties( |
LayerImpl* root_layer, |
gfx::Size device_viewport_size, |
+ const gfx::Transform& device_transform, |
float device_scale_factor, |
float page_scale_factor, |
LayerImpl* page_scale_application_layer, |
@@ -1590,8 +1597,6 @@ void LayerTreeHostCommon::CalculateDrawProperties( |
LayerImplList* render_surface_layer_list) { |
gfx::Rect total_drawable_content_rect; |
gfx::Transform identity_matrix; |
- gfx::Transform device_scale_transform; |
- device_scale_transform.Scale(device_scale_factor, device_scale_factor); |
LayerImplList dummy_layer_list; |
LayerSorter layer_sorter; |
@@ -1609,9 +1614,10 @@ void LayerTreeHostCommon::CalculateDrawProperties( |
LayerImplList, |
RenderSurfaceImpl>( |
root_layer, |
- device_scale_transform, |
identity_matrix, |
identity_matrix, |
+ identity_matrix, |
+ device_transform, |
NULL, |
device_viewport_rect, |
device_viewport_rect, |