Index: ui/gl/gl_surface_egl.h |
diff --git a/ui/gl/gl_surface_egl.h b/ui/gl/gl_surface_egl.h |
index 8fb84a08003fedf5ef6cc01be500e5b8e406524b..9f8a3fa87101e58d2292d700b831e28a30227373 100644 |
--- a/ui/gl/gl_surface_egl.h |
+++ b/ui/gl/gl_surface_egl.h |
@@ -18,6 +18,7 @@ |
#include "ui/gfx/vsync_provider.h" |
#include "ui/gl/gl_bindings.h" |
#include "ui/gl/gl_surface.h" |
+#include "ui/gl/gl_surface_overlay.h" |
namespace gfx { |
@@ -87,6 +88,8 @@ class GL_EXPORT NativeViewGLSurfaceEGL : public GLSurfaceEGL { |
EGLSurface GetHandle() override; |
bool SupportsPostSubBuffer() override; |
gfx::SwapResult PostSubBuffer(int x, int y, int width, int height) override; |
+ bool SupportsCommitOverlayPlanes() override; |
+ gfx::SwapResult CommitOverlayPlanes() override; |
VSyncProvider* GetVSyncProvider() override; |
bool ScheduleOverlayPlane(int z_order, |
OverlayTransform transform, |
@@ -106,6 +109,10 @@ class GL_EXPORT NativeViewGLSurfaceEGL : public GLSurfaceEGL { |
void OnSetSwapInterval(int interval) override; |
private: |
+ // Commit the |pending_overlays_| and clear the vector. Returns false if any |
+ // fail to be committed. |
+ bool CommitAndClearPendingOverlays(); |
+ |
EGLSurface surface_; |
bool supports_post_sub_buffer_; |
EGLConfig config_; |
@@ -115,6 +122,8 @@ class GL_EXPORT NativeViewGLSurfaceEGL : public GLSurfaceEGL { |
int swap_interval_; |
+ std::vector<GLSurfaceOverlay> pending_overlays_; |
+ |
#if defined(OS_WIN) |
bool vsync_override_; |