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

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

Issue 98643013: Take GL version and extensions correctly into account when binding functions (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Clarify code in generate_bindings.py according to feedback Created 6 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 unified diff | Download patch
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_BINDINGS_H_ 5 #ifndef UI_GL_GL_BINDINGS_H_
6 #define UI_GL_GL_BINDINGS_H_ 6 #define UI_GL_GL_BINDINGS_H_
7 7
8 // Includes the platform independent and platform dependent GL headers. 8 // Includes the platform independent and platform dependent GL headers.
9 // Only include this in cc files. It pulls in system headers, including 9 // Only include this in cc files. It pulls in system headers, including
10 // the X11 headers on linux, which define all kinds of macros that are 10 // the X11 headers on linux, which define all kinds of macros that are
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 #include "gl_bindings_autogen_glx.h" 218 #include "gl_bindings_autogen_glx.h"
219 #elif defined(USE_OZONE) 219 #elif defined(USE_OZONE)
220 #include "gl_bindings_autogen_egl.h" 220 #include "gl_bindings_autogen_egl.h"
221 #elif defined(OS_ANDROID) 221 #elif defined(OS_ANDROID)
222 #include "gl_bindings_autogen_egl.h" 222 #include "gl_bindings_autogen_egl.h"
223 #endif 223 #endif
224 224
225 namespace gfx { 225 namespace gfx {
226 226
227 struct GL_EXPORT DriverGL { 227 struct GL_EXPORT DriverGL {
228 void Initialize(); 228 void InitializeStaticBindings();
229 void InitializeExtensions(GLContext* context); 229 void InitializeCustomDynamicBindings(GLContext* context);
230 void InitializeDebugBindings(); 230 void InitializeDebugBindings();
231 void InitializeNullDrawBindings(); 231 void InitializeNullDrawBindings();
232 void ClearBindings(); 232 void ClearBindings();
233 void UpdateDebugExtensionBindings();
234 233
235 ProcsGL fn; 234 ProcsGL fn;
236 ProcsGL orig_fn; 235 ProcsGL orig_fn;
237 ProcsGL debug_fn; 236 ProcsGL debug_fn;
238 ExtensionsGL ext; 237 ExtensionsGL ext;
239 238
240 private: 239 private:
241 void InitializeBindings(); 240 void InitializeDynamicBindings(GLContext* context);
242 void InitializeExtensionBindings(GLContext* context);
243 }; 241 };
244 242
245 struct GL_EXPORT DriverOSMESA { 243 struct GL_EXPORT DriverOSMESA {
246 void InitializeBindings(); 244 void InitializeStaticBindings();
247 void InitializeExtensionBindings(GLContext* context); 245 void InitializeDynamicBindings(GLContext* context);
248 void InitializeDebugBindings(); 246 void InitializeDebugBindings();
249 void ClearBindings(); 247 void ClearBindings();
250 void UpdateDebugExtensionBindings();
251 248
252 ProcsOSMESA fn; 249 ProcsOSMESA fn;
253 ProcsOSMESA debug_fn; 250 ProcsOSMESA debug_fn;
254 ExtensionsOSMESA ext; 251 ExtensionsOSMESA ext;
255 }; 252 };
256 253
257 #if defined(OS_WIN) 254 #if defined(OS_WIN)
258 struct GL_EXPORT DriverWGL { 255 struct GL_EXPORT DriverWGL {
259 void InitializeBindings(); 256 void InitializeStaticBindings();
260 void InitializeExtensionBindings(GLContext* context); 257 void InitializeDynamicBindings(GLContext* context);
261 void InitializeDebugBindings(); 258 void InitializeDebugBindings();
262 void ClearBindings(); 259 void ClearBindings();
263 void UpdateDebugExtensionBindings();
264 260
265 ProcsWGL fn; 261 ProcsWGL fn;
266 ProcsWGL debug_fn; 262 ProcsWGL debug_fn;
267 ExtensionsWGL ext; 263 ExtensionsWGL ext;
268 }; 264 };
269 #endif 265 #endif
270 266
271 #if defined(OS_WIN) || defined(USE_X11) || defined(OS_ANDROID) || defined(USE_OZ ONE) 267 #if defined(OS_WIN) || defined(USE_X11) || defined(OS_ANDROID) || defined(USE_OZ ONE)
272 struct GL_EXPORT DriverEGL { 268 struct GL_EXPORT DriverEGL {
273 void InitializeBindings(); 269 void InitializeStaticBindings();
274 void InitializeExtensionBindings(GLContext* context); 270 void InitializeDynamicBindings(GLContext* context);
275 void InitializeDebugBindings(); 271 void InitializeDebugBindings();
276 void ClearBindings(); 272 void ClearBindings();
277 void UpdateDebugExtensionBindings();
278 273
279 ProcsEGL fn; 274 ProcsEGL fn;
280 ProcsEGL debug_fn; 275 ProcsEGL debug_fn;
281 ExtensionsEGL ext; 276 ExtensionsEGL ext;
282 }; 277 };
283 #endif 278 #endif
284 279
285 #if defined(USE_X11) 280 #if defined(USE_X11)
286 struct GL_EXPORT DriverGLX { 281 struct GL_EXPORT DriverGLX {
287 void InitializeBindings(); 282 void InitializeStaticBindings();
288 void InitializeExtensionBindings(GLContext* context); 283 void InitializeDynamicBindings(GLContext* context);
289 void InitializeDebugBindings(); 284 void InitializeDebugBindings();
290 void ClearBindings(); 285 void ClearBindings();
291 void UpdateDebugExtensionBindings();
292 286
293 ProcsGLX fn; 287 ProcsGLX fn;
294 ProcsGLX debug_fn; 288 ProcsGLX debug_fn;
295 ExtensionsGLX ext; 289 ExtensionsGLX ext;
296 }; 290 };
297 #endif 291 #endif
298 292
299 // This #define is here to support autogenerated code. 293 // This #define is here to support autogenerated code.
300 #define g_current_gl_context g_current_gl_context_tls->Get() 294 #define g_current_gl_context g_current_gl_context_tls->Get()
301 GL_EXPORT extern base::ThreadLocalPointer<GLApi>* g_current_gl_context_tls; 295 GL_EXPORT extern base::ThreadLocalPointer<GLApi>* g_current_gl_context_tls;
(...skipping 27 matching lines...) Expand all
329 GL_EXPORT extern DriverEGL g_driver_egl; 323 GL_EXPORT extern DriverEGL g_driver_egl;
330 324
331 #endif 325 #endif
332 326
333 // Find an entry point to the mock GL implementation. 327 // Find an entry point to the mock GL implementation.
334 void* GL_BINDING_CALL GetMockGLProcAddress(const char* name); 328 void* GL_BINDING_CALL GetMockGLProcAddress(const char* name);
335 329
336 } // namespace gfx 330 } // namespace gfx
337 331
338 #endif // UI_GL_GL_BINDINGS_H_ 332 #endif // UI_GL_GL_BINDINGS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698