Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / content / browser / compositor / surface_display_output_surface.cc
index 2e20c97..bde972a 100644 (file)
@@ -33,6 +33,12 @@ SurfaceDisplayOutputSurface::~SurfaceDisplayOutputSurface() {
   }
 }
 
+void SurfaceDisplayOutputSurface::ReceivedVSyncParameters(
+    base::TimeTicks timebase,
+    base::TimeDelta interval) {
+  CommitVSyncParameters(timebase, interval);
+}
+
 void SurfaceDisplayOutputSurface::SwapBuffers(cc::CompositorFrame* frame) {
   gfx::Size frame_size =
       frame->delegated_frame_data->render_pass_list.back()->output_rect.size();
@@ -48,13 +54,13 @@ void SurfaceDisplayOutputSurface::SwapBuffers(cc::CompositorFrame* frame) {
 
   scoped_ptr<cc::CompositorFrame> frame_copy(new cc::CompositorFrame());
   frame->AssignTo(frame_copy.get());
-  factory_.SubmitFrame(surface_id_, frame_copy.Pass());
-
-  if (!display_->Draw())
-    return;
+  factory_.SubmitFrame(
+      surface_id_,
+      frame_copy.Pass(),
+      base::Bind(&SurfaceDisplayOutputSurface::SwapBuffersComplete,
+                 base::Unretained(this)));
 
   client_->DidSwapBuffers();
-  client_->DidSwapBuffersComplete();
 }
 
 void SurfaceDisplayOutputSurface::ReturnResources(
@@ -65,4 +71,8 @@ void SurfaceDisplayOutputSurface::ReturnResources(
     client_->ReclaimResources(&ack);
 }
 
+void SurfaceDisplayOutputSurface::SwapBuffersComplete() {
+  client_->DidSwapBuffersComplete();
+}
+
 }  // namespace content