Index: trunk/src/ui/compositor/compositor.h |
=================================================================== |
--- trunk/src/ui/compositor/compositor.h (revision 280520) |
+++ trunk/src/ui/compositor/compositor.h (working copy) |
@@ -22,6 +22,8 @@ |
#include "ui/gfx/size.h" |
#include "ui/gfx/vector2d.h" |
+class SkBitmap; |
+ |
namespace base { |
class MessageLoopProxy; |
class RunLoop; |
@@ -155,6 +157,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. |
@@ -223,12 +228,17 @@ |
virtual void DidCompleteSwapBuffers() OVERRIDE; |
// cc::LayerTreeHostSingleThreadClient implementation. |
+ virtual void ScheduleComposite() OVERRIDE; |
+ virtual void ScheduleAnimation() OVERRIDE; |
virtual void DidPostSwapBuffers() OVERRIDE; |
virtual void DidAbortSwapBuffers() OVERRIDE; |
// LayerAnimatorCollectionDelegate implementation. |
virtual void ScheduleAnimationForLayerCollection() OVERRIDE; |
+ int last_started_frame() { return last_started_frame_; } |
+ int last_ended_frame() { return last_ended_frame_; } |
+ |
bool IsLocked() { return compositor_lock_ != NULL; } |
const cc::LayerTreeDebugState& GetLayerTreeDebugState() const; |
@@ -248,6 +258,9 @@ |
// Called to release any pending CompositorLock |
void CancelCompositorLock(); |
+ // Notifies the compositor that compositing is complete. |
+ void NotifyEnd(); |
+ |
gfx::Size size_; |
ui::ContextFactory* context_factory_; |
@@ -276,8 +289,19 @@ |
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); |
}; |