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_TREES_LAYER_TREE_HOST_IMPL_H_ | 5 #ifndef CC_TREES_LAYER_TREE_HOST_IMPL_H_ |
6 #define CC_TREES_LAYER_TREE_HOST_IMPL_H_ | 6 #define CC_TREES_LAYER_TREE_HOST_IMPL_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 FrameData(); | 124 FrameData(); |
125 virtual ~FrameData(); | 125 virtual ~FrameData(); |
126 | 126 |
127 std::vector<gfx::Rect> occluding_screen_space_rects; | 127 std::vector<gfx::Rect> occluding_screen_space_rects; |
128 std::vector<gfx::Rect> non_occluding_screen_space_rects; | 128 std::vector<gfx::Rect> non_occluding_screen_space_rects; |
129 RenderPassList render_passes; | 129 RenderPassList render_passes; |
130 RenderPassIdHashMap render_passes_by_id; | 130 RenderPassIdHashMap render_passes_by_id; |
131 const LayerImplList* render_surface_layer_list; | 131 const LayerImplList* render_surface_layer_list; |
132 LayerImplList will_draw_layers; | 132 LayerImplList will_draw_layers; |
133 bool contains_incomplete_tile; | 133 bool contains_incomplete_tile; |
| 134 bool has_no_damage; |
134 | 135 |
135 // RenderPassSink implementation. | 136 // RenderPassSink implementation. |
136 virtual void AppendRenderPass(scoped_ptr<RenderPass> render_pass) OVERRIDE; | 137 virtual void AppendRenderPass(scoped_ptr<RenderPass> render_pass) OVERRIDE; |
137 }; | 138 }; |
138 | 139 |
139 virtual void BeginCommit(); | 140 virtual void BeginCommit(); |
140 virtual void CommitComplete(); | 141 virtual void CommitComplete(); |
141 virtual void Animate(base::TimeTicks monotonic_time, | 142 virtual void Animate(base::TimeTicks monotonic_time, |
142 base::Time wall_clock_time); | 143 base::Time wall_clock_time); |
143 virtual void UpdateAnimationState(bool start_ready_animations); | 144 virtual void UpdateAnimationState(bool start_ready_animations); |
144 void UpdateBackgroundAnimateTicking(bool should_background_tick); | 145 void UpdateBackgroundAnimateTicking(bool should_background_tick); |
145 | 146 |
146 void ManageTiles(); | 147 void ManageTiles(); |
147 void SetAnticipatedDrawTime(base::TimeTicks time); | 148 void SetAnticipatedDrawTime(base::TimeTicks time); |
148 | 149 |
149 // Returns false if problems occured preparing the frame, and we should try | 150 // Returns false if problems occured preparing the frame, and we should try |
150 // to avoid displaying the frame. If PrepareToDraw is called, DidDrawAllLayers | 151 // to avoid displaying the frame. If PrepareToDraw is called, DidDrawAllLayers |
151 // must also be called, regardless of whether DrawLayers is called between the | 152 // must also be called, regardless of whether DrawLayers is called between the |
152 // two. | 153 // two. |
153 virtual bool PrepareToDraw(FrameData* frame); | 154 virtual bool PrepareToDraw(FrameData* frame, |
| 155 gfx::Rect device_viewport_damage_rect); |
154 virtual void DrawLayers(FrameData* frame, base::TimeTicks frame_begin_time); | 156 virtual void DrawLayers(FrameData* frame, base::TimeTicks frame_begin_time); |
155 // Must be called if and only if PrepareToDraw was called. | 157 // Must be called if and only if PrepareToDraw was called. |
156 void DidDrawAllLayers(const FrameData& frame); | 158 void DidDrawAllLayers(const FrameData& frame); |
157 | 159 |
158 const LayerTreeSettings& settings() const { return settings_; } | 160 const LayerTreeSettings& settings() const { return settings_; } |
159 | 161 |
160 // Returns the currently visible viewport size in DIP. This value excludes | 162 // Returns the currently visible viewport size in DIP. This value excludes |
161 // the URL bar and non-overlay scrollbars. | 163 // the URL bar and non-overlay scrollbars. |
162 gfx::SizeF VisibleViewportSize() const; | 164 gfx::SizeF VisibleViewportSize() const; |
163 | 165 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 | 203 |
202 void FinishAllRendering(); | 204 void FinishAllRendering(); |
203 int SourceAnimationFrameNumber() const; | 205 int SourceAnimationFrameNumber() const; |
204 | 206 |
205 virtual bool InitializeRenderer(scoped_ptr<OutputSurface> output_surface); | 207 virtual bool InitializeRenderer(scoped_ptr<OutputSurface> output_surface); |
206 bool IsContextLost(); | 208 bool IsContextLost(); |
207 TileManager* tile_manager() { return tile_manager_.get(); } | 209 TileManager* tile_manager() { return tile_manager_.get(); } |
208 Renderer* renderer() { return renderer_.get(); } | 210 Renderer* renderer() { return renderer_.get(); } |
209 const RendererCapabilities& GetRendererCapabilities() const; | 211 const RendererCapabilities& GetRendererCapabilities() const; |
210 | 212 |
211 virtual bool SwapBuffers(); | 213 virtual bool SwapBuffers(const FrameData& frame); |
212 void EnableVSyncNotification(bool enable); | 214 void EnableVSyncNotification(bool enable); |
213 | 215 |
214 void Readback(void* pixels, gfx::Rect rect_in_device_viewport); | 216 void Readback(void* pixels, gfx::Rect rect_in_device_viewport); |
215 | 217 |
216 LayerTreeImpl* active_tree() { return active_tree_.get(); } | 218 LayerTreeImpl* active_tree() { return active_tree_.get(); } |
217 const LayerTreeImpl* active_tree() const { return active_tree_.get(); } | 219 const LayerTreeImpl* active_tree() const { return active_tree_.get(); } |
218 LayerTreeImpl* pending_tree() { return pending_tree_.get(); } | 220 LayerTreeImpl* pending_tree() { return pending_tree_.get(); } |
219 const LayerTreeImpl* pending_tree() const { return pending_tree_.get(); } | 221 const LayerTreeImpl* pending_tree() const { return pending_tree_.get(); } |
220 const LayerTreeImpl* recycle_tree() const { return recycle_tree_.get(); } | 222 const LayerTreeImpl* recycle_tree() const { return recycle_tree_.get(); } |
221 void CreatePendingTree(); | 223 void CreatePendingTree(); |
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
455 scoped_ptr<DebugRectHistory> debug_rect_history_; | 457 scoped_ptr<DebugRectHistory> debug_rect_history_; |
456 | 458 |
457 // The maximum memory that would be used by the prioritized resource | 459 // The maximum memory that would be used by the prioritized resource |
458 // manager, if there were no limit on memory usage. | 460 // manager, if there were no limit on memory usage. |
459 size_t max_memory_needed_bytes_; | 461 size_t max_memory_needed_bytes_; |
460 | 462 |
461 size_t last_sent_memory_visible_bytes_; | 463 size_t last_sent_memory_visible_bytes_; |
462 size_t last_sent_memory_visible_and_nearby_bytes_; | 464 size_t last_sent_memory_visible_and_nearby_bytes_; |
463 size_t last_sent_memory_use_bytes_; | 465 size_t last_sent_memory_use_bytes_; |
464 | 466 |
| 467 bool next_frame_damages_full_device_viewport_; |
| 468 |
465 base::TimeTicks current_frame_time_; | 469 base::TimeTicks current_frame_time_; |
466 | 470 |
467 scoped_ptr<AnimationRegistrar> animation_registrar_; | 471 scoped_ptr<AnimationRegistrar> animation_registrar_; |
468 | 472 |
469 RenderingStatsInstrumentation* rendering_stats_instrumentation_; | 473 RenderingStatsInstrumentation* rendering_stats_instrumentation_; |
470 | 474 |
471 DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImpl); | 475 DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImpl); |
472 }; | 476 }; |
473 | 477 |
474 } // namespace cc | 478 } // namespace cc |
475 | 479 |
476 #endif // CC_TREES_LAYER_TREE_HOST_IMPL_H_ | 480 #endif // CC_TREES_LAYER_TREE_HOST_IMPL_H_ |
OLD | NEW |