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

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

Issue 2650583013: cc: Remove internal Inputs struct from LayerTree (Closed)
Patch Set: .. Created 3 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 unified diff | Download patch
« no previous file with comments | « no previous file | cc/trees/layer_tree.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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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_H_ 5 #ifndef CC_TREES_LAYER_TREE_H_
6 #define CC_TREES_LAYER_TREE_H_ 6 #define CC_TREES_LAYER_TREE_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <unordered_map> 9 #include <unordered_map>
10 #include <unordered_set> 10 #include <unordered_set>
(...skipping 26 matching lines...) Expand all
37 37
38 class CC_EXPORT LayerTree : public MutatorHostClient { 38 class CC_EXPORT LayerTree : public MutatorHostClient {
39 public: 39 public:
40 using LayerSet = std::unordered_set<Layer*>; 40 using LayerSet = std::unordered_set<Layer*>;
41 using LayerIdMap = std::unordered_map<int, Layer*>; 41 using LayerIdMap = std::unordered_map<int, Layer*>;
42 42
43 LayerTree(MutatorHost* mutator_host, LayerTreeHost* layer_tree_host); 43 LayerTree(MutatorHost* mutator_host, LayerTreeHost* layer_tree_host);
44 virtual ~LayerTree(); 44 virtual ~LayerTree();
45 45
46 void SetRootLayer(scoped_refptr<Layer> root_layer); 46 void SetRootLayer(scoped_refptr<Layer> root_layer);
47 Layer* root_layer() { return inputs_.root_layer.get(); } 47 Layer* root_layer() { return root_layer_.get(); }
48 const Layer* root_layer() const { return inputs_.root_layer.get(); } 48 const Layer* root_layer() const { return root_layer_.get(); }
49 49
50 void RegisterViewportLayers(scoped_refptr<Layer> overscroll_elasticity_layer, 50 void RegisterViewportLayers(scoped_refptr<Layer> overscroll_elasticity_layer,
51 scoped_refptr<Layer> page_scale_layer, 51 scoped_refptr<Layer> page_scale_layer,
52 scoped_refptr<Layer> inner_viewport_scroll_layer, 52 scoped_refptr<Layer> inner_viewport_scroll_layer,
53 scoped_refptr<Layer> outer_viewport_scroll_layer); 53 scoped_refptr<Layer> outer_viewport_scroll_layer);
54 54
55 Layer* overscroll_elasticity_layer() const { 55 Layer* overscroll_elasticity_layer() const {
56 return inputs_.overscroll_elasticity_layer.get(); 56 return overscroll_elasticity_layer_.get();
57 } 57 }
58 Layer* page_scale_layer() const { return inputs_.page_scale_layer.get(); } 58 Layer* page_scale_layer() const { return page_scale_layer_.get(); }
59 Layer* inner_viewport_scroll_layer() const { 59 Layer* inner_viewport_scroll_layer() const {
60 return inputs_.inner_viewport_scroll_layer.get(); 60 return inner_viewport_scroll_layer_.get();
61 } 61 }
62 Layer* outer_viewport_scroll_layer() const { 62 Layer* outer_viewport_scroll_layer() const {
63 return inputs_.outer_viewport_scroll_layer.get(); 63 return outer_viewport_scroll_layer_.get();
64 } 64 }
65 65
66 void RegisterSelection(const LayerSelection& selection); 66 void RegisterSelection(const LayerSelection& selection);
67 const LayerSelection& selection() const { return inputs_.selection; } 67 const LayerSelection& selection() const { return selection_; }
68 68
69 void SetHaveScrollEventHandlers(bool have_event_handlers); 69 void SetHaveScrollEventHandlers(bool have_event_handlers);
70 bool have_scroll_event_handlers() const { 70 bool have_scroll_event_handlers() const {
71 return inputs_.have_scroll_event_handlers; 71 return have_scroll_event_handlers_;
72 } 72 }
73 73
74 void SetEventListenerProperties(EventListenerClass event_class, 74 void SetEventListenerProperties(EventListenerClass event_class,
75 EventListenerProperties event_properties); 75 EventListenerProperties event_properties);
76 EventListenerProperties event_listener_properties( 76 EventListenerProperties event_listener_properties(
77 EventListenerClass event_class) const { 77 EventListenerClass event_class) const {
78 return inputs_.event_listener_properties[static_cast<size_t>(event_class)]; 78 return event_listener_properties_[static_cast<size_t>(event_class)];
79 } 79 }
80 80
81 void SetViewportSize(const gfx::Size& device_viewport_size); 81 void SetViewportSize(const gfx::Size& device_viewport_size);
82 gfx::Size device_viewport_size() const { 82 gfx::Size device_viewport_size() const { return device_viewport_size_; }
83 return inputs_.device_viewport_size;
84 }
85 83
86 void SetBrowserControlsHeight(float height, bool shrink); 84 void SetBrowserControlsHeight(float height, bool shrink);
87 void SetBrowserControlsShownRatio(float ratio); 85 void SetBrowserControlsShownRatio(float ratio);
88 void SetBottomControlsHeight(float height); 86 void SetBottomControlsHeight(float height);
89 87
90 void SetPageScaleFactorAndLimits(float page_scale_factor, 88 void SetPageScaleFactorAndLimits(float page_scale_factor,
91 float min_page_scale_factor, 89 float min_page_scale_factor,
92 float max_page_scale_factor); 90 float max_page_scale_factor);
93 float page_scale_factor() const { return inputs_.page_scale_factor; } 91 float page_scale_factor() const { return page_scale_factor_; }
94 float min_page_scale_factor() const { return inputs_.min_page_scale_factor; } 92 float min_page_scale_factor() const { return min_page_scale_factor_; }
95 float max_page_scale_factor() const { return inputs_.max_page_scale_factor; } 93 float max_page_scale_factor() const { return max_page_scale_factor_; }
96 94
97 void set_background_color(SkColor color) { inputs_.background_color = color; } 95 void set_background_color(SkColor color) { background_color_ = color; }
98 SkColor background_color() const { return inputs_.background_color; } 96 SkColor background_color() const { return background_color_; }
99 97
100 void set_has_transparent_background(bool transparent) { 98 void set_has_transparent_background(bool transparent) {
101 inputs_.has_transparent_background = transparent; 99 has_transparent_background_ = transparent;
102 } 100 }
103 bool has_transparent_background() const { 101 bool has_transparent_background() const {
104 return inputs_.has_transparent_background; 102 return has_transparent_background_;
105 } 103 }
106 104
107 void StartPageScaleAnimation(const gfx::Vector2d& target_offset, 105 void StartPageScaleAnimation(const gfx::Vector2d& target_offset,
108 bool use_anchor, 106 bool use_anchor,
109 float scale, 107 float scale,
110 base::TimeDelta duration); 108 base::TimeDelta duration);
111 bool HasPendingPageScaleAnimation() const; 109 bool HasPendingPageScaleAnimation() const;
112 110
113 void SetDeviceScaleFactor(float device_scale_factor); 111 void SetDeviceScaleFactor(float device_scale_factor);
114 float device_scale_factor() const { return inputs_.device_scale_factor; } 112 float device_scale_factor() const { return device_scale_factor_; }
115 113
116 void SetPaintedDeviceScaleFactor(float painted_device_scale_factor); 114 void SetPaintedDeviceScaleFactor(float painted_device_scale_factor);
117 float painted_device_scale_factor() const { 115 float painted_device_scale_factor() const {
118 return inputs_.painted_device_scale_factor; 116 return painted_device_scale_factor_;
119 } 117 }
120 118
121 void SetDeviceColorSpace(const gfx::ColorSpace& device_color_space); 119 void SetDeviceColorSpace(const gfx::ColorSpace& device_color_space);
122 const gfx::ColorSpace& device_color_space() const { 120 const gfx::ColorSpace& device_color_space() const {
123 return inputs_.device_color_space; 121 return device_color_space_;
124 } 122 }
125 123
126 // Used externally by blink for setting the PropertyTrees when 124 // Used externally by blink for setting the PropertyTrees when
127 // |settings_.use_layer_lists| is true. This is a SPV2 setting. 125 // |settings_.use_layer_lists| is true. This is a SPV2 setting.
128 PropertyTrees* property_trees() { return &property_trees_; } 126 PropertyTrees* property_trees() { return &property_trees_; }
129 127
130 void SetNeedsDisplayOnAllLayers(); 128 void SetNeedsDisplayOnAllLayers();
131 129
132 void SetNeedsCommit(); 130 void SetNeedsCommit();
133 131
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 209
212 void ElementIsAnimatingChanged(ElementId element_id, 210 void ElementIsAnimatingChanged(ElementId element_id,
213 ElementListType list_type, 211 ElementListType list_type,
214 const PropertyAnimationState& mask, 212 const PropertyAnimationState& mask,
215 const PropertyAnimationState& state) override; 213 const PropertyAnimationState& state) override;
216 214
217 void ScrollOffsetAnimationFinished() override {} 215 void ScrollOffsetAnimationFinished() override {}
218 gfx::ScrollOffset GetScrollOffsetForAnimation( 216 gfx::ScrollOffset GetScrollOffsetForAnimation(
219 ElementId element_id) const override; 217 ElementId element_id) const override;
220 218
221 // Encapsulates the data, callbacks, interfaces received from the embedder. 219 scoped_refptr<Layer> root_layer_;
222 struct Inputs {
223 Inputs();
224 ~Inputs();
225 220
226 scoped_refptr<Layer> root_layer; 221 scoped_refptr<Layer> overscroll_elasticity_layer_;
222 scoped_refptr<Layer> page_scale_layer_;
223 scoped_refptr<Layer> inner_viewport_scroll_layer_;
224 scoped_refptr<Layer> outer_viewport_scroll_layer_;
227 225
228 scoped_refptr<Layer> overscroll_elasticity_layer; 226 float top_controls_height_ = 0.f;
229 scoped_refptr<Layer> page_scale_layer; 227 float top_controls_shown_ratio_ = 0.f;
230 scoped_refptr<Layer> inner_viewport_scroll_layer; 228 bool browser_controls_shrink_blink_size_ = false;
231 scoped_refptr<Layer> outer_viewport_scroll_layer;
232 229
233 float top_controls_height; 230 float bottom_controls_height_ = 0.f;
234 float top_controls_shown_ratio;
235 bool browser_controls_shrink_blink_size;
236 231
237 float bottom_controls_height; 232 float device_scale_factor_ = 1.f;
233 float painted_device_scale_factor_ = 1.f;
234 float page_scale_factor_ = 1.f;
235 float min_page_scale_factor_ = 1.f;
236 float max_page_scale_factor_ = 1.f;
237 gfx::ColorSpace device_color_space_;
238 238
239 float device_scale_factor; 239 SkColor background_color_ = SK_ColorWHITE;
240 float painted_device_scale_factor; 240 bool has_transparent_background_ = false;
241 float page_scale_factor;
242 float min_page_scale_factor;
243 float max_page_scale_factor;
244 gfx::ColorSpace device_color_space;
245 241
246 SkColor background_color; 242 LayerSelection selection_;
247 bool has_transparent_background;
248 243
249 LayerSelection selection; 244 gfx::Size device_viewport_size_;
250 245
251 gfx::Size device_viewport_size; 246 bool have_scroll_event_handlers_ = false;
247 EventListenerProperties event_listener_properties_[static_cast<size_t>(
248 EventListenerClass::kNumClasses)];
252 249
253 bool have_scroll_event_handlers; 250 std::unique_ptr<PendingPageScaleAnimation> pending_page_scale_animation_;
254 EventListenerProperties event_listener_properties[static_cast<size_t>(
255 EventListenerClass::kNumClasses)];
256
257 std::unique_ptr<PendingPageScaleAnimation> pending_page_scale_animation;
258 };
259
260 Inputs inputs_;
261 251
262 PropertyTrees property_trees_; 252 PropertyTrees property_trees_;
263 253
264 bool needs_full_tree_sync_; 254 bool needs_full_tree_sync_ = true;
265 bool needs_meta_info_recomputation_; 255 bool needs_meta_info_recomputation_ = true;
266 256
267 gfx::Vector2dF elastic_overscroll_; 257 gfx::Vector2dF elastic_overscroll_;
268 258
269 scoped_refptr<HeadsUpDisplayLayer> hud_layer_; 259 scoped_refptr<HeadsUpDisplayLayer> hud_layer_;
270 260
271 // Set of layers that need to push properties. 261 // Set of layers that need to push properties.
272 LayerSet layers_that_should_push_properties_; 262 LayerSet layers_that_should_push_properties_;
273 263
274 // Layer id to Layer map. 264 // Layer id to Layer map.
275 LayerIdMap layer_id_map_; 265 LayerIdMap layer_id_map_;
276 266
277 using ElementLayersMap = std::unordered_map<ElementId, Layer*, ElementIdHash>; 267 using ElementLayersMap = std::unordered_map<ElementId, Layer*, ElementIdHash>;
278 ElementLayersMap element_layers_map_; 268 ElementLayersMap element_layers_map_;
279 269
280 bool in_paint_layer_contents_; 270 bool in_paint_layer_contents_ = false;
281 271
282 MutatorHost* mutator_host_; 272 MutatorHost* mutator_host_;
283 LayerTreeHost* layer_tree_host_; 273 LayerTreeHost* layer_tree_host_;
284 274
285 DISALLOW_COPY_AND_ASSIGN(LayerTree); 275 DISALLOW_COPY_AND_ASSIGN(LayerTree);
286 }; 276 };
287 277
288 } // namespace cc 278 } // namespace cc
289 279
290 #endif // CC_TREES_LAYER_TREE_H_ 280 #endif // CC_TREES_LAYER_TREE_H_
OLDNEW
« no previous file with comments | « no previous file | cc/trees/layer_tree.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698