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_CONTEXT_EGL_H_ | 5 #ifndef UI_GL_GL_CONTEXT_EGL_H_ |
6 #define UI_GL_GL_CONTEXT_EGL_H_ | 6 #define UI_GL_GL_CONTEXT_EGL_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
11 #include "ui/gl/gl_context.h" | 11 #include "ui/gl/gl_context.h" |
12 | 12 |
13 typedef void* EGLContext; | 13 typedef void* EGLContext; |
14 typedef void* EGLDisplay; | 14 typedef void* EGLDisplay; |
15 typedef void* EGLConfig; | 15 typedef void* EGLConfig; |
16 | 16 |
17 namespace gfx { | 17 namespace gfx { |
18 | 18 |
19 class GLSurface; | 19 class GLSurface; |
20 | 20 |
21 // Encapsulates an EGL OpenGL ES context. | 21 // Encapsulates an EGL OpenGL ES context. |
22 class GLContextEGL : public GLContextReal { | 22 class GLContextEGL : public GLContextReal { |
23 public: | 23 public: |
24 explicit GLContextEGL(GLShareGroup* share_group); | 24 explicit GLContextEGL(GLShareGroup* share_group); |
25 | 25 |
26 // Implement GLContext. | 26 // Implement GLContext. |
27 bool Initialize(GLSurface* compatible_surface, | 27 bool Initialize(GLSurface* compatible_surface, |
28 GpuPreference gpu_preference) override; | 28 GpuPreference gpu_preference) override; |
29 void Destroy() override; | |
30 bool MakeCurrent(GLSurface* surface) override; | 29 bool MakeCurrent(GLSurface* surface) override; |
31 void ReleaseCurrent(GLSurface* surface) override; | 30 void ReleaseCurrent(GLSurface* surface) override; |
32 bool IsCurrent(GLSurface* surface) override; | 31 bool IsCurrent(GLSurface* surface) override; |
33 void* GetHandle() override; | 32 void* GetHandle() override; |
34 void OnSetSwapInterval(int interval) override; | 33 void OnSetSwapInterval(int interval) override; |
35 std::string GetExtensions() override; | 34 std::string GetExtensions() override; |
36 bool WasAllocatedUsingRobustnessExtension() override; | 35 bool WasAllocatedUsingRobustnessExtension() override; |
37 bool GetTotalGpuMemory(size_t* bytes) override; | 36 bool GetTotalGpuMemory(size_t* bytes) override; |
38 void SetUnbindFboOnMakeCurrent() override; | 37 void SetUnbindFboOnMakeCurrent() override; |
39 | 38 |
40 protected: | 39 protected: |
41 ~GLContextEGL() override; | 40 ~GLContextEGL() override; |
42 | 41 |
43 private: | 42 private: |
| 43 void Destroy(); |
| 44 |
44 EGLContext context_; | 45 EGLContext context_; |
45 EGLDisplay display_; | 46 EGLDisplay display_; |
46 EGLConfig config_; | 47 EGLConfig config_; |
47 bool unbind_fbo_on_makecurrent_; | 48 bool unbind_fbo_on_makecurrent_; |
48 int swap_interval_; | 49 int swap_interval_; |
49 | 50 |
50 DISALLOW_COPY_AND_ASSIGN(GLContextEGL); | 51 DISALLOW_COPY_AND_ASSIGN(GLContextEGL); |
51 }; | 52 }; |
52 | 53 |
53 } // namespace gfx | 54 } // namespace gfx |
54 | 55 |
55 #endif // UI_GL_GL_CONTEXT_EGL_H_ | 56 #endif // UI_GL_GL_CONTEXT_EGL_H_ |
OLD | NEW |