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

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

Issue 947033002: CC Animations: Establish AnimationHost, AnimationTimeline and AnimationPlayer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Implement test helpers. 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
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_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 <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 17 matching lines...) Expand all
28 #include "cc/output/begin_frame_args.h" 28 #include "cc/output/begin_frame_args.h"
29 #include "cc/output/managed_memory_policy.h" 29 #include "cc/output/managed_memory_policy.h"
30 #include "cc/output/output_surface_client.h" 30 #include "cc/output/output_surface_client.h"
31 #include "cc/output/renderer.h" 31 #include "cc/output/renderer.h"
32 #include "cc/quads/render_pass.h" 32 #include "cc/quads/render_pass.h"
33 #include "cc/resources/resource_provider.h" 33 #include "cc/resources/resource_provider.h"
34 #include "cc/resources/tile_manager.h" 34 #include "cc/resources/tile_manager.h"
35 #include "cc/resources/ui_resource_client.h" 35 #include "cc/resources/ui_resource_client.h"
36 #include "cc/scheduler/commit_earlyout_reason.h" 36 #include "cc/scheduler/commit_earlyout_reason.h"
37 #include "cc/scheduler/draw_result.h" 37 #include "cc/scheduler/draw_result.h"
38 #include "cc/trees/layer_tree_mutators_client.h"
38 #include "cc/trees/layer_tree_settings.h" 39 #include "cc/trees/layer_tree_settings.h"
39 #include "cc/trees/proxy.h" 40 #include "cc/trees/proxy.h"
40 #include "skia/ext/refptr.h" 41 #include "skia/ext/refptr.h"
41 #include "third_party/skia/include/core/SkColor.h" 42 #include "third_party/skia/include/core/SkColor.h"
42 #include "ui/gfx/geometry/rect.h" 43 #include "ui/gfx/geometry/rect.h"
43 44
44 namespace gfx { 45 namespace gfx {
45 class ScrollOffset; 46 class ScrollOffset;
46 } 47 }
47 48
48 namespace cc { 49 namespace cc {
49 50
51 class AnimationHost;
50 class CompletionEvent; 52 class CompletionEvent;
51 class CompositorFrameMetadata; 53 class CompositorFrameMetadata;
52 class DebugRectHistory; 54 class DebugRectHistory;
53 class EvictionTilePriorityQueue; 55 class EvictionTilePriorityQueue;
54 class FrameRateCounter; 56 class FrameRateCounter;
55 class LayerImpl; 57 class LayerImpl;
56 class LayerTreeImpl; 58 class LayerTreeImpl;
57 class MemoryHistory; 59 class MemoryHistory;
58 class PageScaleAnimation; 60 class PageScaleAnimation;
59 class PaintTimeCounter; 61 class PaintTimeCounter;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 131
130 // LayerTreeHostImpl owns the LayerImpl trees as well as associated rendering 132 // LayerTreeHostImpl owns the LayerImpl trees as well as associated rendering
131 // state. 133 // state.
132 class CC_EXPORT LayerTreeHostImpl 134 class CC_EXPORT LayerTreeHostImpl
133 : public InputHandler, 135 : public InputHandler,
134 public RendererClient, 136 public RendererClient,
135 public TileManagerClient, 137 public TileManagerClient,
136 public OutputSurfaceClient, 138 public OutputSurfaceClient,
137 public TopControlsManagerClient, 139 public TopControlsManagerClient,
138 public ScrollbarAnimationControllerClient, 140 public ScrollbarAnimationControllerClient,
139 public base::SupportsWeakPtr<LayerTreeHostImpl> { 141 public base::SupportsWeakPtr<LayerTreeHostImpl>,
142 public LayerTreeMutatorsClient {
140 public: 143 public:
141 static scoped_ptr<LayerTreeHostImpl> Create( 144 static scoped_ptr<LayerTreeHostImpl> Create(
142 const LayerTreeSettings& settings, 145 const LayerTreeSettings& settings,
143 LayerTreeHostImplClient* client, 146 LayerTreeHostImplClient* client,
144 Proxy* proxy, 147 Proxy* proxy,
145 RenderingStatsInstrumentation* rendering_stats_instrumentation, 148 RenderingStatsInstrumentation* rendering_stats_instrumentation,
146 SharedBitmapManager* shared_bitmap_manager, 149 SharedBitmapManager* shared_bitmap_manager,
147 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, 150 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
148 TaskGraphRunner* task_graph_runner, 151 TaskGraphRunner* task_graph_runner,
149 int id); 152 int id);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 virtual void BeginMainFrameAborted(CommitEarlyOutReason reason); 218 virtual void BeginMainFrameAborted(CommitEarlyOutReason reason);
216 virtual void BeginCommit(); 219 virtual void BeginCommit();
217 virtual void CommitComplete(); 220 virtual void CommitComplete();
218 virtual void Animate(base::TimeTicks monotonic_time); 221 virtual void Animate(base::TimeTicks monotonic_time);
219 virtual void UpdateAnimationState(bool start_ready_animations); 222 virtual void UpdateAnimationState(bool start_ready_animations);
220 void ActivateAnimations(); 223 void ActivateAnimations();
221 void MainThreadHasStoppedFlinging(); 224 void MainThreadHasStoppedFlinging();
222 void DidAnimateScrollOffset(); 225 void DidAnimateScrollOffset();
223 void SetViewportDamage(const gfx::Rect& damage_rect); 226 void SetViewportDamage(const gfx::Rect& damage_rect);
224 227
228 void SetTreeLayerFilterMutated(int layer_id,
229 LayerTreeImpl* tree,
230 const FilterOperations& filters);
231 void SetTreeLayerOpacityMutated(int layer_id,
232 LayerTreeImpl* tree,
233 float opacity);
234 void SetTreeLayerTransformMutated(int layer_id,
235 LayerTreeImpl* tree,
236 const gfx::Transform& transform);
237 void SetTreeLayerScrollOffsetMutated(int layer_id,
238 LayerTreeImpl* tree,
239 const gfx::ScrollOffset& scroll_offset);
240
241 // LayerTreeMutatorsClient implementation.
242 bool IsLayerInActiveTree(int layer_id) const override;
243 bool IsLayerInPendingTree(int layer_id) const override;
244 void SetMutatorsNeedCommit() override;
245 void SetLayerFilterMutated(int layer_id,
246 bool affects_active_tree,
247 const FilterOperations& filters) override;
248 void SetLayerOpacityMutated(int layer_id,
249 bool affects_active_tree,
250 float opacity) override;
251 void SetLayerTransformMutated(int layer_id,
252 bool affects_active_tree,
253 const gfx::Transform& transform) override;
254 void SetLayerScrollOffsetMutated(
255 int layer_id,
256 bool active_tree,
257 const gfx::ScrollOffset& scroll_offset) override;
258
225 virtual void PrepareTiles(); 259 virtual void PrepareTiles();
226 260
227 // Returns DRAW_SUCCESS unless problems occured preparing the frame, and we 261 // Returns DRAW_SUCCESS unless problems occured preparing the frame, and we
228 // should try to avoid displaying the frame. If PrepareToDraw is called, 262 // should try to avoid displaying the frame. If PrepareToDraw is called,
229 // DidDrawAllLayers must also be called, regardless of whether DrawLayers is 263 // DidDrawAllLayers must also be called, regardless of whether DrawLayers is
230 // called between the two. 264 // called between the two.
231 virtual DrawResult PrepareToDraw(FrameData* frame); 265 virtual DrawResult PrepareToDraw(FrameData* frame);
232 virtual void DrawLayers(FrameData* frame, base::TimeTicks frame_begin_time); 266 virtual void DrawLayers(FrameData* frame, base::TimeTicks frame_begin_time);
233 // Must be called if and only if PrepareToDraw was called. 267 // Must be called if and only if PrepareToDraw was called.
234 void DidDrawAllLayers(const FrameData& frame); 268 void DidDrawAllLayers(const FrameData& frame);
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 } 449 }
416 const GlobalStateThatImpactsTilePriority& global_tile_state() { 450 const GlobalStateThatImpactsTilePriority& global_tile_state() {
417 return global_tile_state_; 451 return global_tile_state_;
418 } 452 }
419 453
420 Proxy* proxy() const { return proxy_; } 454 Proxy* proxy() const { return proxy_; }
421 455
422 AnimationRegistrar* animation_registrar() const { 456 AnimationRegistrar* animation_registrar() const {
423 return animation_registrar_.get(); 457 return animation_registrar_.get();
424 } 458 }
459 AnimationHost* animation_host() const { return animation_host_.get(); }
425 460
426 void SetDebugState(const LayerTreeDebugState& new_debug_state); 461 void SetDebugState(const LayerTreeDebugState& new_debug_state);
427 const LayerTreeDebugState& debug_state() const { return debug_state_; } 462 const LayerTreeDebugState& debug_state() const { return debug_state_; }
428 463
429 class CC_EXPORT CullRenderPassesWithNoQuads { 464 class CC_EXPORT CullRenderPassesWithNoQuads {
430 public: 465 public:
431 bool ShouldRemoveRenderPass(const RenderPassDrawQuad& quad, 466 bool ShouldRemoveRenderPass(const RenderPassDrawQuad& quad,
432 const FrameData& frame) const; 467 const FrameData& frame) const;
433 468
434 // Iterates in draw order, so that when a surface is removed, and its 469 // Iterates in draw order, so that when a surface is removed, and its
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
732 bool resourceless_software_draw_; 767 bool resourceless_software_draw_;
733 768
734 gfx::Rect viewport_damage_rect_; 769 gfx::Rect viewport_damage_rect_;
735 770
736 BeginFrameArgs current_begin_frame_args_; 771 BeginFrameArgs current_begin_frame_args_;
737 772
738 // Expected time between two begin impl frame calls. 773 // Expected time between two begin impl frame calls.
739 base::TimeDelta begin_impl_frame_interval_; 774 base::TimeDelta begin_impl_frame_interval_;
740 775
741 scoped_ptr<AnimationRegistrar> animation_registrar_; 776 scoped_ptr<AnimationRegistrar> animation_registrar_;
777 scoped_ptr<AnimationHost> animation_host_;
742 std::set<ScrollbarAnimationController*> scrollbar_animation_controllers_; 778 std::set<ScrollbarAnimationController*> scrollbar_animation_controllers_;
743 779
744 RenderingStatsInstrumentation* rendering_stats_instrumentation_; 780 RenderingStatsInstrumentation* rendering_stats_instrumentation_;
745 MicroBenchmarkControllerImpl micro_benchmark_controller_; 781 MicroBenchmarkControllerImpl micro_benchmark_controller_;
746 scoped_ptr<TaskGraphRunner> single_thread_synchronous_task_graph_runner_; 782 scoped_ptr<TaskGraphRunner> single_thread_synchronous_task_graph_runner_;
747 783
748 // Optional callback to notify of new tree activations. 784 // Optional callback to notify of new tree activations.
749 base::Closure tree_activation_callback_; 785 base::Closure tree_activation_callback_;
750 786
751 SharedBitmapManager* shared_bitmap_manager_; 787 SharedBitmapManager* shared_bitmap_manager_;
(...skipping 10 matching lines...) Expand all
762 scoped_ptr<FrameTimingTracker> frame_timing_tracker_; 798 scoped_ptr<FrameTimingTracker> frame_timing_tracker_;
763 799
764 scoped_ptr<Viewport> viewport_; 800 scoped_ptr<Viewport> viewport_;
765 801
766 DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImpl); 802 DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImpl);
767 }; 803 };
768 804
769 } // namespace cc 805 } // namespace cc
770 806
771 #endif // CC_TREES_LAYER_TREE_HOST_IMPL_H_ 807 #endif // CC_TREES_LAYER_TREE_HOST_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698