Index: sky/compositor/layer_host.h |
diff --git a/sky/compositor/layer_host.h b/sky/compositor/layer_host.h |
index 17b8ae58d2ef287657b9969c725365c434e5f79b..2f8ccdbeeeaf828bb2973745422f50125b405f3a 100644 |
--- a/sky/compositor/layer_host.h |
+++ b/sky/compositor/layer_host.h |
@@ -7,18 +7,18 @@ |
#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
+#include "base/memory/weak_ptr.h" |
#include "mojo/skia/ganesh_context.h" |
#include "sky/compositor/layer_host_client.h" |
#include "sky/compositor/resource_manager.h" |
#include "sky/compositor/surface_holder.h" |
-#include "sky/scheduler/scheduler.h" |
namespace sky { |
class ResourceManager; |
class Layer; |
class LayerHostClient; |
-class LayerHost : public SurfaceHolder::Client, public Scheduler::Client { |
+class LayerHost : public SurfaceHolder::Client { |
public: |
explicit LayerHost(LayerHostClient* client); |
~LayerHost(); |
@@ -42,33 +42,34 @@ class LayerHost : public SurfaceHolder::Client, public Scheduler::Client { |
private: |
enum State { |
- kIdle, |
- kWaitingForBeginFrame, |
- kProducingFrame, |
- kWaitingForSurfaceToUploadFrame, |
+ kWaitingForSurfaceService, |
+ kReadyForFrame, |
+ kWaitingForFrameAcknowldgement, |
}; |
// SurfaceHolder::Client |
+ void OnSurfaceConnectionCreated() override; |
void OnSurfaceIdAvailable(mojo::SurfaceIdPtr surface_id) override; |
void ReturnResources( |
mojo::Array<mojo::ReturnedResourcePtr> resources) override; |
- // Scheduler::Client |
- void BeginFrame(base::TimeTicks frame_time, |
- base::TimeTicks deadline) override; |
+ void BeginFrameSoon(); |
+ void BeginFrame(); |
void Upload(Layer* layer); |
+ void DidCompleteFrame(); |
LayerHostClient* client_; |
State state_; |
+ bool frame_requested_; |
SurfaceHolder surface_holder_; |
base::WeakPtr<mojo::GLContext> gl_context_; |
mojo::GaneshContext ganesh_context_; |
ResourceManager resource_manager_; |
- Scheduler scheduler_; |
- |
scoped_refptr<Layer> root_layer_; |
+ base::WeakPtrFactory<LayerHost> weak_factory_; |
+ |
DISALLOW_COPY_AND_ASSIGN(LayerHost); |
}; |