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

Side by Side Diff: ui/gl/gl_implementation.h

Issue 94963003: Take GL version and extensions correctly into account when binding functions (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Improve Windows initialization and renderBufferMultisample explanation Created 7 years 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 unified diff | Download patch
« no previous file with comments | « ui/gl/gl_glx_api_implementation.cc ('k') | ui/gl/gl_implementation.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_IMPLEMENTATION_H_ 5 #ifndef UI_GL_GL_IMPLEMENTATION_H_
6 #define UI_GL_GL_IMPLEMENTATION_H_ 6 #define UI_GL_GL_IMPLEMENTATION_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 24 matching lines...) Expand all
35 35
36 void GetAllowedGLImplementations(std::vector<GLImplementation>* impls); 36 void GetAllowedGLImplementations(std::vector<GLImplementation>* impls);
37 37
38 #if defined(OS_WIN) 38 #if defined(OS_WIN)
39 typedef void* (WINAPI *GLGetProcAddressProc)(const char* name); 39 typedef void* (WINAPI *GLGetProcAddressProc)(const char* name);
40 #else 40 #else
41 typedef void* (*GLGetProcAddressProc)(const char* name); 41 typedef void* (*GLGetProcAddressProc)(const char* name);
42 #endif 42 #endif
43 43
44 // Initialize a particular GL implementation. 44 // Initialize a particular GL implementation.
45 GL_EXPORT bool InitializeGLBindings(GLImplementation implementation); 45 GL_EXPORT bool InitializeStaticGLBindings(GLImplementation implementation);
46 46
47 // Initialize extension function bindings for a GL implementation. 47 // Initialize function bindings that depend on the context for a GL
48 GL_EXPORT bool InitializeGLExtensionBindings(GLImplementation implementation, 48 // implementation.
49 GL_EXPORT bool InitializeDynamicGLBindings(GLImplementation implementation,
49 GLContext* context); 50 GLContext* context);
50 51
51 // Initialize Debug logging wrappers for GL bindings. 52 // Initialize Debug logging wrappers for GL bindings.
52 void InitializeDebugGLBindings(); 53 void InitializeDebugGLBindings();
53 54
54 GL_EXPORT void ClearGLBindings(); 55 GL_EXPORT void ClearGLBindings();
55 56
56 // Set the current GL implementation. 57 // Set the current GL implementation.
57 GL_EXPORT void SetGLImplementation(GLImplementation implementation); 58 GL_EXPORT void SetGLImplementation(GLImplementation implementation);
58 59
(...skipping 12 matching lines...) Expand all
71 72
72 // Add a native library to those searched for GL entry points. 73 // Add a native library to those searched for GL entry points.
73 void AddGLNativeLibrary(base::NativeLibrary library); 74 void AddGLNativeLibrary(base::NativeLibrary library);
74 75
75 // Unloads all native libraries. 76 // Unloads all native libraries.
76 void UnloadGLNativeLibraries(); 77 void UnloadGLNativeLibraries();
77 78
78 // Set an additional function that will be called to find GL entry points. 79 // Set an additional function that will be called to find GL entry points.
79 void SetGLGetProcAddressProc(GLGetProcAddressProc proc); 80 void SetGLGetProcAddressProc(GLGetProcAddressProc proc);
80 81
81 // Find a core (non-extension) entry point in the current GL implementation. On 82 // Find an entry point in the current GL implementation. Note that the function
82 // EGL based implementations core entry points will not be queried through 83 // may return a non-null pointer to something else than the GL function if an
83 // GLGetProcAddressProc. 84 // unsupported function is queried. Spec-compliant eglGetProcAddress and
84 void* GetGLCoreProcAddress(const char* name); 85 // glxGetProcAddress are allowed to return garbage for unsupported functions,
85 86 // and when querying functions from the EGL library supplied by Android, it may
86 // Find an entry point in the current GL implementation. 87 // return a function that prints a log message about the function being
88 // unsupported.
87 void* GetGLProcAddress(const char* name); 89 void* GetGLProcAddress(const char* name);
88 90
89 // Return information about the GL window system binding implementation (e.g., 91 // Return information about the GL window system binding implementation (e.g.,
90 // EGL, GLX, WGL). Returns true if the information was retrieved successfully. 92 // EGL, GLX, WGL). Returns true if the information was retrieved successfully.
91 GL_EXPORT bool GetGLWindowSystemBindingInfo(GLWindowSystemBindingInfo* info); 93 GL_EXPORT bool GetGLWindowSystemBindingInfo(GLWindowSystemBindingInfo* info);
92 94
93 } // namespace gfx 95 } // namespace gfx
94 96
95 #endif // UI_GL_GL_IMPLEMENTATION_H_ 97 #endif // UI_GL_GL_IMPLEMENTATION_H_
OLDNEW
« no previous file with comments | « ui/gl/gl_glx_api_implementation.cc ('k') | ui/gl/gl_implementation.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698