Chromium Code Reviews| 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 b8436756fc4762df4194493b3d602e274a8d1ab3..cefee9153e18322b1eb62dff6ecc4b6d7c0fe6f9 100644 |
| --- a/cc/trees/layer_tree_host_common.cc |
| +++ b/cc/trees/layer_tree_host_common.cc |
| @@ -1091,6 +1091,7 @@ struct SubtreeGlobals { |
| float page_scale_factor; |
| LayerType* page_scale_application_layer; |
| bool can_adjust_raster_scales; |
| + bool can_render_to_separate_surface; |
| }; |
| template<typename LayerType, typename RenderSurfaceType> |
| @@ -1451,8 +1452,13 @@ static void CalculateDrawPropertiesInternal( |
| ? combined_transform_scales |
| : gfx::Vector2dF(layer_scale_factors, layer_scale_factors); |
| - if (SubtreeShouldRenderToSeparateSurface( |
| - layer, combined_transform.Preserves2dAxisAlignment())) { |
| + bool render_to_separate_surface = false; |
| + if (globals.can_render_to_separate_surface) |
|
danakj
2013/09/24 14:47:04
{}
|
| + render_to_separate_surface = SubtreeShouldRenderToSeparateSurface( |
| + layer, combined_transform.Preserves2dAxisAlignment()); |
| + else |
| + render_to_separate_surface = IsRootLayer(layer); |
| + if (render_to_separate_surface) { |
| // Check back-face visibility before continuing with this surface and its |
| // subtree |
| if (!layer->double_sided() && TransformToParentIsKnown(layer) && |
| @@ -1941,6 +1947,8 @@ void LayerTreeHostCommon::CalculateDrawProperties( |
| globals.device_scale_factor = inputs->device_scale_factor; |
| globals.page_scale_factor = inputs->page_scale_factor; |
| globals.page_scale_application_layer = inputs->page_scale_application_layer; |
| + globals.can_render_to_separate_surface = |
| + inputs->can_render_to_separate_surface; |
| globals.can_adjust_raster_scales = inputs->can_adjust_raster_scales; |
| DataForRecursion<Layer, RenderSurface> data_for_recursion; |
| @@ -1998,6 +2006,8 @@ void LayerTreeHostCommon::CalculateDrawProperties( |
| globals.device_scale_factor = inputs->device_scale_factor; |
| globals.page_scale_factor = inputs->page_scale_factor; |
| globals.page_scale_application_layer = inputs->page_scale_application_layer; |
| + globals.can_render_to_separate_surface = |
| + inputs->can_render_to_separate_surface; |
| globals.can_adjust_raster_scales = inputs->can_adjust_raster_scales; |
| DataForRecursion<LayerImpl, RenderSurfaceImpl> data_for_recursion; |