Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1108)

Unified Diff: ui/gl/gl_bindings.h

Issue 2629633003: Refactor GL bindings so there is no global GLApi or DriverGL. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/gl/gl_bindings.h
diff --git a/ui/gl/gl_bindings.h b/ui/gl/gl_bindings.h
index b1044f8f4fa73b7230c40f65c1f97adf30d1c4b2..ab0b88d88bf2eaa2d0501ac39832487a94ef68b7 100644
--- a/ui/gl/gl_bindings.h
+++ b/ui/gl/gl_bindings.h
@@ -394,34 +394,30 @@ typedef uint64_t EGLuint64CHROMIUM;
namespace gl {
+struct GLVersionInfo;
+
struct GL_EXPORT DriverGL {
void InitializeStaticBindings();
- void InitializeCustomDynamicBindings(GLContext* context);
- void InitializeDebugBindings();
- void InitializeNullDrawBindings();
- // TODO(danakj): Remove this when all test suites are using null-draw.
- bool HasInitializedNullDrawBindings();
- bool SetNullDrawBindingsEnabled(bool enabled);
+ void InitializeDynamicBindings(const GLVersionInfo* ver,
+ const std::string& context_extensions);
void ClearBindings();
ProcsGL fn;
- ProcsGL orig_fn;
- ProcsGL debug_fn;
ExtensionsGL ext;
- bool null_draw_bindings_enabled;
+};
- private:
- void InitializeDynamicBindings(GLContext* context);
+struct GL_EXPORT CurrentGL {
+ GLApi* Api = nullptr;
+ DriverGL* Driver = nullptr;
+ const GLVersionInfo* Version = nullptr;
};
struct GL_EXPORT DriverOSMESA {
void InitializeStaticBindings();
void InitializeExtensionBindings();
- void InitializeDebugBindings();
void ClearBindings();
ProcsOSMESA fn;
- ProcsOSMESA debug_fn;
ExtensionsOSMESA ext;
private:
@@ -432,11 +428,9 @@ struct GL_EXPORT DriverOSMESA {
struct GL_EXPORT DriverWGL {
void InitializeStaticBindings();
void InitializeExtensionBindings();
- void InitializeDebugBindings();
void ClearBindings();
ProcsWGL fn;
- ProcsWGL debug_fn;
ExtensionsWGL ext;
private:
@@ -449,11 +443,9 @@ struct GL_EXPORT DriverEGL {
void InitializeStaticBindings();
void InitializeClientExtensionBindings();
void InitializeExtensionBindings();
- void InitializeDebugBindings();
void ClearBindings();
ProcsEGL fn;
- ProcsEGL debug_fn;
ExtensionsEGL ext;
static std::string GetPlatformExtensions();
@@ -465,11 +457,9 @@ struct GL_EXPORT DriverEGL {
struct GL_EXPORT DriverGLX {
void InitializeStaticBindings();
void InitializeExtensionBindings();
- void InitializeDebugBindings();
void ClearBindings();
ProcsGLX fn;
- ProcsGLX debug_fn;
ExtensionsGLX ext;
private:
@@ -478,11 +468,12 @@ struct GL_EXPORT DriverGLX {
#endif
// This #define is here to support autogenerated code.
-#define g_current_gl_context g_current_gl_context_tls->Get()
-GL_EXPORT extern base::ThreadLocalPointer<GLApi>* g_current_gl_context_tls;
+#define g_current_gl_context g_current_gl_context_tls->Get()->Api
+#define g_current_gl_driver g_current_gl_context_tls->Get()->Driver
+#define g_current_gl_version g_current_gl_context_tls->Get()->Version
+GL_EXPORT extern base::ThreadLocalPointer<CurrentGL>* g_current_gl_context_tls;
GL_EXPORT extern OSMESAApi* g_current_osmesa_context;
-GL_EXPORT extern DriverGL g_driver_gl;
GL_EXPORT extern DriverOSMESA g_driver_osmesa;
#if defined(USE_EGL)

Powered by Google App Engine
This is Rietveld 408576698