Index: ui/compositor/compositor.h |
diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h |
index b2d27797de7fc1af7938ba330d02eb39f891cbc5..0e4ac8a0a27e261c3955f368f8a09976029c3193 100644 |
--- a/ui/compositor/compositor.h |
+++ b/ui/compositor/compositor.h |
@@ -24,6 +24,8 @@ |
#include "ui/gfx/size.h" |
#include "ui/gfx/vector2d.h" |
+class SkBitmap; |
+ |
namespace base { |
class MessageLoopProxy; |
class RunLoop; |
@@ -157,6 +159,9 @@ |
// compositing layers on. |
float device_scale_factor() const { return device_scale_factor_; } |
+ // Draws the scene created by the layer tree and any visual effects. |
+ void Draw(); |
+ |
// Where possible, draws are scissored to a damage region calculated from |
// changes to layer properties. This bypasses that and indicates that |
// the whole frame needs to be drawn. |
@@ -229,8 +234,13 @@ |
virtual void DidCompleteSwapBuffers() OVERRIDE; |
// cc::LayerTreeHostSingleThreadClient implementation. |
+ virtual void ScheduleComposite() OVERRIDE; |
+ virtual void ScheduleAnimation() OVERRIDE; |
virtual void DidPostSwapBuffers() OVERRIDE; |
virtual void DidAbortSwapBuffers() OVERRIDE; |
+ |
+ int last_started_frame() { return last_started_frame_; } |
+ int last_ended_frame() { return last_ended_frame_; } |
bool IsLocked() { return compositor_lock_ != NULL; } |
@@ -250,6 +260,9 @@ |
// Called to release any pending CompositorLock |
void CancelCompositorLock(); |
+ |
+ // Notifies the compositor that compositing is complete. |
+ void NotifyEnd(); |
gfx::Size size_; |
@@ -281,7 +294,18 @@ |
CompositorLock* compositor_lock_; |
+ // Prevent more than one draw from being scheduled. |
+ bool defer_draw_scheduling_; |
+ |
+ // Used to prevent Draw()s while a composite is in progress. |
+ bool waiting_on_compositing_end_; |
+ bool draw_on_compositing_end_; |
+ enum SwapState { SWAP_NONE, SWAP_POSTED, SWAP_COMPLETED }; |
+ SwapState swap_state_; |
+ |
LayerAnimatorCollection layer_animator_collection_; |
+ |
+ base::WeakPtrFactory<Compositor> schedule_draw_factory_; |
DISALLOW_COPY_AND_ASSIGN(Compositor); |
}; |