OLD | NEW |
---|---|
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_LAYERS_RENDER_SURFACE_IMPL_H_ | 5 #ifndef CC_LAYERS_RENDER_SURFACE_IMPL_H_ |
6 #define CC_LAYERS_RENDER_SURFACE_IMPL_H_ | 6 #define CC_LAYERS_RENDER_SURFACE_IMPL_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
97 } | 97 } |
98 | 98 |
99 void set_has_contributing_layer_that_escapes_clip( | 99 void set_has_contributing_layer_that_escapes_clip( |
100 bool contributing_layer_escapes_clip) { | 100 bool contributing_layer_escapes_clip) { |
101 has_contributing_layer_that_escapes_clip_ = contributing_layer_escapes_clip; | 101 has_contributing_layer_that_escapes_clip_ = contributing_layer_escapes_clip; |
102 } | 102 } |
103 bool has_contributing_layer_that_escapes_clip() const { | 103 bool has_contributing_layer_that_escapes_clip() const { |
104 return has_contributing_layer_that_escapes_clip_; | 104 return has_contributing_layer_that_escapes_clip_; |
105 } | 105 } |
106 | 106 |
107 void set_is_render_surface_list_member(bool is_render_surface_list_member) { | |
108 is_render_surface_list_member_ = is_render_surface_list_member; | |
109 } | |
110 bool is_render_surface_list_member() const { | |
111 return is_render_surface_list_member_; | |
112 } | |
113 | |
107 void CalculateContentRectFromAccumulatedContentRect(int max_texture_size); | 114 void CalculateContentRectFromAccumulatedContentRect(int max_texture_size); |
108 void SetContentRectToViewport(); | 115 void SetContentRectToViewport(); |
109 void SetContentRectForTesting(const gfx::Rect& rect); | 116 void SetContentRectForTesting(const gfx::Rect& rect); |
110 gfx::Rect content_rect() const { return draw_properties_.content_rect; } | 117 gfx::Rect content_rect() const { return draw_properties_.content_rect; } |
111 | 118 |
112 void ClearAccumulatedContentRect(); | 119 void ClearAccumulatedContentRect(); |
113 void AccumulateContentRectFromContributingLayer( | 120 void AccumulateContentRectFromContributingLayer( |
114 LayerImpl* contributing_layer); | 121 LayerImpl* contributing_layer); |
115 void AccumulateContentRectFromContributingRenderSurface( | 122 void AccumulateContentRectFromContributingRenderSurface( |
116 RenderSurfaceImpl* contributing_surface); | 123 RenderSurfaceImpl* contributing_surface); |
117 | 124 |
118 gfx::Rect accumulated_content_rect() const { | 125 gfx::Rect accumulated_content_rect() const { |
119 return accumulated_content_rect_; | 126 return accumulated_content_rect_; |
120 } | 127 } |
121 | 128 |
129 void increment_num_contributors() { num_contributors_++; } | |
130 void decrement_num_contributors() { num_contributors_--; } | |
jaydasika
2017/04/28 18:27:18
Add a DCHECK here for num_contributors_ >= 0 after
ajuma
2017/04/28 21:11:21
Done.
| |
131 void reset_num_contributors() { num_contributors_ = 0; } | |
132 int num_contributors() const { return num_contributors_; } | |
133 | |
122 const Occlusion& occlusion_in_content_space() const { | 134 const Occlusion& occlusion_in_content_space() const { |
123 return occlusion_in_content_space_; | 135 return occlusion_in_content_space_; |
124 } | 136 } |
125 void set_occlusion_in_content_space(const Occlusion& occlusion) { | 137 void set_occlusion_in_content_space(const Occlusion& occlusion) { |
126 occlusion_in_content_space_ = occlusion; | 138 occlusion_in_content_space_ = occlusion; |
127 } | 139 } |
128 | 140 |
129 LayerImplList& layer_list() { return layer_list_; } | |
130 void ClearLayerLists(); | |
131 | |
132 int id() const { return stable_effect_id_; } | 141 int id() const { return stable_effect_id_; } |
133 | 142 |
134 LayerImpl* MaskLayer(); | 143 LayerImpl* MaskLayer(); |
135 bool HasMask() const; | 144 bool HasMask() const; |
136 | 145 |
137 const FilterOperations& Filters() const; | 146 const FilterOperations& Filters() const; |
138 const FilterOperations& BackgroundFilters() const; | 147 const FilterOperations& BackgroundFilters() const; |
139 gfx::PointF FiltersOrigin() const; | 148 gfx::PointF FiltersOrigin() const; |
140 gfx::Transform SurfaceScale() const; | 149 gfx::Transform SurfaceScale() const; |
141 | 150 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
197 gfx::Rect clip_rect; | 206 gfx::Rect clip_rect; |
198 | 207 |
199 // True if the surface needs to be clipped by clip_rect. | 208 // True if the surface needs to be clipped by clip_rect. |
200 bool is_clipped : 1; | 209 bool is_clipped : 1; |
201 }; | 210 }; |
202 | 211 |
203 DrawProperties draw_properties_; | 212 DrawProperties draw_properties_; |
204 | 213 |
205 // Is used to calculate the content rect from property trees. | 214 // Is used to calculate the content rect from property trees. |
206 gfx::Rect accumulated_content_rect_; | 215 gfx::Rect accumulated_content_rect_; |
216 int num_contributors_; | |
207 // Is used to decide if the surface is clipped. | 217 // Is used to decide if the surface is clipped. |
208 bool has_contributing_layer_that_escapes_clip_ : 1; | 218 bool has_contributing_layer_that_escapes_clip_ : 1; |
209 bool surface_property_changed_ : 1; | 219 bool surface_property_changed_ : 1; |
210 bool ancestor_property_changed_ : 1; | 220 bool ancestor_property_changed_ : 1; |
211 | 221 |
212 bool contributes_to_drawn_surface_ : 1; | 222 bool contributes_to_drawn_surface_ : 1; |
223 bool is_render_surface_list_member_ : 1; | |
213 | 224 |
214 LayerImplList layer_list_; | |
215 Occlusion occlusion_in_content_space_; | 225 Occlusion occlusion_in_content_space_; |
216 | 226 |
217 // The nearest ancestor target surface that will contain the contents of this | 227 // The nearest ancestor target surface that will contain the contents of this |
218 // surface, and that ignores outside occlusion. This can point to itself. | 228 // surface, and that ignores outside occlusion. This can point to itself. |
219 const RenderSurfaceImpl* nearest_occlusion_immune_ancestor_; | 229 const RenderSurfaceImpl* nearest_occlusion_immune_ancestor_; |
220 | 230 |
221 std::unique_ptr<DamageTracker> damage_tracker_; | 231 std::unique_ptr<DamageTracker> damage_tracker_; |
222 | 232 |
223 DISALLOW_COPY_AND_ASSIGN(RenderSurfaceImpl); | 233 DISALLOW_COPY_AND_ASSIGN(RenderSurfaceImpl); |
224 }; | 234 }; |
225 | 235 |
226 } // namespace cc | 236 } // namespace cc |
227 #endif // CC_LAYERS_RENDER_SURFACE_IMPL_H_ | 237 #endif // CC_LAYERS_RENDER_SURFACE_IMPL_H_ |
OLD | NEW |