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

Unified Diff: trunk/src/ui/compositor/compositor.h

Issue 359103004: Revert 280493 "Make SingleThreadProxy a SchedulerClient" (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
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);
};
« no previous file with comments | « trunk/src/content/test/web_layer_tree_view_impl_for_testing.h ('k') | trunk/src/ui/compositor/compositor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698