| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef UI_GL_GL_SURFACE_EGL_H_ | 5 #ifndef UI_GL_GL_SURFACE_EGL_H_ | 
| 6 #define UI_GL_GL_SURFACE_EGL_H_ | 6 #define UI_GL_GL_SURFACE_EGL_H_ | 
| 7 | 7 | 
| 8 #if defined(OS_WIN) | 8 #if defined(OS_WIN) | 
| 9 #include <windows.h> | 9 #include <windows.h> | 
| 10 #endif | 10 #endif | 
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 68 }; | 68 }; | 
| 69 | 69 | 
| 70 // Interface for EGL surface. | 70 // Interface for EGL surface. | 
| 71 class GL_EXPORT GLSurfaceEGL : public GLSurface { | 71 class GL_EXPORT GLSurfaceEGL : public GLSurface { | 
| 72  public: | 72  public: | 
| 73   GLSurfaceEGL(); | 73   GLSurfaceEGL(); | 
| 74 | 74 | 
| 75   // Implement GLSurface. | 75   // Implement GLSurface. | 
| 76   EGLDisplay GetDisplay() override; | 76   EGLDisplay GetDisplay() override; | 
| 77   EGLConfig GetConfig() override; | 77   EGLConfig GetConfig() override; | 
| 78   GLSurface::Format GetFormat() override; | 78   GLSurfaceFormat GetFormat() override; | 
| 79 | 79 | 
| 80   static bool InitializeOneOff(EGLNativeDisplayType native_display); | 80   static bool InitializeOneOff(EGLNativeDisplayType native_display); | 
| 81   static void ShutdownOneOff(); | 81   static void ShutdownOneOff(); | 
| 82   static EGLDisplay GetHardwareDisplay(); | 82   static EGLDisplay GetHardwareDisplay(); | 
| 83   static EGLDisplay InitializeDisplay(EGLNativeDisplayType native_display); | 83   static EGLDisplay InitializeDisplay(EGLNativeDisplayType native_display); | 
| 84   static EGLNativeDisplayType GetNativeDisplay(); | 84   static EGLNativeDisplayType GetNativeDisplay(); | 
| 85 | 85 | 
| 86   // These aren't particularly tied to surfaces, but since we already | 86   // These aren't particularly tied to surfaces, but since we already | 
| 87   // have the static InitializeOneOff here, it's easiest to reuse its | 87   // have the static InitializeOneOff here, it's easiest to reuse its | 
| 88   // initialization guards. | 88   // initialization guards. | 
| 89   static const char* GetEGLExtensions(); | 89   static const char* GetEGLExtensions(); | 
| 90   static bool HasEGLExtension(const char* name); | 90   static bool HasEGLExtension(const char* name); | 
| 91   static bool IsCreateContextRobustnessSupported(); | 91   static bool IsCreateContextRobustnessSupported(); | 
| 92   static bool IsCreateContextBindGeneratesResourceSupported(); | 92   static bool IsCreateContextBindGeneratesResourceSupported(); | 
| 93   static bool IsCreateContextWebGLCompatabilitySupported(); | 93   static bool IsCreateContextWebGLCompatabilitySupported(); | 
| 94   static bool IsEGLSurfacelessContextSupported(); | 94   static bool IsEGLSurfacelessContextSupported(); | 
| 95   static bool IsDirectCompositionSupported(); | 95   static bool IsDirectCompositionSupported(); | 
| 96 | 96 | 
| 97  protected: | 97  protected: | 
| 98   ~GLSurfaceEGL() override; | 98   ~GLSurfaceEGL() override; | 
| 99 | 99 | 
| 100   EGLConfig config_ = nullptr; | 100   EGLConfig config_ = nullptr; | 
| 101   GLSurface::Format format_ = GLSurface::SURFACE_DEFAULT; | 101   GLSurfaceFormat format_; | 
| 102 | 102 | 
| 103  private: | 103  private: | 
| 104   DISALLOW_COPY_AND_ASSIGN(GLSurfaceEGL); | 104   DISALLOW_COPY_AND_ASSIGN(GLSurfaceEGL); | 
| 105   static bool initialized_; | 105   static bool initialized_; | 
| 106 }; | 106 }; | 
| 107 | 107 | 
| 108 // Encapsulates an EGL surface bound to a view. | 108 // Encapsulates an EGL surface bound to a view. | 
| 109 class GL_EXPORT NativeViewGLSurfaceEGL : public GLSurfaceEGL { | 109 class GL_EXPORT NativeViewGLSurfaceEGL : public GLSurfaceEGL { | 
| 110  public: | 110  public: | 
| 111   explicit NativeViewGLSurfaceEGL(EGLNativeWindowType window); | 111   explicit NativeViewGLSurfaceEGL(EGLNativeWindowType window); | 
| 112 | 112 | 
| 113   // Implement GLSurface. | 113   // Implement GLSurface. | 
| 114   using GLSurfaceEGL::Initialize; | 114   using GLSurfaceEGL::Initialize; | 
| 115   bool Initialize(GLSurface::Format format) override; | 115   bool Initialize(GLSurfaceFormat format) override; | 
| 116   void Destroy() override; | 116   void Destroy() override; | 
| 117   bool Resize(const gfx::Size& size, | 117   bool Resize(const gfx::Size& size, | 
| 118               float scale_factor, | 118               float scale_factor, | 
| 119               bool has_alpha) override; | 119               bool has_alpha) override; | 
| 120   bool Recreate() override; | 120   bool Recreate() override; | 
| 121   bool IsOffscreen() override; | 121   bool IsOffscreen() override; | 
| 122   gfx::SwapResult SwapBuffers() override; | 122   gfx::SwapResult SwapBuffers() override; | 
| 123   gfx::Size GetSize() override; | 123   gfx::Size GetSize() override; | 
| 124   EGLSurface GetHandle() override; | 124   EGLSurface GetHandle() override; | 
| 125   bool SupportsSwapBuffersWithDamage() override; | 125   bool SupportsSwapBuffersWithDamage() override; | 
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 184 | 184 | 
| 185   DISALLOW_COPY_AND_ASSIGN(NativeViewGLSurfaceEGL); | 185   DISALLOW_COPY_AND_ASSIGN(NativeViewGLSurfaceEGL); | 
| 186 }; | 186 }; | 
| 187 | 187 | 
| 188 // Encapsulates a pbuffer EGL surface. | 188 // Encapsulates a pbuffer EGL surface. | 
| 189 class GL_EXPORT PbufferGLSurfaceEGL : public GLSurfaceEGL { | 189 class GL_EXPORT PbufferGLSurfaceEGL : public GLSurfaceEGL { | 
| 190  public: | 190  public: | 
| 191   explicit PbufferGLSurfaceEGL(const gfx::Size& size); | 191   explicit PbufferGLSurfaceEGL(const gfx::Size& size); | 
| 192 | 192 | 
| 193   // Implement GLSurface. | 193   // Implement GLSurface. | 
| 194   bool Initialize() override; | 194   bool Initialize(GLSurfaceFormat format) override; | 
| 195   bool Initialize(GLSurface::Format format) override; |  | 
| 196   void Destroy() override; | 195   void Destroy() override; | 
| 197   bool IsOffscreen() override; | 196   bool IsOffscreen() override; | 
| 198   gfx::SwapResult SwapBuffers() override; | 197   gfx::SwapResult SwapBuffers() override; | 
| 199   gfx::Size GetSize() override; | 198   gfx::Size GetSize() override; | 
| 200   bool Resize(const gfx::Size& size, | 199   bool Resize(const gfx::Size& size, | 
| 201               float scale_factor, | 200               float scale_factor, | 
| 202               bool has_alpha) override; | 201               bool has_alpha) override; | 
| 203   EGLSurface GetHandle() override; | 202   EGLSurface GetHandle() override; | 
| 204   void* GetShareHandle() override; | 203   void* GetShareHandle() override; | 
| 205 | 204 | 
| 206  protected: | 205  protected: | 
| 207   ~PbufferGLSurfaceEGL() override; | 206   ~PbufferGLSurfaceEGL() override; | 
| 208 | 207 | 
| 209  private: | 208  private: | 
| 210   gfx::Size size_; | 209   gfx::Size size_; | 
| 211   EGLSurface surface_; | 210   EGLSurface surface_; | 
| 212 | 211 | 
| 213   DISALLOW_COPY_AND_ASSIGN(PbufferGLSurfaceEGL); | 212   DISALLOW_COPY_AND_ASSIGN(PbufferGLSurfaceEGL); | 
| 214 }; | 213 }; | 
| 215 | 214 | 
| 216 // SurfacelessEGL is used as Offscreen surface when platform supports | 215 // SurfacelessEGL is used as Offscreen surface when platform supports | 
| 217 // KHR_surfaceless_context and GL_OES_surfaceless_context. This would avoid the | 216 // KHR_surfaceless_context and GL_OES_surfaceless_context. This would avoid the | 
| 218 // need to create a dummy EGLsurface in case we render to client API targets. | 217 // need to create a dummy EGLsurface in case we render to client API targets. | 
| 219 class GL_EXPORT SurfacelessEGL : public GLSurfaceEGL { | 218 class GL_EXPORT SurfacelessEGL : public GLSurfaceEGL { | 
| 220  public: | 219  public: | 
| 221   explicit SurfacelessEGL(const gfx::Size& size); | 220   explicit SurfacelessEGL(const gfx::Size& size); | 
| 222 | 221 | 
| 223   // Implement GLSurface. | 222   // Implement GLSurface. | 
| 224   bool Initialize() override; | 223   bool Initialize(GLSurfaceFormat format) override; | 
| 225   bool Initialize(GLSurface::Format format) override; |  | 
| 226   void Destroy() override; | 224   void Destroy() override; | 
| 227   bool IsOffscreen() override; | 225   bool IsOffscreen() override; | 
| 228   bool IsSurfaceless() const override; | 226   bool IsSurfaceless() const override; | 
| 229   gfx::SwapResult SwapBuffers() override; | 227   gfx::SwapResult SwapBuffers() override; | 
| 230   gfx::Size GetSize() override; | 228   gfx::Size GetSize() override; | 
| 231   bool Resize(const gfx::Size& size, | 229   bool Resize(const gfx::Size& size, | 
| 232               float scale_factor, | 230               float scale_factor, | 
| 233               bool has_alpha) override; | 231               bool has_alpha) override; | 
| 234   EGLSurface GetHandle() override; | 232   EGLSurface GetHandle() override; | 
| 235   void* GetShareHandle() override; | 233   void* GetShareHandle() override; | 
| 236 | 234 | 
| 237  protected: | 235  protected: | 
| 238   ~SurfacelessEGL() override; | 236   ~SurfacelessEGL() override; | 
| 239 | 237 | 
| 240  private: | 238  private: | 
| 241   gfx::Size size_; | 239   gfx::Size size_; | 
| 242   DISALLOW_COPY_AND_ASSIGN(SurfacelessEGL); | 240   DISALLOW_COPY_AND_ASSIGN(SurfacelessEGL); | 
| 243 }; | 241 }; | 
| 244 | 242 | 
| 245 }  // namespace gl | 243 }  // namespace gl | 
| 246 | 244 | 
| 247 #endif  // UI_GL_GL_SURFACE_EGL_H_ | 245 #endif  // UI_GL_GL_SURFACE_EGL_H_ | 
| OLD | NEW | 
|---|