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

Unified Diff: cc/trees/layer_tree_host_common.cc

Issue 24280009: Move tile-free-software render surface disabling to UpdateDrawProperties. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 3 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/trees/layer_tree_host_common.h ('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 27090dac4a75df9ca9e3b21362883fa1efb8588e..c2b77bd0ff1dab5daca92c288d6f89e036c32f63 100644
--- a/cc/trees/layer_tree_host_common.cc
+++ b/cc/trees/layer_tree_host_common.cc
@@ -1088,6 +1088,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>
@@ -1448,8 +1449,14 @@ 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;
+ if (globals.can_render_to_separate_surface) {
+ 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) &&
@@ -1939,6 +1946,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;
@@ -1996,6 +2005,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;
« no previous file with comments | « cc/trees/layer_tree_host_common.h ('k') | cc/trees/layer_tree_host_common_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698