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

Side by Side Diff: cc/trees/layer_tree_host_common.h

Issue 1062403002: cc: Plumbing for storing property trees (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix perf test compile failure Created 5 years, 8 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 unified diff | Download patch
« no previous file with comments | « cc/trees/layer_tree_host.cc ('k') | cc/trees/layer_tree_host_common.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CC_TREES_LAYER_TREE_HOST_COMMON_H_ 5 #ifndef CC_TREES_LAYER_TREE_HOST_COMMON_H_
6 #define CC_TREES_LAYER_TREE_HOST_COMMON_H_ 6 #define CC_TREES_LAYER_TREE_HOST_COMMON_H_
7 7
8 #include <limits> 8 #include <limits>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/memory/ref_counted.h" 12 #include "base/memory/ref_counted.h"
13 #include "cc/base/cc_export.h" 13 #include "cc/base/cc_export.h"
14 #include "cc/base/scoped_ptr_vector.h" 14 #include "cc/base/scoped_ptr_vector.h"
15 #include "cc/layers/layer_lists.h" 15 #include "cc/layers/layer_lists.h"
16 #include "cc/trees/property_tree.h"
16 #include "ui/gfx/geometry/rect.h" 17 #include "ui/gfx/geometry/rect.h"
17 #include "ui/gfx/geometry/vector2d.h" 18 #include "ui/gfx/geometry/vector2d.h"
18 #include "ui/gfx/transform.h" 19 #include "ui/gfx/transform.h"
19 20
20 namespace cc { 21 namespace cc {
21 22
22 class LayerImpl; 23 class LayerImpl;
23 class Layer; 24 class Layer;
24 class SwapPromise; 25 class SwapPromise;
26 class PropertyTrees;
25 27
26 class CC_EXPORT LayerTreeHostCommon { 28 class CC_EXPORT LayerTreeHostCommon {
27 public: 29 public:
28 static gfx::Rect CalculateVisibleRect(const gfx::Rect& target_surface_rect, 30 static gfx::Rect CalculateVisibleRect(const gfx::Rect& target_surface_rect,
29 const gfx::Rect& layer_bound_rect, 31 const gfx::Rect& layer_bound_rect,
30 const gfx::Transform& transform); 32 const gfx::Transform& transform);
31 33
32 template <typename LayerType, typename RenderSurfaceLayerListType> 34 template <typename LayerType, typename RenderSurfaceLayerListType>
33 struct CalcDrawPropsInputs { 35 struct CalcDrawPropsInputs {
34 public: 36 public:
35 CalcDrawPropsInputs(LayerType* root_layer, 37 CalcDrawPropsInputs(LayerType* root_layer,
36 const gfx::Size& device_viewport_size, 38 const gfx::Size& device_viewport_size,
37 const gfx::Transform& device_transform, 39 const gfx::Transform& device_transform,
38 float device_scale_factor, 40 float device_scale_factor,
39 float page_scale_factor, 41 float page_scale_factor,
40 const LayerType* page_scale_application_layer, 42 const LayerType* page_scale_application_layer,
41 const gfx::Vector2dF& elastic_overscroll, 43 const gfx::Vector2dF& elastic_overscroll,
42 const LayerType* elastic_overscroll_application_layer, 44 const LayerType* elastic_overscroll_application_layer,
43 int max_texture_size, 45 int max_texture_size,
44 bool can_use_lcd_text, 46 bool can_use_lcd_text,
45 bool layers_always_allowed_lcd_text, 47 bool layers_always_allowed_lcd_text,
46 bool can_render_to_separate_surface, 48 bool can_render_to_separate_surface,
47 bool can_adjust_raster_scales, 49 bool can_adjust_raster_scales,
48 bool verify_property_trees, 50 bool verify_property_trees,
49 RenderSurfaceLayerListType* render_surface_layer_list, 51 RenderSurfaceLayerListType* render_surface_layer_list,
50 int current_render_surface_layer_list_id) 52 int current_render_surface_layer_list_id,
53 PropertyTrees* property_trees)
51 : root_layer(root_layer), 54 : root_layer(root_layer),
52 device_viewport_size(device_viewport_size), 55 device_viewport_size(device_viewport_size),
53 device_transform(device_transform), 56 device_transform(device_transform),
54 device_scale_factor(device_scale_factor), 57 device_scale_factor(device_scale_factor),
55 page_scale_factor(page_scale_factor), 58 page_scale_factor(page_scale_factor),
56 page_scale_application_layer(page_scale_application_layer), 59 page_scale_application_layer(page_scale_application_layer),
57 elastic_overscroll(elastic_overscroll), 60 elastic_overscroll(elastic_overscroll),
58 elastic_overscroll_application_layer( 61 elastic_overscroll_application_layer(
59 elastic_overscroll_application_layer), 62 elastic_overscroll_application_layer),
60 max_texture_size(max_texture_size), 63 max_texture_size(max_texture_size),
61 can_use_lcd_text(can_use_lcd_text), 64 can_use_lcd_text(can_use_lcd_text),
62 layers_always_allowed_lcd_text(layers_always_allowed_lcd_text), 65 layers_always_allowed_lcd_text(layers_always_allowed_lcd_text),
63 can_render_to_separate_surface(can_render_to_separate_surface), 66 can_render_to_separate_surface(can_render_to_separate_surface),
64 can_adjust_raster_scales(can_adjust_raster_scales), 67 can_adjust_raster_scales(can_adjust_raster_scales),
65 verify_property_trees(verify_property_trees), 68 verify_property_trees(verify_property_trees),
66 render_surface_layer_list(render_surface_layer_list), 69 render_surface_layer_list(render_surface_layer_list),
67 current_render_surface_layer_list_id( 70 current_render_surface_layer_list_id(
68 current_render_surface_layer_list_id) {} 71 current_render_surface_layer_list_id),
72 property_trees(property_trees) {}
69 73
70 LayerType* root_layer; 74 LayerType* root_layer;
71 gfx::Size device_viewport_size; 75 gfx::Size device_viewport_size;
72 const gfx::Transform& device_transform; 76 const gfx::Transform& device_transform;
73 float device_scale_factor; 77 float device_scale_factor;
74 float page_scale_factor; 78 float page_scale_factor;
75 const LayerType* page_scale_application_layer; 79 const LayerType* page_scale_application_layer;
76 gfx::Vector2dF elastic_overscroll; 80 gfx::Vector2dF elastic_overscroll;
77 const LayerType* elastic_overscroll_application_layer; 81 const LayerType* elastic_overscroll_application_layer;
78 int max_texture_size; 82 int max_texture_size;
79 bool can_use_lcd_text; 83 bool can_use_lcd_text;
80 bool layers_always_allowed_lcd_text; 84 bool layers_always_allowed_lcd_text;
81 bool can_render_to_separate_surface; 85 bool can_render_to_separate_surface;
82 bool can_adjust_raster_scales; 86 bool can_adjust_raster_scales;
83 bool verify_property_trees; 87 bool verify_property_trees;
84 RenderSurfaceLayerListType* render_surface_layer_list; 88 RenderSurfaceLayerListType* render_surface_layer_list;
85 int current_render_surface_layer_list_id; 89 int current_render_surface_layer_list_id;
90 PropertyTrees* property_trees;
86 }; 91 };
87 92
88 template <typename LayerType, typename RenderSurfaceLayerListType> 93 template <typename LayerType, typename RenderSurfaceLayerListType>
89 struct CalcDrawPropsInputsForTesting 94 struct CalcDrawPropsInputsForTesting
90 : public CalcDrawPropsInputs<LayerType, RenderSurfaceLayerListType> { 95 : public CalcDrawPropsInputs<LayerType, RenderSurfaceLayerListType> {
91 CalcDrawPropsInputsForTesting( 96 CalcDrawPropsInputsForTesting(
92 LayerType* root_layer, 97 LayerType* root_layer,
93 const gfx::Size& device_viewport_size, 98 const gfx::Size& device_viewport_size,
94 const gfx::Transform& device_transform, 99 const gfx::Transform& device_transform,
95 RenderSurfaceLayerListType* render_surface_layer_list); 100 RenderSurfaceLayerListType* render_surface_layer_list);
96 CalcDrawPropsInputsForTesting( 101 CalcDrawPropsInputsForTesting(
97 LayerType* root_layer, 102 LayerType* root_layer,
98 const gfx::Size& device_viewport_size, 103 const gfx::Size& device_viewport_size,
99 RenderSurfaceLayerListType* render_surface_layer_list); 104 RenderSurfaceLayerListType* render_surface_layer_list);
100 105
101 private: 106 private:
102 const gfx::Transform identity_transform_; 107 const gfx::Transform identity_transform_;
108 PropertyTrees property_trees;
103 }; 109 };
104 110
105 typedef CalcDrawPropsInputs<Layer, RenderSurfaceLayerList> 111 typedef CalcDrawPropsInputs<Layer, RenderSurfaceLayerList>
106 CalcDrawPropsMainInputs; 112 CalcDrawPropsMainInputs;
107 typedef CalcDrawPropsInputsForTesting<Layer, RenderSurfaceLayerList> 113 typedef CalcDrawPropsInputsForTesting<Layer, RenderSurfaceLayerList>
108 CalcDrawPropsMainInputsForTesting; 114 CalcDrawPropsMainInputsForTesting;
109 static void UpdateRenderSurfaces(Layer* root_layer, 115 static void UpdateRenderSurfaces(Layer* root_layer,
110 bool can_render_to_separate_surface, 116 bool can_render_to_separate_surface,
111 const gfx::Transform& transform, 117 const gfx::Transform& transform,
112 bool preserves_2d_axis_alignment); 118 bool preserves_2d_axis_alignment);
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 NULL, 250 NULL,
245 gfx::Vector2dF(), 251 gfx::Vector2dF(),
246 NULL, 252 NULL,
247 std::numeric_limits<int>::max() / 2, 253 std::numeric_limits<int>::max() / 2,
248 false, 254 false,
249 false, 255 false,
250 true, 256 true,
251 false, 257 false,
252 true, 258 true,
253 render_surface_layer_list, 259 render_surface_layer_list,
254 0) { 260 0,
261 &property_trees) {
255 DCHECK(root_layer); 262 DCHECK(root_layer);
256 DCHECK(render_surface_layer_list); 263 DCHECK(render_surface_layer_list);
257 } 264 }
258 265
259 template <typename LayerType, typename RenderSurfaceLayerListType> 266 template <typename LayerType, typename RenderSurfaceLayerListType>
260 LayerTreeHostCommon::CalcDrawPropsInputsForTesting<LayerType, 267 LayerTreeHostCommon::CalcDrawPropsInputsForTesting<LayerType,
261 RenderSurfaceLayerListType>:: 268 RenderSurfaceLayerListType>::
262 CalcDrawPropsInputsForTesting( 269 CalcDrawPropsInputsForTesting(
263 LayerType* root_layer, 270 LayerType* root_layer,
264 const gfx::Size& device_viewport_size, 271 const gfx::Size& device_viewport_size,
265 RenderSurfaceLayerListType* render_surface_layer_list) 272 RenderSurfaceLayerListType* render_surface_layer_list)
266 : CalcDrawPropsInputs<LayerType, RenderSurfaceLayerListType>( 273 : CalcDrawPropsInputs<LayerType, RenderSurfaceLayerListType>(
267 root_layer, 274 root_layer,
268 device_viewport_size, 275 device_viewport_size,
269 identity_transform_, 276 identity_transform_,
270 1.f, 277 1.f,
271 1.f, 278 1.f,
272 NULL, 279 NULL,
273 gfx::Vector2dF(), 280 gfx::Vector2dF(),
274 NULL, 281 NULL,
275 std::numeric_limits<int>::max() / 2, 282 std::numeric_limits<int>::max() / 2,
276 false, 283 false,
277 false, 284 false,
278 true, 285 true,
279 false, 286 false,
280 true, 287 true,
281 render_surface_layer_list, 288 render_surface_layer_list,
282 0) { 289 0,
290 &property_trees) {
283 DCHECK(root_layer); 291 DCHECK(root_layer);
284 DCHECK(render_surface_layer_list); 292 DCHECK(render_surface_layer_list);
285 } 293 }
286 294
287 } // namespace cc 295 } // namespace cc
288 296
289 #endif // CC_TREES_LAYER_TREE_HOST_COMMON_H_ 297 #endif // CC_TREES_LAYER_TREE_HOST_COMMON_H_
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host.cc ('k') | cc/trees/layer_tree_host_common.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698