Index: ui/ozone/public/surface_ozone_egl.h |
diff --git a/ui/ozone/public/surface_ozone_egl.h b/ui/ozone/public/surface_ozone_egl.h |
index 4f38f06b2117c2e2605af9bd2f86d1f4c92a871c..d3cab531e407848f3a9f61aba0ec7eca9299611c 100644 |
--- a/ui/ozone/public/surface_ozone_egl.h |
+++ b/ui/ozone/public/surface_ozone_egl.h |
@@ -6,6 +6,7 @@ |
#define UI_OZONE_PUBLIC_SURFACE_OZONE_EGL_H_ |
#include "base/basictypes.h" |
+#include "base/callback.h" |
#include "base/memory/scoped_ptr.h" |
#include "ui/gfx/overlay_transform.h" |
#include "ui/ozone/ozone_base_export.h" |
@@ -38,6 +39,15 @@ class OZONE_BASE_EXPORT SurfaceOzoneEGL { |
// be used to present the new front buffer if the platform requires this. |
virtual bool OnSwapBuffers() = 0; |
+ typedef base::Callback<void()> PageFlipCompletionCallback; |
+ // On platforms where Chromium manages the system front/back buffer, we need |
+ // to know when front buffer is actually displayed on screen. This |
+ // callback should be called after the front buffer is displayed on screen. |
+ // This should be a noop on platforms where these buffers are managed by an |
+ // external window system. |
+ virtual void SetPageFlipCompletionCallback( |
+ const PageFlipCompletionCallback& callback) = 0; |
+ |
// Returns a gfx::VsyncProvider for this surface. Note that this may be |
// called after we have entered the sandbox so if there are operations (e.g. |
// opening a file descriptor providing vsync events) that must be done |