Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / ui / gl / gl_surface_egl.h
index 6cdaf5d..2c0a046 100644 (file)
 
 #include "base/compiler_specific.h"
 #include "base/time/time.h"
-#include "ui/gfx/native_widget_types.h"
 #include "ui/gfx/size.h"
+#include "ui/gfx/vsync_provider.h"
 #include "ui/gl/gl_bindings.h"
 #include "ui/gl/gl_surface.h"
-#include "ui/gl/vsync_provider.h"
 
 namespace gfx {
 
+// Get default EGL display for GLSurfaceEGL (differs by platform).
+EGLNativeDisplayType GetPlatformDefaultEGLNativeDisplay();
+
 // Interface for EGL surface.
 class GL_EXPORT GLSurfaceEGL : public GLSurface {
  public:
@@ -39,6 +41,7 @@ class GL_EXPORT GLSurfaceEGL : public GLSurface {
   static const char* GetEGLExtensions();
   static bool HasEGLExtension(const char* name);
   static bool IsCreateContextRobustnessSupported();
+  static bool IsEGLSurfacelessContextSupported();
 
  protected:
   virtual ~GLSurfaceEGL();
@@ -50,7 +53,7 @@ class GL_EXPORT GLSurfaceEGL : public GLSurface {
 // Encapsulates an EGL surface bound to a view.
 class GL_EXPORT NativeViewGLSurfaceEGL : public GLSurfaceEGL {
  public:
-  explicit NativeViewGLSurfaceEGL(gfx::AcceleratedWidget window);
+  explicit NativeViewGLSurfaceEGL(EGLNativeWindowType window);
 
   // Implement GLSurface.
   virtual EGLConfig GetConfig() OVERRIDE;
@@ -62,23 +65,24 @@ class GL_EXPORT NativeViewGLSurfaceEGL : public GLSurfaceEGL {
   virtual bool SwapBuffers() OVERRIDE;
   virtual gfx::Size GetSize() OVERRIDE;
   virtual EGLSurface GetHandle() OVERRIDE;
-  virtual std::string GetExtensions() OVERRIDE;
+  virtual bool SupportsPostSubBuffer() OVERRIDE;
   virtual bool PostSubBuffer(int x, int y, int width, int height) OVERRIDE;
   virtual VSyncProvider* GetVSyncProvider() OVERRIDE;
 
   // Create a NativeViewGLSurfaceEGL with an externally provided VSyncProvider.
   // Takes ownership of the VSyncProvider.
-  virtual bool Initialize(VSyncProvider* sync_provider);
+  virtual bool Initialize(scoped_ptr<VSyncProvider> sync_provider);
 
  protected:
   virtual ~NativeViewGLSurfaceEGL();
-  void SetHandle(EGLSurface surface);
+
+  EGLNativeWindowType window_;
 
  private:
-  gfx::AcceleratedWidget window_;
   EGLSurface surface_;
   bool supports_post_sub_buffer_;
   EGLConfig config_;
+  gfx::Size size_;
 
   scoped_ptr<VSyncProvider> vsync_provider_;