Index: ui/gl/gl_surface.h |
diff --git a/ui/gl/gl_surface.h b/ui/gl/gl_surface.h |
index c0743f7f48547da5ae2ccacdc2f1ec9c6cef5851..ce01dbc9e4aa77d0460a19e2266e0b3777e7ac8a 100644 |
--- a/ui/gl/gl_surface.h |
+++ b/ui/gl/gl_surface.h |
@@ -20,6 +20,7 @@ |
#include "ui/gl/gl_export.h" |
#include "ui/gl/gl_image.h" |
#include "ui/gl/gl_implementation.h" |
+#include "ui/gl/gl_surface_format.h" |
namespace gfx { |
class VSyncProvider; |
@@ -39,22 +40,17 @@ class GL_EXPORT GLSurface : public base::RefCounted<GLSurface> { |
public: |
GLSurface(); |
- // Minimum bit depth of surface. |
- enum Format { |
- SURFACE_ARGB8888, |
- SURFACE_RGB565, |
- SURFACE_OSMESA_BGRA, |
- SURFACE_OSMESA_RGBA, |
- SURFACE_SURFACELESS, |
- SURFACE_DEFAULT = SURFACE_ARGB8888 |
- }; |
+ // Non-virtual initialization, this always calls Initialize with a |
+ // default GLSurfaceFormat. Subclasses should override the format- |
+ // specific Initialize method below and interpret the default format |
+ // as appropriate. |
+ bool Initialize(); |
// (Re)create the surface. TODO(apatrick): This is an ugly hack to allow the |
// EGL surface associated to be recreated without destroying the associated |
// context. The implementation of this function for other GLSurface derived |
// classes is in a pending changelist. |
- virtual bool Initialize(); |
- virtual bool Initialize(GLSurface::Format format); |
+ virtual bool Initialize(GLSurfaceFormat format); |
// Destroys the surface. |
virtual void Destroy() = 0; |
@@ -164,7 +160,7 @@ class GL_EXPORT GLSurface : public base::RefCounted<GLSurface> { |
virtual unsigned long GetCompatibilityKey(); |
// Get the GL pixel format of the surface, if available. |
- virtual GLSurface::Format GetFormat(); |
+ virtual GLSurfaceFormat GetFormat(); |
// Get access to a helper providing time of recent refresh and period |
// of screen refresh. If unavailable, returns NULL. |
@@ -234,7 +230,7 @@ class GL_EXPORT GLSurfaceAdapter : public GLSurface { |
public: |
explicit GLSurfaceAdapter(GLSurface* surface); |
- bool Initialize(GLSurface::Format format) override; |
+ bool Initialize(GLSurfaceFormat format) override; |
void Destroy() override; |
bool Resize(const gfx::Size& size, |
float scale_factor, |
@@ -271,7 +267,7 @@ class GL_EXPORT GLSurfaceAdapter : public GLSurface { |
void* GetDisplay() override; |
void* GetConfig() override; |
unsigned long GetCompatibilityKey() override; |
- GLSurface::Format GetFormat() override; |
+ GLSurfaceFormat GetFormat() override; |
gfx::VSyncProvider* GetVSyncProvider() override; |
bool ScheduleOverlayPlane(int z_order, |
gfx::OverlayTransform transform, |
@@ -299,6 +295,9 @@ class GL_EXPORT GLSurfaceAdapter : public GLSurface { |
GL_EXPORT scoped_refptr<GLSurface> InitializeGLSurface( |
scoped_refptr<GLSurface> surface); |
+GL_EXPORT scoped_refptr<GLSurface> InitializeGLSurfaceWithFormat( |
+ scoped_refptr<GLSurface> surface, GLSurfaceFormat format); |
+ |
} // namespace gl |
#endif // UI_GL_GL_SURFACE_H_ |