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

Unified Diff: sky/compositor/layer_host.h

Issue 756673004: Surfaces should acknowledge frame submissions (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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: 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);
};

Powered by Google App Engine
This is Rietveld 408576698