Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / cc / surfaces / surface.h
index e18d121..8ed4399 100644 (file)
@@ -6,10 +6,12 @@
 #define CC_SURFACES_SURFACE_H_
 
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "cc/surfaces/surfaces_export.h"
 #include "ui/gfx/size.h"
 
 namespace cc {
+class CompositorFrame;
 class SurfaceManager;
 class SurfaceClient;
 
@@ -23,11 +25,17 @@ class CC_SURFACES_EXPORT Surface {
   const gfx::Size& size() const { return size_; }
   int surface_id() const { return surface_id_; }
 
+  void QueueFrame(scoped_ptr<CompositorFrame> frame);
+  // Returns the most recent frame that is eligible to be rendered.
+  CompositorFrame* GetEligibleFrame();
+
  private:
   SurfaceManager* manager_;
   SurfaceClient* client_;
   gfx::Size size_;
   int surface_id_;
+  // TODO(jamesr): Support multiple frames in flight.
+  scoped_ptr<CompositorFrame> current_frame_;
 
   DISALLOW_COPY_AND_ASSIGN(Surface);
 };