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

Side by Side Diff: ui/gl/gl_bindings_autogen_gl.cc

Issue 871763002: Make GL bindings conditional (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 // This file is auto-generated from 5 // This file is auto-generated from
6 // ui/gl/generate_bindings.py 6 // ui/gl/generate_bindings.py
7 // It's formatted by clang-format using chromium coding style: 7 // It's formatted by clang-format using chromium coding style:
8 // clang-format -i -style=chromium filename 8 // clang-format -i -style=chromium filename
9 // DO NOT EDIT! 9 // DO NOT EDIT!
10 10
11 #include <string> 11 #include <string>
12 12
13 #include "base/debug/trace_event.h" 13 #include "base/debug/trace_event.h"
14 #include "ui/gl/gl_bindings.h" 14 #include "ui/gl/gl_bindings.h"
15 #include "ui/gl/gl_context.h" 15 #include "ui/gl/gl_context.h"
16 #include "ui/gl/gl_enums.h" 16 #include "ui/gl/gl_enums.h"
17 #include "ui/gl/gl_gl_api_implementation.h" 17 #include "ui/gl/gl_gl_api_implementation.h"
18 #include "ui/gl/gl_implementation.h" 18 #include "ui/gl/gl_implementation.h"
19 #include "ui/gl/gl_version_info.h" 19 #include "ui/gl/gl_version_info.h"
20 20
21 namespace gfx { 21 namespace gfx {
22 22
23 static bool g_debugBindingsInitialized; 23 static bool g_debugBindingsInitialized;
24 DriverGL g_driver_gl; 24 DriverGL g_driver_gl;
25 25
26 void glBeginQueryNotBound(GLenum target, GLuint id) {
27 NOTREACHED();
28 }
26 void glBeginQueryARBNotBound(GLenum target, GLuint id) { 29 void glBeginQueryARBNotBound(GLenum target, GLuint id) {
27 NOTREACHED(); 30 NOTREACHED();
28 } 31 }
29 void glBindFramebufferEXTNotBound(GLenum target, GLuint framebuffer) { 32 void glBeginTransformFeedbackNotBound(GLenum primitiveMode) {
30 NOTREACHED(); 33 NOTREACHED();
31 } 34 }
32 void glBindRenderbufferEXTNotBound(GLenum target, GLuint renderbuffer) { 35 void glBindBufferBaseNotBound(GLenum target, GLuint index, GLuint buffer) {
36 NOTREACHED();
37 }
38 void glBindBufferRangeNotBound(GLenum target,
39 GLuint index,
40 GLuint buffer,
41 GLintptr offset,
42 GLsizeiptr size) {
43 NOTREACHED();
44 }
45 void glBindFragDataLocationNotBound(GLuint program,
46 GLuint colorNumber,
47 const char* name) {
48 NOTREACHED();
49 }
50 void glBindFragDataLocationIndexedNotBound(GLuint program,
51 GLuint colorNumber,
52 GLuint index,
53 const char* name) {
54 NOTREACHED();
55 }
56 void glBindSamplerNotBound(GLuint unit, GLuint sampler) {
57 NOTREACHED();
58 }
59 void glBindTransformFeedbackNotBound(GLenum target, GLuint id) {
33 NOTREACHED(); 60 NOTREACHED();
34 } 61 }
35 void glBindVertexArrayOESNotBound(GLuint array) { 62 void glBindVertexArrayOESNotBound(GLuint array) {
36 NOTREACHED(); 63 NOTREACHED();
37 } 64 }
38 void glBlendBarrierKHRNotBound(void) { 65 void glBlendBarrierKHRNotBound(void) {
39 NOTREACHED(); 66 NOTREACHED();
40 } 67 }
68 void glBlitFramebufferNotBound(GLint srcX0,
69 GLint srcY0,
70 GLint srcX1,
71 GLint srcY1,
72 GLint dstX0,
73 GLint dstY0,
74 GLint dstX1,
75 GLint dstY1,
76 GLbitfield mask,
77 GLenum filter) {
78 NOTREACHED();
79 }
41 void glBlitFramebufferANGLENotBound(GLint srcX0, 80 void glBlitFramebufferANGLENotBound(GLint srcX0,
42 GLint srcY0, 81 GLint srcY0,
43 GLint srcX1, 82 GLint srcX1,
44 GLint srcY1, 83 GLint srcY1,
45 GLint dstX0, 84 GLint dstX0,
46 GLint dstY0, 85 GLint dstY0,
47 GLint dstX1, 86 GLint dstX1,
48 GLint dstY1, 87 GLint dstY1,
49 GLbitfield mask, 88 GLbitfield mask,
50 GLenum filter) { 89 GLenum filter) {
51 NOTREACHED(); 90 NOTREACHED();
52 } 91 }
53 void glBlitFramebufferEXTNotBound(GLint srcX0, 92 void glBlitFramebufferEXTNotBound(GLint srcX0,
54 GLint srcY0, 93 GLint srcY0,
55 GLint srcX1, 94 GLint srcX1,
56 GLint srcY1, 95 GLint srcY1,
57 GLint dstX0, 96 GLint dstX0,
58 GLint dstY0, 97 GLint dstY0,
59 GLint dstX1, 98 GLint dstX1,
60 GLint dstY1, 99 GLint dstY1,
61 GLbitfield mask, 100 GLbitfield mask,
62 GLenum filter) { 101 GLenum filter) {
63 NOTREACHED(); 102 NOTREACHED();
64 } 103 }
65 GLenum glCheckFramebufferStatusEXTNotBound(GLenum target) { 104 void glClearBufferfiNotBound(GLenum buffer,
105 GLint drawbuffer,
106 const GLfloat depth,
107 GLint stencil) {
108 NOTREACHED();
109 }
110 void glClearBufferfvNotBound(GLenum buffer,
111 GLint drawbuffer,
112 const GLfloat* value) {
113 NOTREACHED();
114 }
115 void glClearBufferivNotBound(GLenum buffer,
116 GLint drawbuffer,
117 const GLint* value) {
118 NOTREACHED();
119 }
120 void glClearBufferuivNotBound(GLenum buffer,
121 GLint drawbuffer,
122 const GLuint* value) {
123 NOTREACHED();
124 }
125 void glClearDepthfNotBound(GLclampf depth) {
126 NOTREACHED();
127 }
128 GLenum glClientWaitSyncNotBound(GLsync sync,
129 GLbitfield flags,
130 GLuint64 timeout) {
66 NOTREACHED(); 131 NOTREACHED();
67 return 0; 132 return 0;
68 } 133 }
69 void glDeleteBuffersARBNotBound(GLsizei n, const GLuint* buffers) { 134 void glCompressedTexImage3DNotBound(GLenum target,
135 GLint level,
136 GLenum internalformat,
137 GLsizei width,
138 GLsizei height,
139 GLsizei depth,
140 GLint border,
141 GLsizei imageSize,
142 const void* data) {
70 NOTREACHED(); 143 NOTREACHED();
71 } 144 }
72 void glDeleteFramebuffersEXTNotBound(GLsizei n, const GLuint* framebuffers) { 145 void glCopyBufferSubDataNotBound(GLenum readTarget,
146 GLenum writeTarget,
147 GLintptr readOffset,
148 GLintptr writeOffset,
149 GLsizeiptr size) {
150 NOTREACHED();
151 }
152 void glCopyTexSubImage3DNotBound(GLenum target,
153 GLint level,
154 GLint xoffset,
155 GLint yoffset,
156 GLint zoffset,
157 GLint x,
158 GLint y,
159 GLsizei width,
160 GLsizei height) {
161 NOTREACHED();
162 }
163 void glDeleteFencesAPPLENotBound(GLsizei n, const GLuint* fences) {
164 NOTREACHED();
165 }
166 void glDeleteFencesNVNotBound(GLsizei n, const GLuint* fences) {
167 NOTREACHED();
168 }
169 void glDeleteQueriesNotBound(GLsizei n, const GLuint* ids) {
73 NOTREACHED(); 170 NOTREACHED();
74 } 171 }
75 void glDeleteQueriesARBNotBound(GLsizei n, const GLuint* ids) { 172 void glDeleteQueriesARBNotBound(GLsizei n, const GLuint* ids) {
76 NOTREACHED(); 173 NOTREACHED();
77 } 174 }
78 void glDeleteRenderbuffersEXTNotBound(GLsizei n, const GLuint* renderbuffers) { 175 void glDeleteSamplersNotBound(GLsizei n, const GLuint* samplers) {
176 NOTREACHED();
177 }
178 void glDeleteSyncNotBound(GLsync sync) {
179 NOTREACHED();
180 }
181 void glDeleteTransformFeedbacksNotBound(GLsizei n, const GLuint* ids) {
79 NOTREACHED(); 182 NOTREACHED();
80 } 183 }
81 void glDeleteVertexArraysOESNotBound(GLsizei n, const GLuint* arrays) { 184 void glDeleteVertexArraysOESNotBound(GLsizei n, const GLuint* arrays) {
82 NOTREACHED(); 185 NOTREACHED();
83 } 186 }
187 void glDepthRangefNotBound(GLclampf zNear, GLclampf zFar) {
188 NOTREACHED();
189 }
190 void glDiscardFramebufferEXTNotBound(GLenum target,
191 GLsizei numAttachments,
192 const GLenum* attachments) {
193 NOTREACHED();
194 }
84 void glDrawArraysInstancedANGLENotBound(GLenum mode, 195 void glDrawArraysInstancedANGLENotBound(GLenum mode,
85 GLint first, 196 GLint first,
86 GLsizei count, 197 GLsizei count,
87 GLsizei primcount) { 198 GLsizei primcount) {
88 NOTREACHED(); 199 NOTREACHED();
89 } 200 }
201 void glDrawBufferNotBound(GLenum mode) {
202 NOTREACHED();
203 }
90 void glDrawBuffersARBNotBound(GLsizei n, const GLenum* bufs) { 204 void glDrawBuffersARBNotBound(GLsizei n, const GLenum* bufs) {
91 NOTREACHED(); 205 NOTREACHED();
92 } 206 }
93 void glDrawElementsInstancedANGLENotBound(GLenum mode, 207 void glDrawElementsInstancedANGLENotBound(GLenum mode,
94 GLsizei count, 208 GLsizei count,
95 GLenum type, 209 GLenum type,
96 const void* indices, 210 const void* indices,
97 GLsizei primcount) { 211 GLsizei primcount) {
98 NOTREACHED(); 212 NOTREACHED();
99 } 213 }
214 void glDrawRangeElementsNotBound(GLenum mode,
215 GLuint start,
216 GLuint end,
217 GLsizei count,
218 GLenum type,
219 const void* indices) {
220 NOTREACHED();
221 }
222 void glEGLImageTargetRenderbufferStorageOESNotBound(GLenum target,
223 GLeglImageOES image) {
224 NOTREACHED();
225 }
226 void glEGLImageTargetTexture2DOESNotBound(GLenum target, GLeglImageOES image) {
227 NOTREACHED();
228 }
229 void glEndQueryNotBound(GLenum target) {
230 NOTREACHED();
231 }
100 void glEndQueryARBNotBound(GLenum target) { 232 void glEndQueryARBNotBound(GLenum target) {
101 NOTREACHED(); 233 NOTREACHED();
102 } 234 }
103 void glFramebufferRenderbufferEXTNotBound(GLenum target, 235 void glEndTransformFeedbackNotBound(void) {
104 GLenum attachment,
105 GLenum renderbuffertarget,
106 GLuint renderbuffer) {
107 NOTREACHED(); 236 NOTREACHED();
108 } 237 }
109 void glFramebufferTexture2DEXTNotBound(GLenum target, 238 GLsync glFenceSyncNotBound(GLenum condition, GLbitfield flags) {
110 GLenum attachment, 239 NOTREACHED();
111 GLenum textarget, 240 return 0;
112 GLuint texture, 241 }
113 GLint level) { 242 void glFinishFenceAPPLENotBound(GLuint fence) {
114 NOTREACHED(); 243 NOTREACHED();
115 } 244 }
116 void glGenBuffersARBNotBound(GLsizei n, GLuint* buffers) { 245 void glFinishFenceNVNotBound(GLuint fence) {
117 NOTREACHED(); 246 NOTREACHED();
118 } 247 }
119 void glGenerateMipmapEXTNotBound(GLenum target) { 248 void glFlushMappedBufferRangeNotBound(GLenum target,
249 GLintptr offset,
250 GLsizeiptr length) {
120 NOTREACHED(); 251 NOTREACHED();
121 } 252 }
122 void glGenFramebuffersEXTNotBound(GLsizei n, GLuint* framebuffers) { 253 void glFramebufferTexture2DMultisampleEXTNotBound(GLenum target,
254 GLenum attachment,
255 GLenum textarget,
256 GLuint texture,
257 GLint level,
258 GLsizei samples) {
259 NOTREACHED();
260 }
261 void glFramebufferTexture2DMultisampleIMGNotBound(GLenum target,
262 GLenum attachment,
263 GLenum textarget,
264 GLuint texture,
265 GLint level,
266 GLsizei samples) {
267 NOTREACHED();
268 }
269 void glFramebufferTextureLayerNotBound(GLenum target,
270 GLenum attachment,
271 GLuint texture,
272 GLint level,
273 GLint layer) {
274 NOTREACHED();
275 }
276 void glGenFencesAPPLENotBound(GLsizei n, GLuint* fences) {
277 NOTREACHED();
278 }
279 void glGenFencesNVNotBound(GLsizei n, GLuint* fences) {
280 NOTREACHED();
281 }
282 void glGenQueriesNotBound(GLsizei n, GLuint* ids) {
123 NOTREACHED(); 283 NOTREACHED();
124 } 284 }
125 void glGenQueriesARBNotBound(GLsizei n, GLuint* ids) { 285 void glGenQueriesARBNotBound(GLsizei n, GLuint* ids) {
126 NOTREACHED(); 286 NOTREACHED();
127 } 287 }
128 void glGenRenderbuffersEXTNotBound(GLsizei n, GLuint* renderbuffers) { 288 void glGenSamplersNotBound(GLsizei n, GLuint* samplers) {
289 NOTREACHED();
290 }
291 void glGenTransformFeedbacksNotBound(GLsizei n, GLuint* ids) {
129 NOTREACHED(); 292 NOTREACHED();
130 } 293 }
131 void glGenVertexArraysOESNotBound(GLsizei n, GLuint* arrays) { 294 void glGenVertexArraysOESNotBound(GLsizei n, GLuint* arrays) {
132 NOTREACHED(); 295 NOTREACHED();
133 } 296 }
134 void glGetFramebufferAttachmentParameterivEXTNotBound(GLenum target, 297 void glGetActiveUniformBlockivNotBound(GLuint program,
135 GLenum attachment, 298 GLuint uniformBlockIndex,
136 GLenum pname, 299 GLenum pname,
137 GLint* params) { 300 GLint* params) {
138 NOTREACHED(); 301 NOTREACHED();
139 } 302 }
303 void glGetActiveUniformBlockNameNotBound(GLuint program,
304 GLuint uniformBlockIndex,
305 GLsizei bufSize,
306 GLsizei* length,
307 char* uniformBlockName) {
308 NOTREACHED();
309 }
310 void glGetActiveUniformsivNotBound(GLuint program,
311 GLsizei uniformCount,
312 const GLuint* uniformIndices,
313 GLenum pname,
314 GLint* params) {
315 NOTREACHED();
316 }
317 void glGetFenceivNVNotBound(GLuint fence, GLenum pname, GLint* params) {
318 NOTREACHED();
319 }
320 GLint glGetFragDataLocationNotBound(GLuint program, const char* name) {
321 NOTREACHED();
322 return 0;
323 }
140 GLenum glGetGraphicsResetStatusARBNotBound(void) { 324 GLenum glGetGraphicsResetStatusARBNotBound(void) {
141 NOTREACHED(); 325 NOTREACHED();
142 return 0; 326 return 0;
143 } 327 }
328 void glGetInteger64i_vNotBound(GLenum target, GLuint index, GLint64* data) {
329 NOTREACHED();
330 }
331 void glGetInteger64vNotBound(GLenum pname, GLint64* params) {
332 NOTREACHED();
333 }
334 void glGetIntegeri_vNotBound(GLenum target, GLuint index, GLint* data) {
335 NOTREACHED();
336 }
337 void glGetInternalformativNotBound(GLenum target,
338 GLenum internalformat,
339 GLenum pname,
340 GLsizei bufSize,
341 GLint* params) {
342 NOTREACHED();
343 }
144 void glGetProgramBinaryNotBound(GLuint program, 344 void glGetProgramBinaryNotBound(GLuint program,
145 GLsizei bufSize, 345 GLsizei bufSize,
146 GLsizei* length, 346 GLsizei* length,
147 GLenum* binaryFormat, 347 GLenum* binaryFormat,
148 GLvoid* binary) { 348 GLvoid* binary) {
149 NOTREACHED(); 349 NOTREACHED();
150 } 350 }
351 void glGetQueryivNotBound(GLenum target, GLenum pname, GLint* params) {
352 NOTREACHED();
353 }
151 void glGetQueryivARBNotBound(GLenum target, GLenum pname, GLint* params) { 354 void glGetQueryivARBNotBound(GLenum target, GLenum pname, GLint* params) {
152 NOTREACHED(); 355 NOTREACHED();
153 } 356 }
357 void glGetQueryObjecti64vNotBound(GLuint id, GLenum pname, GLint64* params) {
358 NOTREACHED();
359 }
360 void glGetQueryObjectivNotBound(GLuint id, GLenum pname, GLint* params) {
361 NOTREACHED();
362 }
154 void glGetQueryObjectivARBNotBound(GLuint id, GLenum pname, GLint* params) { 363 void glGetQueryObjectivARBNotBound(GLuint id, GLenum pname, GLint* params) {
155 NOTREACHED(); 364 NOTREACHED();
156 } 365 }
157 void glGetQueryObjectui64vNotBound(GLuint id, GLenum pname, GLuint64* params) { 366 void glGetQueryObjectui64vNotBound(GLuint id, GLenum pname, GLuint64* params) {
158 NOTREACHED(); 367 NOTREACHED();
159 } 368 }
369 void glGetQueryObjectuivNotBound(GLuint id, GLenum pname, GLuint* params) {
370 NOTREACHED();
371 }
160 void glGetQueryObjectuivARBNotBound(GLuint id, GLenum pname, GLuint* params) { 372 void glGetQueryObjectuivARBNotBound(GLuint id, GLenum pname, GLuint* params) {
161 NOTREACHED(); 373 NOTREACHED();
162 } 374 }
163 void glGetRenderbufferParameterivEXTNotBound(GLenum target, 375 void glGetSamplerParameterfvNotBound(GLuint sampler,
164 GLenum pname, 376 GLenum pname,
165 GLint* params) { 377 GLfloat* params) {
166 NOTREACHED(); 378 NOTREACHED();
167 } 379 }
168 GLboolean glIsFramebufferEXTNotBound(GLuint framebuffer) { 380 void glGetSamplerParameterivNotBound(GLuint sampler,
381 GLenum pname,
382 GLint* params) {
383 NOTREACHED();
384 }
385 void glGetShaderPrecisionFormatNotBound(GLenum shadertype,
386 GLenum precisiontype,
387 GLint* range,
388 GLint* precision) {
389 NOTREACHED();
390 }
391 void glGetSyncivNotBound(GLsync sync,
392 GLenum pname,
393 GLsizei bufSize,
394 GLsizei* length,
395 GLint* values) {
396 NOTREACHED();
397 }
398 void glGetTexLevelParameterfvNotBound(GLenum target,
399 GLint level,
400 GLenum pname,
401 GLfloat* params) {
402 NOTREACHED();
403 }
404 void glGetTexLevelParameterivNotBound(GLenum target,
405 GLint level,
406 GLenum pname,
407 GLint* params) {
408 NOTREACHED();
409 }
410 void glGetTransformFeedbackVaryingNotBound(GLuint program,
411 GLuint index,
412 GLsizei bufSize,
413 GLsizei* length,
414 GLenum* type,
415 char* name) {
416 NOTREACHED();
417 }
418 void glGetTranslatedShaderSourceANGLENotBound(GLuint shader,
419 GLsizei bufsize,
420 GLsizei* length,
421 char* source) {
422 NOTREACHED();
423 }
424 GLuint glGetUniformBlockIndexNotBound(GLuint program,
425 const char* uniformBlockName) {
169 NOTREACHED(); 426 NOTREACHED();
170 return 0; 427 return 0;
171 } 428 }
429 void glGetUniformIndicesNotBound(GLuint program,
430 GLsizei uniformCount,
431 const char* const* uniformNames,
432 GLuint* uniformIndices) {
433 NOTREACHED();
434 }
435 void glInsertEventMarkerEXTNotBound(GLsizei length, const char* marker) {
436 NOTREACHED();
437 }
438 void glInvalidateFramebufferNotBound(GLenum target,
439 GLsizei numAttachments,
440 const GLenum* attachments) {
441 NOTREACHED();
442 }
443 void glInvalidateSubFramebufferNotBound(GLenum target,
444 GLsizei numAttachments,
445 const GLenum* attachments,
446 GLint x,
447 GLint y,
448 GLint width,
449 GLint height) {
450 NOTREACHED();
451 }
452 GLboolean glIsFenceAPPLENotBound(GLuint fence) {
453 NOTREACHED();
454 return 0;
455 }
456 GLboolean glIsFenceNVNotBound(GLuint fence) {
457 NOTREACHED();
458 return 0;
459 }
460 GLboolean glIsQueryNotBound(GLuint query) {
461 NOTREACHED();
462 return 0;
463 }
172 GLboolean glIsQueryARBNotBound(GLuint query) { 464 GLboolean glIsQueryARBNotBound(GLuint query) {
173 NOTREACHED(); 465 NOTREACHED();
174 return 0; 466 return 0;
175 } 467 }
176 GLboolean glIsRenderbufferEXTNotBound(GLuint renderbuffer) { 468 GLboolean glIsSamplerNotBound(GLuint sampler) {
177 NOTREACHED(); 469 NOTREACHED();
178 return 0; 470 return 0;
179 } 471 }
472 GLboolean glIsSyncNotBound(GLsync sync) {
473 NOTREACHED();
474 return 0;
475 }
476 GLboolean glIsTransformFeedbackNotBound(GLuint id) {
477 NOTREACHED();
478 return 0;
479 }
180 GLboolean glIsVertexArrayOESNotBound(GLuint array) { 480 GLboolean glIsVertexArrayOESNotBound(GLuint array) {
181 NOTREACHED(); 481 NOTREACHED();
182 return 0; 482 return 0;
183 } 483 }
184 void* glMapBufferNotBound(GLenum target, GLenum access) { 484 void* glMapBufferNotBound(GLenum target, GLenum access) {
185 NOTREACHED(); 485 NOTREACHED();
186 return 0; 486 return 0;
187 } 487 }
188 void* glMapBufferRangeNotBound(GLenum target, 488 void* glMapBufferRangeNotBound(GLenum target,
189 GLintptr offset, 489 GLintptr offset,
190 GLsizeiptr length, 490 GLsizeiptr length,
191 GLbitfield access) { 491 GLbitfield access) {
192 NOTREACHED(); 492 NOTREACHED();
193 return 0; 493 return 0;
194 } 494 }
495 void glMatrixLoadfEXTNotBound(GLenum matrixMode, const GLfloat* m) {
496 NOTREACHED();
497 }
498 void glMatrixLoadIdentityEXTNotBound(GLenum matrixMode) {
499 NOTREACHED();
500 }
501 void glPauseTransformFeedbackNotBound(void) {
502 NOTREACHED();
503 }
504 void glPointParameteriNotBound(GLenum pname, GLint param) {
505 NOTREACHED();
506 }
507 void glPopGroupMarkerEXTNotBound(void) {
508 NOTREACHED();
509 }
195 void glProgramBinaryNotBound(GLuint program, 510 void glProgramBinaryNotBound(GLuint program,
196 GLenum binaryFormat, 511 GLenum binaryFormat,
197 const GLvoid* binary, 512 const GLvoid* binary,
198 GLsizei length) { 513 GLsizei length) {
199 NOTREACHED(); 514 NOTREACHED();
200 } 515 }
516 void glProgramParameteriNotBound(GLuint program, GLenum pname, GLint value) {
517 NOTREACHED();
518 }
519 void glPushGroupMarkerEXTNotBound(GLsizei length, const char* marker) {
520 NOTREACHED();
521 }
201 void glQueryCounterNotBound(GLuint id, GLenum target) { 522 void glQueryCounterNotBound(GLuint id, GLenum target) {
202 NOTREACHED(); 523 NOTREACHED();
203 } 524 }
204 void glRenderbufferStorageEXTNotBound(GLenum target, 525 void glReadBufferNotBound(GLenum src) {
205 GLenum internalformat, 526 NOTREACHED();
206 GLsizei width, 527 }
207 GLsizei height) { 528 void glReleaseShaderCompilerNotBound(void) {
529 NOTREACHED();
530 }
531 void glRenderbufferStorageMultisampleNotBound(GLenum target,
532 GLsizei samples,
533 GLenum internalformat,
534 GLsizei width,
535 GLsizei height) {
208 NOTREACHED(); 536 NOTREACHED();
209 } 537 }
210 void glRenderbufferStorageMultisampleANGLENotBound(GLenum target, 538 void glRenderbufferStorageMultisampleANGLENotBound(GLenum target,
211 GLsizei samples, 539 GLsizei samples,
212 GLenum internalformat, 540 GLenum internalformat,
213 GLsizei width, 541 GLsizei width,
214 GLsizei height) { 542 GLsizei height) {
215 NOTREACHED(); 543 NOTREACHED();
216 } 544 }
217 void glRenderbufferStorageMultisampleEXTNotBound(GLenum target, 545 void glRenderbufferStorageMultisampleEXTNotBound(GLenum target,
218 GLsizei samples, 546 GLsizei samples,
219 GLenum internalformat, 547 GLenum internalformat,
220 GLsizei width, 548 GLsizei width,
221 GLsizei height) { 549 GLsizei height) {
222 NOTREACHED(); 550 NOTREACHED();
223 } 551 }
552 void glRenderbufferStorageMultisampleIMGNotBound(GLenum target,
553 GLsizei samples,
554 GLenum internalformat,
555 GLsizei width,
556 GLsizei height) {
557 NOTREACHED();
558 }
559 void glResumeTransformFeedbackNotBound(void) {
560 NOTREACHED();
561 }
562 void glSamplerParameterfNotBound(GLuint sampler, GLenum pname, GLfloat param) {
563 NOTREACHED();
564 }
565 void glSamplerParameterfvNotBound(GLuint sampler,
566 GLenum pname,
567 const GLfloat* params) {
568 NOTREACHED();
569 }
570 void glSamplerParameteriNotBound(GLuint sampler, GLenum pname, GLint param) {
571 NOTREACHED();
572 }
573 void glSamplerParameterivNotBound(GLuint sampler,
574 GLenum pname,
575 const GLint* params) {
576 NOTREACHED();
577 }
578 void glSetFenceAPPLENotBound(GLuint fence) {
579 NOTREACHED();
580 }
581 void glSetFenceNVNotBound(GLuint fence, GLenum condition) {
582 NOTREACHED();
583 }
584 void glShaderBinaryNotBound(GLsizei n,
585 const GLuint* shaders,
586 GLenum binaryformat,
587 const void* binary,
588 GLsizei length) {
589 NOTREACHED();
590 }
591 GLboolean glTestFenceAPPLENotBound(GLuint fence) {
592 NOTREACHED();
593 return 0;
594 }
595 GLboolean glTestFenceNVNotBound(GLuint fence) {
596 NOTREACHED();
597 return 0;
598 }
599 void glTexImage3DNotBound(GLenum target,
600 GLint level,
601 GLint internalformat,
602 GLsizei width,
603 GLsizei height,
604 GLsizei depth,
605 GLint border,
606 GLenum format,
607 GLenum type,
608 const void* pixels) {
609 NOTREACHED();
610 }
224 void glTexStorage2DEXTNotBound(GLenum target, 611 void glTexStorage2DEXTNotBound(GLenum target,
225 GLsizei levels, 612 GLsizei levels,
226 GLenum internalformat, 613 GLenum internalformat,
227 GLsizei width, 614 GLsizei width,
228 GLsizei height) { 615 GLsizei height) {
229 NOTREACHED(); 616 NOTREACHED();
230 } 617 }
618 void glTexStorage3DNotBound(GLenum target,
619 GLsizei levels,
620 GLenum internalformat,
621 GLsizei width,
622 GLsizei height,
623 GLsizei depth) {
624 NOTREACHED();
625 }
626 void glTransformFeedbackVaryingsNotBound(GLuint program,
627 GLsizei count,
628 const char* const* varyings,
629 GLenum bufferMode) {
630 NOTREACHED();
631 }
632 void glUniform1uiNotBound(GLint location, GLuint v0) {
633 NOTREACHED();
634 }
635 void glUniform1uivNotBound(GLint location, GLsizei count, const GLuint* v) {
636 NOTREACHED();
637 }
638 void glUniform2uiNotBound(GLint location, GLuint v0, GLuint v1) {
639 NOTREACHED();
640 }
641 void glUniform2uivNotBound(GLint location, GLsizei count, const GLuint* v) {
642 NOTREACHED();
643 }
644 void glUniform3uiNotBound(GLint location, GLuint v0, GLuint v1, GLuint v2) {
645 NOTREACHED();
646 }
647 void glUniform3uivNotBound(GLint location, GLsizei count, const GLuint* v) {
648 NOTREACHED();
649 }
650 void glUniform4uiNotBound(GLint location,
651 GLuint v0,
652 GLuint v1,
653 GLuint v2,
654 GLuint v3) {
655 NOTREACHED();
656 }
657 void glUniform4uivNotBound(GLint location, GLsizei count, const GLuint* v) {
658 NOTREACHED();
659 }
660 void glUniformBlockBindingNotBound(GLuint program,
661 GLuint uniformBlockIndex,
662 GLuint uniformBlockBinding) {
663 NOTREACHED();
664 }
665 void glUniformMatrix2x3fvNotBound(GLint location,
666 GLsizei count,
667 GLboolean transpose,
668 const GLfloat* value) {
669 NOTREACHED();
670 }
671 void glUniformMatrix2x4fvNotBound(GLint location,
672 GLsizei count,
673 GLboolean transpose,
674 const GLfloat* value) {
675 NOTREACHED();
676 }
677 void glUniformMatrix3x2fvNotBound(GLint location,
678 GLsizei count,
679 GLboolean transpose,
680 const GLfloat* value) {
681 NOTREACHED();
682 }
683 void glUniformMatrix3x4fvNotBound(GLint location,
684 GLsizei count,
685 GLboolean transpose,
686 const GLfloat* value) {
687 NOTREACHED();
688 }
689 void glUniformMatrix4x2fvNotBound(GLint location,
690 GLsizei count,
691 GLboolean transpose,
692 const GLfloat* value) {
693 NOTREACHED();
694 }
695 void glUniformMatrix4x3fvNotBound(GLint location,
696 GLsizei count,
697 GLboolean transpose,
698 const GLfloat* value) {
699 NOTREACHED();
700 }
231 GLboolean glUnmapBufferNotBound(GLenum target) { 701 GLboolean glUnmapBufferNotBound(GLenum target) {
232 NOTREACHED(); 702 NOTREACHED();
233 return 0; 703 return 0;
234 } 704 }
235 void glVertexAttribDivisorANGLENotBound(GLuint index, GLuint divisor) { 705 void glVertexAttribDivisorANGLENotBound(GLuint index, GLuint divisor) {
236 NOTREACHED(); 706 NOTREACHED();
237 } 707 }
708 void glVertexAttribI4iNotBound(GLuint indx,
709 GLint x,
710 GLint y,
711 GLint z,
712 GLint w) {
713 NOTREACHED();
714 }
715 void glVertexAttribI4ivNotBound(GLuint indx, const GLint* values) {
716 NOTREACHED();
717 }
718 void glVertexAttribI4uiNotBound(GLuint indx,
719 GLuint x,
720 GLuint y,
721 GLuint z,
722 GLuint w) {
723 NOTREACHED();
724 }
725 void glVertexAttribI4uivNotBound(GLuint indx, const GLuint* values) {
726 NOTREACHED();
727 }
728 void glVertexAttribIPointerNotBound(GLuint indx,
729 GLint size,
730 GLenum type,
731 GLsizei stride,
732 const void* ptr) {
733 NOTREACHED();
734 }
735 GLenum glWaitSyncNotBound(GLsync sync, GLbitfield flags, GLuint64 timeout) {
736 NOTREACHED();
737 return 0;
738 }
238 739
239 void DriverGL::InitializeStaticBindings() { 740 void DriverGL::InitializeStaticBindings() {
240 fn.glActiveTextureFn = reinterpret_cast<glActiveTextureProc>( 741 fn.glActiveTextureFn = reinterpret_cast<glActiveTextureProc>(
241 GetGLProcAddress("glActiveTexture")); 742 GetGLProcAddress("glActiveTexture"));
242 fn.glAttachShaderFn = 743 fn.glAttachShaderFn =
243 reinterpret_cast<glAttachShaderProc>(GetGLProcAddress("glAttachShader")); 744 reinterpret_cast<glAttachShaderProc>(GetGLProcAddress("glAttachShader"));
244 fn.glBeginQueryFn = 745 fn.glBeginQueryFn = reinterpret_cast<glBeginQueryProc>(glBeginQueryNotBound);
245 reinterpret_cast<glBeginQueryProc>(GetGLProcAddress("glBeginQuery"));
246 fn.glBeginQueryARBFn = 746 fn.glBeginQueryARBFn =
247 reinterpret_cast<glBeginQueryARBProc>(glBeginQueryARBNotBound); 747 reinterpret_cast<glBeginQueryARBProc>(glBeginQueryARBNotBound);
248 fn.glBeginTransformFeedbackFn = 748 fn.glBeginTransformFeedbackFn =
249 reinterpret_cast<glBeginTransformFeedbackProc>( 749 reinterpret_cast<glBeginTransformFeedbackProc>(
250 GetGLProcAddress("glBeginTransformFeedback")); 750 glBeginTransformFeedbackNotBound);
Zhenyao Mo 2015/01/23 01:48:20 Can't these just be NULL? Then you don't have to
no sievers 2015/01/24 01:50:46 Except for in a release build we would handle it m
no sievers 2015/01/24 01:52:38 On second thought: it would be nice to get crash r
251 fn.glBindAttribLocationFn = reinterpret_cast<glBindAttribLocationProc>( 751 fn.glBindAttribLocationFn = reinterpret_cast<glBindAttribLocationProc>(
252 GetGLProcAddress("glBindAttribLocation")); 752 GetGLProcAddress("glBindAttribLocation"));
253 fn.glBindBufferFn = 753 fn.glBindBufferFn =
254 reinterpret_cast<glBindBufferProc>(GetGLProcAddress("glBindBuffer")); 754 reinterpret_cast<glBindBufferProc>(GetGLProcAddress("glBindBuffer"));
255 fn.glBindBufferBaseFn = reinterpret_cast<glBindBufferBaseProc>( 755 fn.glBindBufferBaseFn =
256 GetGLProcAddress("glBindBufferBase")); 756 reinterpret_cast<glBindBufferBaseProc>(glBindBufferBaseNotBound);
257 fn.glBindBufferRangeFn = reinterpret_cast<glBindBufferRangeProc>( 757 fn.glBindBufferRangeFn =
258 GetGLProcAddress("glBindBufferRange")); 758 reinterpret_cast<glBindBufferRangeProc>(glBindBufferRangeNotBound);
259 fn.glBindFragDataLocationFn = reinterpret_cast<glBindFragDataLocationProc>( 759 fn.glBindFragDataLocationFn = reinterpret_cast<glBindFragDataLocationProc>(
260 GetGLProcAddress("glBindFragDataLocation")); 760 glBindFragDataLocationNotBound);
261 fn.glBindFragDataLocationIndexedFn = 761 fn.glBindFragDataLocationIndexedFn =
262 reinterpret_cast<glBindFragDataLocationIndexedProc>( 762 reinterpret_cast<glBindFragDataLocationIndexedProc>(
263 GetGLProcAddress("glBindFragDataLocationIndexed")); 763 glBindFragDataLocationIndexedNotBound);
264 fn.glBindFramebufferEXTFn = 764 fn.glBindFramebufferEXTFn = reinterpret_cast<glBindFramebufferEXTProc>(
265 reinterpret_cast<glBindFramebufferEXTProc>(glBindFramebufferEXTNotBound); 765 GetGLProcAddress("glBindFramebufferEXT"));
266 fn.glBindRenderbufferEXTFn = reinterpret_cast<glBindRenderbufferEXTProc>( 766 fn.glBindRenderbufferEXTFn = reinterpret_cast<glBindRenderbufferEXTProc>(
267 glBindRenderbufferEXTNotBound); 767 GetGLProcAddress("glBindRenderbufferEXT"));
268 fn.glBindSamplerFn = 768 fn.glBindSamplerFn =
269 reinterpret_cast<glBindSamplerProc>(GetGLProcAddress("glBindSampler")); 769 reinterpret_cast<glBindSamplerProc>(glBindSamplerNotBound);
270 fn.glBindTextureFn = 770 fn.glBindTextureFn =
271 reinterpret_cast<glBindTextureProc>(GetGLProcAddress("glBindTexture")); 771 reinterpret_cast<glBindTextureProc>(GetGLProcAddress("glBindTexture"));
272 fn.glBindTransformFeedbackFn = reinterpret_cast<glBindTransformFeedbackProc>( 772 fn.glBindTransformFeedbackFn = reinterpret_cast<glBindTransformFeedbackProc>(
273 GetGLProcAddress("glBindTransformFeedback")); 773 glBindTransformFeedbackNotBound);
274 fn.glBindVertexArrayOESFn = 774 fn.glBindVertexArrayOESFn =
275 reinterpret_cast<glBindVertexArrayOESProc>(glBindVertexArrayOESNotBound); 775 reinterpret_cast<glBindVertexArrayOESProc>(glBindVertexArrayOESNotBound);
276 fn.glBlendBarrierKHRFn = 776 fn.glBlendBarrierKHRFn =
277 reinterpret_cast<glBlendBarrierKHRProc>(glBlendBarrierKHRNotBound); 777 reinterpret_cast<glBlendBarrierKHRProc>(glBlendBarrierKHRNotBound);
278 fn.glBlendColorFn = 778 fn.glBlendColorFn =
279 reinterpret_cast<glBlendColorProc>(GetGLProcAddress("glBlendColor")); 779 reinterpret_cast<glBlendColorProc>(GetGLProcAddress("glBlendColor"));
280 fn.glBlendEquationFn = reinterpret_cast<glBlendEquationProc>( 780 fn.glBlendEquationFn = reinterpret_cast<glBlendEquationProc>(
281 GetGLProcAddress("glBlendEquation")); 781 GetGLProcAddress("glBlendEquation"));
282 fn.glBlendEquationSeparateFn = reinterpret_cast<glBlendEquationSeparateProc>( 782 fn.glBlendEquationSeparateFn = reinterpret_cast<glBlendEquationSeparateProc>(
283 GetGLProcAddress("glBlendEquationSeparate")); 783 GetGLProcAddress("glBlendEquationSeparate"));
284 fn.glBlendFuncFn = 784 fn.glBlendFuncFn =
285 reinterpret_cast<glBlendFuncProc>(GetGLProcAddress("glBlendFunc")); 785 reinterpret_cast<glBlendFuncProc>(GetGLProcAddress("glBlendFunc"));
286 fn.glBlendFuncSeparateFn = reinterpret_cast<glBlendFuncSeparateProc>( 786 fn.glBlendFuncSeparateFn = reinterpret_cast<glBlendFuncSeparateProc>(
287 GetGLProcAddress("glBlendFuncSeparate")); 787 GetGLProcAddress("glBlendFuncSeparate"));
288 fn.glBlitFramebufferFn = reinterpret_cast<glBlitFramebufferProc>( 788 fn.glBlitFramebufferFn =
289 GetGLProcAddress("glBlitFramebuffer")); 789 reinterpret_cast<glBlitFramebufferProc>(glBlitFramebufferNotBound);
290 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>( 790 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>(
291 glBlitFramebufferANGLENotBound); 791 glBlitFramebufferANGLENotBound);
292 fn.glBlitFramebufferEXTFn = 792 fn.glBlitFramebufferEXTFn =
293 reinterpret_cast<glBlitFramebufferEXTProc>(glBlitFramebufferEXTNotBound); 793 reinterpret_cast<glBlitFramebufferEXTProc>(glBlitFramebufferEXTNotBound);
294 fn.glBufferDataFn = 794 fn.glBufferDataFn =
295 reinterpret_cast<glBufferDataProc>(GetGLProcAddress("glBufferData")); 795 reinterpret_cast<glBufferDataProc>(GetGLProcAddress("glBufferData"));
296 fn.glBufferSubDataFn = reinterpret_cast<glBufferSubDataProc>( 796 fn.glBufferSubDataFn = reinterpret_cast<glBufferSubDataProc>(
297 GetGLProcAddress("glBufferSubData")); 797 GetGLProcAddress("glBufferSubData"));
298 fn.glCheckFramebufferStatusEXTFn = 798 fn.glCheckFramebufferStatusEXTFn =
299 reinterpret_cast<glCheckFramebufferStatusEXTProc>( 799 reinterpret_cast<glCheckFramebufferStatusEXTProc>(
300 glCheckFramebufferStatusEXTNotBound); 800 GetGLProcAddress("glCheckFramebufferStatusEXT"));
301 fn.glClearFn = reinterpret_cast<glClearProc>(GetGLProcAddress("glClear")); 801 fn.glClearFn = reinterpret_cast<glClearProc>(GetGLProcAddress("glClear"));
302 fn.glClearBufferfiFn = reinterpret_cast<glClearBufferfiProc>( 802 fn.glClearBufferfiFn =
303 GetGLProcAddress("glClearBufferfi")); 803 reinterpret_cast<glClearBufferfiProc>(glClearBufferfiNotBound);
304 fn.glClearBufferfvFn = reinterpret_cast<glClearBufferfvProc>( 804 fn.glClearBufferfvFn =
305 GetGLProcAddress("glClearBufferfv")); 805 reinterpret_cast<glClearBufferfvProc>(glClearBufferfvNotBound);
306 fn.glClearBufferivFn = reinterpret_cast<glClearBufferivProc>( 806 fn.glClearBufferivFn =
307 GetGLProcAddress("glClearBufferiv")); 807 reinterpret_cast<glClearBufferivProc>(glClearBufferivNotBound);
308 fn.glClearBufferuivFn = reinterpret_cast<glClearBufferuivProc>( 808 fn.glClearBufferuivFn =
309 GetGLProcAddress("glClearBufferuiv")); 809 reinterpret_cast<glClearBufferuivProc>(glClearBufferuivNotBound);
310 fn.glClearColorFn = 810 fn.glClearColorFn =
311 reinterpret_cast<glClearColorProc>(GetGLProcAddress("glClearColor")); 811 reinterpret_cast<glClearColorProc>(GetGLProcAddress("glClearColor"));
312 fn.glClearDepthFn = 812 fn.glClearDepthFn =
313 reinterpret_cast<glClearDepthProc>(GetGLProcAddress("glClearDepth")); 813 reinterpret_cast<glClearDepthProc>(GetGLProcAddress("glClearDepth"));
314 fn.glClearDepthfFn = 814 fn.glClearDepthfFn =
315 reinterpret_cast<glClearDepthfProc>(GetGLProcAddress("glClearDepthf")); 815 reinterpret_cast<glClearDepthfProc>(glClearDepthfNotBound);
316 fn.glClearStencilFn = 816 fn.glClearStencilFn =
317 reinterpret_cast<glClearStencilProc>(GetGLProcAddress("glClearStencil")); 817 reinterpret_cast<glClearStencilProc>(GetGLProcAddress("glClearStencil"));
318 fn.glClientWaitSyncFn = reinterpret_cast<glClientWaitSyncProc>( 818 fn.glClientWaitSyncFn =
319 GetGLProcAddress("glClientWaitSync")); 819 reinterpret_cast<glClientWaitSyncProc>(glClientWaitSyncNotBound);
320 fn.glColorMaskFn = 820 fn.glColorMaskFn =
321 reinterpret_cast<glColorMaskProc>(GetGLProcAddress("glColorMask")); 821 reinterpret_cast<glColorMaskProc>(GetGLProcAddress("glColorMask"));
322 fn.glCompileShaderFn = reinterpret_cast<glCompileShaderProc>( 822 fn.glCompileShaderFn = reinterpret_cast<glCompileShaderProc>(
323 GetGLProcAddress("glCompileShader")); 823 GetGLProcAddress("glCompileShader"));
324 fn.glCompressedTexImage2DFn = reinterpret_cast<glCompressedTexImage2DProc>( 824 fn.glCompressedTexImage2DFn = reinterpret_cast<glCompressedTexImage2DProc>(
325 GetGLProcAddress("glCompressedTexImage2D")); 825 GetGLProcAddress("glCompressedTexImage2D"));
326 fn.glCompressedTexImage3DFn = reinterpret_cast<glCompressedTexImage3DProc>( 826 fn.glCompressedTexImage3DFn = reinterpret_cast<glCompressedTexImage3DProc>(
327 GetGLProcAddress("glCompressedTexImage3D")); 827 glCompressedTexImage3DNotBound);
328 fn.glCompressedTexSubImage2DFn = 828 fn.glCompressedTexSubImage2DFn =
329 reinterpret_cast<glCompressedTexSubImage2DProc>( 829 reinterpret_cast<glCompressedTexSubImage2DProc>(
330 GetGLProcAddress("glCompressedTexSubImage2D")); 830 GetGLProcAddress("glCompressedTexSubImage2D"));
331 fn.glCopyBufferSubDataFn = reinterpret_cast<glCopyBufferSubDataProc>( 831 fn.glCopyBufferSubDataFn =
332 GetGLProcAddress("glCopyBufferSubData")); 832 reinterpret_cast<glCopyBufferSubDataProc>(glCopyBufferSubDataNotBound);
333 fn.glCopyTexImage2DFn = reinterpret_cast<glCopyTexImage2DProc>( 833 fn.glCopyTexImage2DFn = reinterpret_cast<glCopyTexImage2DProc>(
334 GetGLProcAddress("glCopyTexImage2D")); 834 GetGLProcAddress("glCopyTexImage2D"));
335 fn.glCopyTexSubImage2DFn = reinterpret_cast<glCopyTexSubImage2DProc>( 835 fn.glCopyTexSubImage2DFn = reinterpret_cast<glCopyTexSubImage2DProc>(
336 GetGLProcAddress("glCopyTexSubImage2D")); 836 GetGLProcAddress("glCopyTexSubImage2D"));
337 fn.glCopyTexSubImage3DFn = reinterpret_cast<glCopyTexSubImage3DProc>( 837 fn.glCopyTexSubImage3DFn =
338 GetGLProcAddress("glCopyTexSubImage3D")); 838 reinterpret_cast<glCopyTexSubImage3DProc>(glCopyTexSubImage3DNotBound);
339 fn.glCreateProgramFn = reinterpret_cast<glCreateProgramProc>( 839 fn.glCreateProgramFn = reinterpret_cast<glCreateProgramProc>(
340 GetGLProcAddress("glCreateProgram")); 840 GetGLProcAddress("glCreateProgram"));
341 fn.glCreateShaderFn = 841 fn.glCreateShaderFn =
342 reinterpret_cast<glCreateShaderProc>(GetGLProcAddress("glCreateShader")); 842 reinterpret_cast<glCreateShaderProc>(GetGLProcAddress("glCreateShader"));
343 fn.glCullFaceFn = 843 fn.glCullFaceFn =
344 reinterpret_cast<glCullFaceProc>(GetGLProcAddress("glCullFace")); 844 reinterpret_cast<glCullFaceProc>(GetGLProcAddress("glCullFace"));
345 fn.glDeleteBuffersARBFn = 845 fn.glDeleteBuffersARBFn = reinterpret_cast<glDeleteBuffersARBProc>(
346 reinterpret_cast<glDeleteBuffersARBProc>(glDeleteBuffersARBNotBound); 846 GetGLProcAddress("glDeleteBuffers"));
347 fn.glDeleteFencesAPPLEFn = reinterpret_cast<glDeleteFencesAPPLEProc>( 847 fn.glDeleteFencesAPPLEFn =
348 GetGLProcAddress("glDeleteFencesAPPLE")); 848 reinterpret_cast<glDeleteFencesAPPLEProc>(glDeleteFencesAPPLENotBound);
349 fn.glDeleteFencesNVFn = reinterpret_cast<glDeleteFencesNVProc>( 849 fn.glDeleteFencesNVFn =
350 GetGLProcAddress("glDeleteFencesNV")); 850 reinterpret_cast<glDeleteFencesNVProc>(glDeleteFencesNVNotBound);
351 fn.glDeleteFramebuffersEXTFn = reinterpret_cast<glDeleteFramebuffersEXTProc>( 851 fn.glDeleteFramebuffersEXTFn = reinterpret_cast<glDeleteFramebuffersEXTProc>(
352 glDeleteFramebuffersEXTNotBound); 852 GetGLProcAddress("glDeleteFramebuffersEXT"));
353 fn.glDeleteProgramFn = reinterpret_cast<glDeleteProgramProc>( 853 fn.glDeleteProgramFn = reinterpret_cast<glDeleteProgramProc>(
354 GetGLProcAddress("glDeleteProgram")); 854 GetGLProcAddress("glDeleteProgram"));
355 fn.glDeleteQueriesFn = reinterpret_cast<glDeleteQueriesProc>( 855 fn.glDeleteQueriesFn =
356 GetGLProcAddress("glDeleteQueries")); 856 reinterpret_cast<glDeleteQueriesProc>(glDeleteQueriesNotBound);
357 fn.glDeleteQueriesARBFn = 857 fn.glDeleteQueriesARBFn =
358 reinterpret_cast<glDeleteQueriesARBProc>(glDeleteQueriesARBNotBound); 858 reinterpret_cast<glDeleteQueriesARBProc>(glDeleteQueriesARBNotBound);
359 fn.glDeleteRenderbuffersEXTFn = 859 fn.glDeleteRenderbuffersEXTFn =
360 reinterpret_cast<glDeleteRenderbuffersEXTProc>( 860 reinterpret_cast<glDeleteRenderbuffersEXTProc>(
361 glDeleteRenderbuffersEXTNotBound); 861 GetGLProcAddress("glDeleteRenderbuffersEXT"));
362 fn.glDeleteSamplersFn = reinterpret_cast<glDeleteSamplersProc>( 862 fn.glDeleteSamplersFn =
363 GetGLProcAddress("glDeleteSamplers")); 863 reinterpret_cast<glDeleteSamplersProc>(glDeleteSamplersNotBound);
364 fn.glDeleteShaderFn = 864 fn.glDeleteShaderFn =
365 reinterpret_cast<glDeleteShaderProc>(GetGLProcAddress("glDeleteShader")); 865 reinterpret_cast<glDeleteShaderProc>(GetGLProcAddress("glDeleteShader"));
366 fn.glDeleteSyncFn = 866 fn.glDeleteSyncFn = reinterpret_cast<glDeleteSyncProc>(glDeleteSyncNotBound);
367 reinterpret_cast<glDeleteSyncProc>(GetGLProcAddress("glDeleteSync"));
368 fn.glDeleteTexturesFn = reinterpret_cast<glDeleteTexturesProc>( 867 fn.glDeleteTexturesFn = reinterpret_cast<glDeleteTexturesProc>(
369 GetGLProcAddress("glDeleteTextures")); 868 GetGLProcAddress("glDeleteTextures"));
370 fn.glDeleteTransformFeedbacksFn = 869 fn.glDeleteTransformFeedbacksFn =
371 reinterpret_cast<glDeleteTransformFeedbacksProc>( 870 reinterpret_cast<glDeleteTransformFeedbacksProc>(
372 GetGLProcAddress("glDeleteTransformFeedbacks")); 871 glDeleteTransformFeedbacksNotBound);
373 fn.glDeleteVertexArraysOESFn = reinterpret_cast<glDeleteVertexArraysOESProc>( 872 fn.glDeleteVertexArraysOESFn = reinterpret_cast<glDeleteVertexArraysOESProc>(
374 glDeleteVertexArraysOESNotBound); 873 glDeleteVertexArraysOESNotBound);
375 fn.glDepthFuncFn = 874 fn.glDepthFuncFn =
376 reinterpret_cast<glDepthFuncProc>(GetGLProcAddress("glDepthFunc")); 875 reinterpret_cast<glDepthFuncProc>(GetGLProcAddress("glDepthFunc"));
377 fn.glDepthMaskFn = 876 fn.glDepthMaskFn =
378 reinterpret_cast<glDepthMaskProc>(GetGLProcAddress("glDepthMask")); 877 reinterpret_cast<glDepthMaskProc>(GetGLProcAddress("glDepthMask"));
379 fn.glDepthRangeFn = 878 fn.glDepthRangeFn =
380 reinterpret_cast<glDepthRangeProc>(GetGLProcAddress("glDepthRange")); 879 reinterpret_cast<glDepthRangeProc>(GetGLProcAddress("glDepthRange"));
381 fn.glDepthRangefFn = 880 fn.glDepthRangefFn =
382 reinterpret_cast<glDepthRangefProc>(GetGLProcAddress("glDepthRangef")); 881 reinterpret_cast<glDepthRangefProc>(glDepthRangefNotBound);
383 fn.glDetachShaderFn = 882 fn.glDetachShaderFn =
384 reinterpret_cast<glDetachShaderProc>(GetGLProcAddress("glDetachShader")); 883 reinterpret_cast<glDetachShaderProc>(GetGLProcAddress("glDetachShader"));
385 fn.glDisableFn = 884 fn.glDisableFn =
386 reinterpret_cast<glDisableProc>(GetGLProcAddress("glDisable")); 885 reinterpret_cast<glDisableProc>(GetGLProcAddress("glDisable"));
387 fn.glDisableVertexAttribArrayFn = 886 fn.glDisableVertexAttribArrayFn =
388 reinterpret_cast<glDisableVertexAttribArrayProc>( 887 reinterpret_cast<glDisableVertexAttribArrayProc>(
389 GetGLProcAddress("glDisableVertexAttribArray")); 888 GetGLProcAddress("glDisableVertexAttribArray"));
390 fn.glDiscardFramebufferEXTFn = reinterpret_cast<glDiscardFramebufferEXTProc>( 889 fn.glDiscardFramebufferEXTFn = reinterpret_cast<glDiscardFramebufferEXTProc>(
391 GetGLProcAddress("glDiscardFramebufferEXT")); 890 glDiscardFramebufferEXTNotBound);
392 fn.glDrawArraysFn = 891 fn.glDrawArraysFn =
393 reinterpret_cast<glDrawArraysProc>(GetGLProcAddress("glDrawArrays")); 892 reinterpret_cast<glDrawArraysProc>(GetGLProcAddress("glDrawArrays"));
394 fn.glDrawArraysInstancedANGLEFn = 893 fn.glDrawArraysInstancedANGLEFn =
395 reinterpret_cast<glDrawArraysInstancedANGLEProc>( 894 reinterpret_cast<glDrawArraysInstancedANGLEProc>(
396 glDrawArraysInstancedANGLENotBound); 895 glDrawArraysInstancedANGLENotBound);
397 fn.glDrawBufferFn = 896 fn.glDrawBufferFn = reinterpret_cast<glDrawBufferProc>(glDrawBufferNotBound);
398 reinterpret_cast<glDrawBufferProc>(GetGLProcAddress("glDrawBuffer"));
399 fn.glDrawBuffersARBFn = 897 fn.glDrawBuffersARBFn =
400 reinterpret_cast<glDrawBuffersARBProc>(glDrawBuffersARBNotBound); 898 reinterpret_cast<glDrawBuffersARBProc>(glDrawBuffersARBNotBound);
401 fn.glDrawElementsFn = 899 fn.glDrawElementsFn =
402 reinterpret_cast<glDrawElementsProc>(GetGLProcAddress("glDrawElements")); 900 reinterpret_cast<glDrawElementsProc>(GetGLProcAddress("glDrawElements"));
403 fn.glDrawElementsInstancedANGLEFn = 901 fn.glDrawElementsInstancedANGLEFn =
404 reinterpret_cast<glDrawElementsInstancedANGLEProc>( 902 reinterpret_cast<glDrawElementsInstancedANGLEProc>(
405 glDrawElementsInstancedANGLENotBound); 903 glDrawElementsInstancedANGLENotBound);
406 fn.glDrawRangeElementsFn = reinterpret_cast<glDrawRangeElementsProc>( 904 fn.glDrawRangeElementsFn =
407 GetGLProcAddress("glDrawRangeElements")); 905 reinterpret_cast<glDrawRangeElementsProc>(glDrawRangeElementsNotBound);
408 fn.glEGLImageTargetRenderbufferStorageOESFn = 906 fn.glEGLImageTargetRenderbufferStorageOESFn =
409 reinterpret_cast<glEGLImageTargetRenderbufferStorageOESProc>( 907 reinterpret_cast<glEGLImageTargetRenderbufferStorageOESProc>(
410 GetGLProcAddress("glEGLImageTargetRenderbufferStorageOES")); 908 glEGLImageTargetRenderbufferStorageOESNotBound);
411 fn.glEGLImageTargetTexture2DOESFn = 909 fn.glEGLImageTargetTexture2DOESFn =
412 reinterpret_cast<glEGLImageTargetTexture2DOESProc>( 910 reinterpret_cast<glEGLImageTargetTexture2DOESProc>(
413 GetGLProcAddress("glEGLImageTargetTexture2DOES")); 911 glEGLImageTargetTexture2DOESNotBound);
414 fn.glEnableFn = reinterpret_cast<glEnableProc>(GetGLProcAddress("glEnable")); 912 fn.glEnableFn = reinterpret_cast<glEnableProc>(GetGLProcAddress("glEnable"));
415 fn.glEnableVertexAttribArrayFn = 913 fn.glEnableVertexAttribArrayFn =
416 reinterpret_cast<glEnableVertexAttribArrayProc>( 914 reinterpret_cast<glEnableVertexAttribArrayProc>(
417 GetGLProcAddress("glEnableVertexAttribArray")); 915 GetGLProcAddress("glEnableVertexAttribArray"));
418 fn.glEndQueryFn = 916 fn.glEndQueryFn = reinterpret_cast<glEndQueryProc>(glEndQueryNotBound);
419 reinterpret_cast<glEndQueryProc>(GetGLProcAddress("glEndQuery"));
420 fn.glEndQueryARBFn = 917 fn.glEndQueryARBFn =
421 reinterpret_cast<glEndQueryARBProc>(glEndQueryARBNotBound); 918 reinterpret_cast<glEndQueryARBProc>(glEndQueryARBNotBound);
422 fn.glEndTransformFeedbackFn = reinterpret_cast<glEndTransformFeedbackProc>( 919 fn.glEndTransformFeedbackFn = reinterpret_cast<glEndTransformFeedbackProc>(
423 GetGLProcAddress("glEndTransformFeedback")); 920 glEndTransformFeedbackNotBound);
424 fn.glFenceSyncFn = 921 fn.glFenceSyncFn = reinterpret_cast<glFenceSyncProc>(glFenceSyncNotBound);
425 reinterpret_cast<glFenceSyncProc>(GetGLProcAddress("glFenceSync"));
426 fn.glFinishFn = reinterpret_cast<glFinishProc>(GetGLProcAddress("glFinish")); 922 fn.glFinishFn = reinterpret_cast<glFinishProc>(GetGLProcAddress("glFinish"));
427 fn.glFinishFenceAPPLEFn = reinterpret_cast<glFinishFenceAPPLEProc>( 923 fn.glFinishFenceAPPLEFn =
428 GetGLProcAddress("glFinishFenceAPPLE")); 924 reinterpret_cast<glFinishFenceAPPLEProc>(glFinishFenceAPPLENotBound);
429 fn.glFinishFenceNVFn = reinterpret_cast<glFinishFenceNVProc>( 925 fn.glFinishFenceNVFn =
430 GetGLProcAddress("glFinishFenceNV")); 926 reinterpret_cast<glFinishFenceNVProc>(glFinishFenceNVNotBound);
431 fn.glFlushFn = reinterpret_cast<glFlushProc>(GetGLProcAddress("glFlush")); 927 fn.glFlushFn = reinterpret_cast<glFlushProc>(GetGLProcAddress("glFlush"));
432 fn.glFlushMappedBufferRangeFn = 928 fn.glFlushMappedBufferRangeFn =
433 reinterpret_cast<glFlushMappedBufferRangeProc>( 929 reinterpret_cast<glFlushMappedBufferRangeProc>(
434 GetGLProcAddress("glFlushMappedBufferRange")); 930 glFlushMappedBufferRangeNotBound);
435 fn.glFramebufferRenderbufferEXTFn = 931 fn.glFramebufferRenderbufferEXTFn =
436 reinterpret_cast<glFramebufferRenderbufferEXTProc>( 932 reinterpret_cast<glFramebufferRenderbufferEXTProc>(
437 glFramebufferRenderbufferEXTNotBound); 933 GetGLProcAddress("glFramebufferRenderbufferEXT"));
438 fn.glFramebufferTexture2DEXTFn = 934 fn.glFramebufferTexture2DEXTFn =
439 reinterpret_cast<glFramebufferTexture2DEXTProc>( 935 reinterpret_cast<glFramebufferTexture2DEXTProc>(
440 glFramebufferTexture2DEXTNotBound); 936 GetGLProcAddress("glFramebufferTexture2DEXT"));
441 fn.glFramebufferTexture2DMultisampleEXTFn = 937 fn.glFramebufferTexture2DMultisampleEXTFn =
442 reinterpret_cast<glFramebufferTexture2DMultisampleEXTProc>( 938 reinterpret_cast<glFramebufferTexture2DMultisampleEXTProc>(
443 GetGLProcAddress("glFramebufferTexture2DMultisampleEXT")); 939 glFramebufferTexture2DMultisampleEXTNotBound);
444 fn.glFramebufferTexture2DMultisampleIMGFn = 940 fn.glFramebufferTexture2DMultisampleIMGFn =
445 reinterpret_cast<glFramebufferTexture2DMultisampleIMGProc>( 941 reinterpret_cast<glFramebufferTexture2DMultisampleIMGProc>(
446 GetGLProcAddress("glFramebufferTexture2DMultisampleIMG")); 942 glFramebufferTexture2DMultisampleIMGNotBound);
447 fn.glFramebufferTextureLayerFn = 943 fn.glFramebufferTextureLayerFn =
448 reinterpret_cast<glFramebufferTextureLayerProc>( 944 reinterpret_cast<glFramebufferTextureLayerProc>(
449 GetGLProcAddress("glFramebufferTextureLayer")); 945 glFramebufferTextureLayerNotBound);
450 fn.glFrontFaceFn = 946 fn.glFrontFaceFn =
451 reinterpret_cast<glFrontFaceProc>(GetGLProcAddress("glFrontFace")); 947 reinterpret_cast<glFrontFaceProc>(GetGLProcAddress("glFrontFace"));
452 fn.glGenBuffersARBFn = 948 fn.glGenBuffersARBFn =
453 reinterpret_cast<glGenBuffersARBProc>(glGenBuffersARBNotBound); 949 reinterpret_cast<glGenBuffersARBProc>(GetGLProcAddress("glGenBuffers"));
454 fn.glGenerateMipmapEXTFn = 950 fn.glGenerateMipmapEXTFn = reinterpret_cast<glGenerateMipmapEXTProc>(
455 reinterpret_cast<glGenerateMipmapEXTProc>(glGenerateMipmapEXTNotBound); 951 GetGLProcAddress("glGenerateMipmapEXT"));
456 fn.glGenFencesAPPLEFn = reinterpret_cast<glGenFencesAPPLEProc>( 952 fn.glGenFencesAPPLEFn =
457 GetGLProcAddress("glGenFencesAPPLE")); 953 reinterpret_cast<glGenFencesAPPLEProc>(glGenFencesAPPLENotBound);
458 fn.glGenFencesNVFn = 954 fn.glGenFencesNVFn =
459 reinterpret_cast<glGenFencesNVProc>(GetGLProcAddress("glGenFencesNV")); 955 reinterpret_cast<glGenFencesNVProc>(glGenFencesNVNotBound);
460 fn.glGenFramebuffersEXTFn = 956 fn.glGenFramebuffersEXTFn = reinterpret_cast<glGenFramebuffersEXTProc>(
461 reinterpret_cast<glGenFramebuffersEXTProc>(glGenFramebuffersEXTNotBound); 957 GetGLProcAddress("glGenFramebuffersEXT"));
462 fn.glGenQueriesFn = 958 fn.glGenQueriesFn = reinterpret_cast<glGenQueriesProc>(glGenQueriesNotBound);
463 reinterpret_cast<glGenQueriesProc>(GetGLProcAddress("glGenQueries"));
464 fn.glGenQueriesARBFn = 959 fn.glGenQueriesARBFn =
465 reinterpret_cast<glGenQueriesARBProc>(glGenQueriesARBNotBound); 960 reinterpret_cast<glGenQueriesARBProc>(glGenQueriesARBNotBound);
466 fn.glGenRenderbuffersEXTFn = reinterpret_cast<glGenRenderbuffersEXTProc>( 961 fn.glGenRenderbuffersEXTFn = reinterpret_cast<glGenRenderbuffersEXTProc>(
467 glGenRenderbuffersEXTNotBound); 962 GetGLProcAddress("glGenRenderbuffersEXT"));
468 fn.glGenSamplersFn = 963 fn.glGenSamplersFn =
469 reinterpret_cast<glGenSamplersProc>(GetGLProcAddress("glGenSamplers")); 964 reinterpret_cast<glGenSamplersProc>(glGenSamplersNotBound);
470 fn.glGenTexturesFn = 965 fn.glGenTexturesFn =
471 reinterpret_cast<glGenTexturesProc>(GetGLProcAddress("glGenTextures")); 966 reinterpret_cast<glGenTexturesProc>(GetGLProcAddress("glGenTextures"));
472 fn.glGenTransformFeedbacksFn = reinterpret_cast<glGenTransformFeedbacksProc>( 967 fn.glGenTransformFeedbacksFn = reinterpret_cast<glGenTransformFeedbacksProc>(
473 GetGLProcAddress("glGenTransformFeedbacks")); 968 glGenTransformFeedbacksNotBound);
474 fn.glGenVertexArraysOESFn = 969 fn.glGenVertexArraysOESFn =
475 reinterpret_cast<glGenVertexArraysOESProc>(glGenVertexArraysOESNotBound); 970 reinterpret_cast<glGenVertexArraysOESProc>(glGenVertexArraysOESNotBound);
476 fn.glGetActiveAttribFn = reinterpret_cast<glGetActiveAttribProc>( 971 fn.glGetActiveAttribFn = reinterpret_cast<glGetActiveAttribProc>(
477 GetGLProcAddress("glGetActiveAttrib")); 972 GetGLProcAddress("glGetActiveAttrib"));
478 fn.glGetActiveUniformFn = reinterpret_cast<glGetActiveUniformProc>( 973 fn.glGetActiveUniformFn = reinterpret_cast<glGetActiveUniformProc>(
479 GetGLProcAddress("glGetActiveUniform")); 974 GetGLProcAddress("glGetActiveUniform"));
480 fn.glGetActiveUniformBlockivFn = 975 fn.glGetActiveUniformBlockivFn =
481 reinterpret_cast<glGetActiveUniformBlockivProc>( 976 reinterpret_cast<glGetActiveUniformBlockivProc>(
482 GetGLProcAddress("glGetActiveUniformBlockiv")); 977 glGetActiveUniformBlockivNotBound);
483 fn.glGetActiveUniformBlockNameFn = 978 fn.glGetActiveUniformBlockNameFn =
484 reinterpret_cast<glGetActiveUniformBlockNameProc>( 979 reinterpret_cast<glGetActiveUniformBlockNameProc>(
485 GetGLProcAddress("glGetActiveUniformBlockName")); 980 glGetActiveUniformBlockNameNotBound);
486 fn.glGetActiveUniformsivFn = reinterpret_cast<glGetActiveUniformsivProc>( 981 fn.glGetActiveUniformsivFn = reinterpret_cast<glGetActiveUniformsivProc>(
487 GetGLProcAddress("glGetActiveUniformsiv")); 982 glGetActiveUniformsivNotBound);
488 fn.glGetAttachedShadersFn = reinterpret_cast<glGetAttachedShadersProc>( 983 fn.glGetAttachedShadersFn = reinterpret_cast<glGetAttachedShadersProc>(
489 GetGLProcAddress("glGetAttachedShaders")); 984 GetGLProcAddress("glGetAttachedShaders"));
490 fn.glGetAttribLocationFn = reinterpret_cast<glGetAttribLocationProc>( 985 fn.glGetAttribLocationFn = reinterpret_cast<glGetAttribLocationProc>(
491 GetGLProcAddress("glGetAttribLocation")); 986 GetGLProcAddress("glGetAttribLocation"));
492 fn.glGetBooleanvFn = 987 fn.glGetBooleanvFn =
493 reinterpret_cast<glGetBooleanvProc>(GetGLProcAddress("glGetBooleanv")); 988 reinterpret_cast<glGetBooleanvProc>(GetGLProcAddress("glGetBooleanv"));
494 fn.glGetBufferParameterivFn = reinterpret_cast<glGetBufferParameterivProc>( 989 fn.glGetBufferParameterivFn = reinterpret_cast<glGetBufferParameterivProc>(
495 GetGLProcAddress("glGetBufferParameteriv")); 990 GetGLProcAddress("glGetBufferParameteriv"));
496 fn.glGetErrorFn = 991 fn.glGetErrorFn =
497 reinterpret_cast<glGetErrorProc>(GetGLProcAddress("glGetError")); 992 reinterpret_cast<glGetErrorProc>(GetGLProcAddress("glGetError"));
498 fn.glGetFenceivNVFn = 993 fn.glGetFenceivNVFn =
499 reinterpret_cast<glGetFenceivNVProc>(GetGLProcAddress("glGetFenceivNV")); 994 reinterpret_cast<glGetFenceivNVProc>(glGetFenceivNVNotBound);
500 fn.glGetFloatvFn = 995 fn.glGetFloatvFn =
501 reinterpret_cast<glGetFloatvProc>(GetGLProcAddress("glGetFloatv")); 996 reinterpret_cast<glGetFloatvProc>(GetGLProcAddress("glGetFloatv"));
502 fn.glGetFragDataLocationFn = reinterpret_cast<glGetFragDataLocationProc>( 997 fn.glGetFragDataLocationFn = reinterpret_cast<glGetFragDataLocationProc>(
503 GetGLProcAddress("glGetFragDataLocation")); 998 glGetFragDataLocationNotBound);
504 fn.glGetFramebufferAttachmentParameterivEXTFn = 999 fn.glGetFramebufferAttachmentParameterivEXTFn =
505 reinterpret_cast<glGetFramebufferAttachmentParameterivEXTProc>( 1000 reinterpret_cast<glGetFramebufferAttachmentParameterivEXTProc>(
506 glGetFramebufferAttachmentParameterivEXTNotBound); 1001 GetGLProcAddress("glGetFramebufferAttachmentParameterivEXT"));
507 fn.glGetGraphicsResetStatusARBFn = 1002 fn.glGetGraphicsResetStatusARBFn =
508 reinterpret_cast<glGetGraphicsResetStatusARBProc>( 1003 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
509 glGetGraphicsResetStatusARBNotBound); 1004 glGetGraphicsResetStatusARBNotBound);
510 fn.glGetInteger64i_vFn = reinterpret_cast<glGetInteger64i_vProc>( 1005 fn.glGetInteger64i_vFn =
511 GetGLProcAddress("glGetInteger64i_v")); 1006 reinterpret_cast<glGetInteger64i_vProc>(glGetInteger64i_vNotBound);
512 fn.glGetInteger64vFn = reinterpret_cast<glGetInteger64vProc>( 1007 fn.glGetInteger64vFn =
513 GetGLProcAddress("glGetInteger64v")); 1008 reinterpret_cast<glGetInteger64vProc>(glGetInteger64vNotBound);
514 fn.glGetIntegeri_vFn = reinterpret_cast<glGetIntegeri_vProc>( 1009 fn.glGetIntegeri_vFn =
515 GetGLProcAddress("glGetIntegeri_v")); 1010 reinterpret_cast<glGetIntegeri_vProc>(glGetIntegeri_vNotBound);
516 fn.glGetIntegervFn = 1011 fn.glGetIntegervFn =
517 reinterpret_cast<glGetIntegervProc>(GetGLProcAddress("glGetIntegerv")); 1012 reinterpret_cast<glGetIntegervProc>(GetGLProcAddress("glGetIntegerv"));
518 fn.glGetInternalformativFn = reinterpret_cast<glGetInternalformativProc>( 1013 fn.glGetInternalformativFn = reinterpret_cast<glGetInternalformativProc>(
519 GetGLProcAddress("glGetInternalformativ")); 1014 glGetInternalformativNotBound);
520 fn.glGetProgramBinaryFn = 1015 fn.glGetProgramBinaryFn =
521 reinterpret_cast<glGetProgramBinaryProc>(glGetProgramBinaryNotBound); 1016 reinterpret_cast<glGetProgramBinaryProc>(glGetProgramBinaryNotBound);
522 fn.glGetProgramInfoLogFn = reinterpret_cast<glGetProgramInfoLogProc>( 1017 fn.glGetProgramInfoLogFn = reinterpret_cast<glGetProgramInfoLogProc>(
523 GetGLProcAddress("glGetProgramInfoLog")); 1018 GetGLProcAddress("glGetProgramInfoLog"));
524 fn.glGetProgramivFn = 1019 fn.glGetProgramivFn =
525 reinterpret_cast<glGetProgramivProc>(GetGLProcAddress("glGetProgramiv")); 1020 reinterpret_cast<glGetProgramivProc>(GetGLProcAddress("glGetProgramiv"));
526 fn.glGetQueryivFn = 1021 fn.glGetQueryivFn = reinterpret_cast<glGetQueryivProc>(glGetQueryivNotBound);
527 reinterpret_cast<glGetQueryivProc>(GetGLProcAddress("glGetQueryiv"));
528 fn.glGetQueryivARBFn = 1022 fn.glGetQueryivARBFn =
529 reinterpret_cast<glGetQueryivARBProc>(glGetQueryivARBNotBound); 1023 reinterpret_cast<glGetQueryivARBProc>(glGetQueryivARBNotBound);
530 fn.glGetQueryObjecti64vFn = reinterpret_cast<glGetQueryObjecti64vProc>( 1024 fn.glGetQueryObjecti64vFn =
531 GetGLProcAddress("glGetQueryObjecti64v")); 1025 reinterpret_cast<glGetQueryObjecti64vProc>(glGetQueryObjecti64vNotBound);
532 fn.glGetQueryObjectivFn = reinterpret_cast<glGetQueryObjectivProc>( 1026 fn.glGetQueryObjectivFn =
533 GetGLProcAddress("glGetQueryObjectiv")); 1027 reinterpret_cast<glGetQueryObjectivProc>(glGetQueryObjectivNotBound);
534 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>( 1028 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>(
535 glGetQueryObjectivARBNotBound); 1029 glGetQueryObjectivARBNotBound);
536 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>( 1030 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>(
537 glGetQueryObjectui64vNotBound); 1031 glGetQueryObjectui64vNotBound);
538 fn.glGetQueryObjectuivFn = reinterpret_cast<glGetQueryObjectuivProc>( 1032 fn.glGetQueryObjectuivFn =
539 GetGLProcAddress("glGetQueryObjectuiv")); 1033 reinterpret_cast<glGetQueryObjectuivProc>(glGetQueryObjectuivNotBound);
540 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>( 1034 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>(
541 glGetQueryObjectuivARBNotBound); 1035 glGetQueryObjectuivARBNotBound);
542 fn.glGetRenderbufferParameterivEXTFn = 1036 fn.glGetRenderbufferParameterivEXTFn =
543 reinterpret_cast<glGetRenderbufferParameterivEXTProc>( 1037 reinterpret_cast<glGetRenderbufferParameterivEXTProc>(
544 glGetRenderbufferParameterivEXTNotBound); 1038 GetGLProcAddress("glGetRenderbufferParameterivEXT"));
545 fn.glGetSamplerParameterfvFn = reinterpret_cast<glGetSamplerParameterfvProc>( 1039 fn.glGetSamplerParameterfvFn = reinterpret_cast<glGetSamplerParameterfvProc>(
546 GetGLProcAddress("glGetSamplerParameterfv")); 1040 glGetSamplerParameterfvNotBound);
547 fn.glGetSamplerParameterivFn = reinterpret_cast<glGetSamplerParameterivProc>( 1041 fn.glGetSamplerParameterivFn = reinterpret_cast<glGetSamplerParameterivProc>(
548 GetGLProcAddress("glGetSamplerParameteriv")); 1042 glGetSamplerParameterivNotBound);
549 fn.glGetShaderInfoLogFn = reinterpret_cast<glGetShaderInfoLogProc>( 1043 fn.glGetShaderInfoLogFn = reinterpret_cast<glGetShaderInfoLogProc>(
550 GetGLProcAddress("glGetShaderInfoLog")); 1044 GetGLProcAddress("glGetShaderInfoLog"));
551 fn.glGetShaderivFn = 1045 fn.glGetShaderivFn =
552 reinterpret_cast<glGetShaderivProc>(GetGLProcAddress("glGetShaderiv")); 1046 reinterpret_cast<glGetShaderivProc>(GetGLProcAddress("glGetShaderiv"));
553 fn.glGetShaderPrecisionFormatFn = 1047 fn.glGetShaderPrecisionFormatFn =
554 reinterpret_cast<glGetShaderPrecisionFormatProc>( 1048 reinterpret_cast<glGetShaderPrecisionFormatProc>(
555 GetGLProcAddress("glGetShaderPrecisionFormat")); 1049 glGetShaderPrecisionFormatNotBound);
556 fn.glGetShaderSourceFn = reinterpret_cast<glGetShaderSourceProc>( 1050 fn.glGetShaderSourceFn = reinterpret_cast<glGetShaderSourceProc>(
557 GetGLProcAddress("glGetShaderSource")); 1051 GetGLProcAddress("glGetShaderSource"));
558 fn.glGetStringFn = 1052 fn.glGetStringFn =
559 reinterpret_cast<glGetStringProc>(GetGLProcAddress("glGetString")); 1053 reinterpret_cast<glGetStringProc>(GetGLProcAddress("glGetString"));
560 fn.glGetSyncivFn = 1054 fn.glGetSyncivFn = reinterpret_cast<glGetSyncivProc>(glGetSyncivNotBound);
561 reinterpret_cast<glGetSyncivProc>(GetGLProcAddress("glGetSynciv"));
562 fn.glGetTexLevelParameterfvFn = 1055 fn.glGetTexLevelParameterfvFn =
563 reinterpret_cast<glGetTexLevelParameterfvProc>( 1056 reinterpret_cast<glGetTexLevelParameterfvProc>(
564 GetGLProcAddress("glGetTexLevelParameterfv")); 1057 glGetTexLevelParameterfvNotBound);
565 fn.glGetTexLevelParameterivFn = 1058 fn.glGetTexLevelParameterivFn =
566 reinterpret_cast<glGetTexLevelParameterivProc>( 1059 reinterpret_cast<glGetTexLevelParameterivProc>(
567 GetGLProcAddress("glGetTexLevelParameteriv")); 1060 glGetTexLevelParameterivNotBound);
568 fn.glGetTexParameterfvFn = reinterpret_cast<glGetTexParameterfvProc>( 1061 fn.glGetTexParameterfvFn = reinterpret_cast<glGetTexParameterfvProc>(
569 GetGLProcAddress("glGetTexParameterfv")); 1062 GetGLProcAddress("glGetTexParameterfv"));
570 fn.glGetTexParameterivFn = reinterpret_cast<glGetTexParameterivProc>( 1063 fn.glGetTexParameterivFn = reinterpret_cast<glGetTexParameterivProc>(
571 GetGLProcAddress("glGetTexParameteriv")); 1064 GetGLProcAddress("glGetTexParameteriv"));
572 fn.glGetTransformFeedbackVaryingFn = 1065 fn.glGetTransformFeedbackVaryingFn =
573 reinterpret_cast<glGetTransformFeedbackVaryingProc>( 1066 reinterpret_cast<glGetTransformFeedbackVaryingProc>(
574 GetGLProcAddress("glGetTransformFeedbackVarying")); 1067 glGetTransformFeedbackVaryingNotBound);
575 fn.glGetTranslatedShaderSourceANGLEFn = 1068 fn.glGetTranslatedShaderSourceANGLEFn =
576 reinterpret_cast<glGetTranslatedShaderSourceANGLEProc>( 1069 reinterpret_cast<glGetTranslatedShaderSourceANGLEProc>(
577 GetGLProcAddress("glGetTranslatedShaderSourceANGLE")); 1070 glGetTranslatedShaderSourceANGLENotBound);
578 fn.glGetUniformBlockIndexFn = reinterpret_cast<glGetUniformBlockIndexProc>( 1071 fn.glGetUniformBlockIndexFn = reinterpret_cast<glGetUniformBlockIndexProc>(
579 GetGLProcAddress("glGetUniformBlockIndex")); 1072 glGetUniformBlockIndexNotBound);
580 fn.glGetUniformfvFn = 1073 fn.glGetUniformfvFn =
581 reinterpret_cast<glGetUniformfvProc>(GetGLProcAddress("glGetUniformfv")); 1074 reinterpret_cast<glGetUniformfvProc>(GetGLProcAddress("glGetUniformfv"));
582 fn.glGetUniformIndicesFn = reinterpret_cast<glGetUniformIndicesProc>( 1075 fn.glGetUniformIndicesFn =
583 GetGLProcAddress("glGetUniformIndices")); 1076 reinterpret_cast<glGetUniformIndicesProc>(glGetUniformIndicesNotBound);
584 fn.glGetUniformivFn = 1077 fn.glGetUniformivFn =
585 reinterpret_cast<glGetUniformivProc>(GetGLProcAddress("glGetUniformiv")); 1078 reinterpret_cast<glGetUniformivProc>(GetGLProcAddress("glGetUniformiv"));
586 fn.glGetUniformLocationFn = reinterpret_cast<glGetUniformLocationProc>( 1079 fn.glGetUniformLocationFn = reinterpret_cast<glGetUniformLocationProc>(
587 GetGLProcAddress("glGetUniformLocation")); 1080 GetGLProcAddress("glGetUniformLocation"));
588 fn.glGetVertexAttribfvFn = reinterpret_cast<glGetVertexAttribfvProc>( 1081 fn.glGetVertexAttribfvFn = reinterpret_cast<glGetVertexAttribfvProc>(
589 GetGLProcAddress("glGetVertexAttribfv")); 1082 GetGLProcAddress("glGetVertexAttribfv"));
590 fn.glGetVertexAttribivFn = reinterpret_cast<glGetVertexAttribivProc>( 1083 fn.glGetVertexAttribivFn = reinterpret_cast<glGetVertexAttribivProc>(
591 GetGLProcAddress("glGetVertexAttribiv")); 1084 GetGLProcAddress("glGetVertexAttribiv"));
592 fn.glGetVertexAttribPointervFn = 1085 fn.glGetVertexAttribPointervFn =
593 reinterpret_cast<glGetVertexAttribPointervProc>( 1086 reinterpret_cast<glGetVertexAttribPointervProc>(
594 GetGLProcAddress("glGetVertexAttribPointerv")); 1087 GetGLProcAddress("glGetVertexAttribPointerv"));
595 fn.glHintFn = reinterpret_cast<glHintProc>(GetGLProcAddress("glHint")); 1088 fn.glHintFn = reinterpret_cast<glHintProc>(GetGLProcAddress("glHint"));
596 fn.glInsertEventMarkerEXTFn = reinterpret_cast<glInsertEventMarkerEXTProc>( 1089 fn.glInsertEventMarkerEXTFn = reinterpret_cast<glInsertEventMarkerEXTProc>(
597 GetGLProcAddress("glInsertEventMarkerEXT")); 1090 glInsertEventMarkerEXTNotBound);
598 fn.glInvalidateFramebufferFn = reinterpret_cast<glInvalidateFramebufferProc>( 1091 fn.glInvalidateFramebufferFn = reinterpret_cast<glInvalidateFramebufferProc>(
599 GetGLProcAddress("glInvalidateFramebuffer")); 1092 glInvalidateFramebufferNotBound);
600 fn.glInvalidateSubFramebufferFn = 1093 fn.glInvalidateSubFramebufferFn =
601 reinterpret_cast<glInvalidateSubFramebufferProc>( 1094 reinterpret_cast<glInvalidateSubFramebufferProc>(
602 GetGLProcAddress("glInvalidateSubFramebuffer")); 1095 glInvalidateSubFramebufferNotBound);
603 fn.glIsBufferFn = 1096 fn.glIsBufferFn =
604 reinterpret_cast<glIsBufferProc>(GetGLProcAddress("glIsBuffer")); 1097 reinterpret_cast<glIsBufferProc>(GetGLProcAddress("glIsBuffer"));
605 fn.glIsEnabledFn = 1098 fn.glIsEnabledFn =
606 reinterpret_cast<glIsEnabledProc>(GetGLProcAddress("glIsEnabled")); 1099 reinterpret_cast<glIsEnabledProc>(GetGLProcAddress("glIsEnabled"));
607 fn.glIsFenceAPPLEFn = 1100 fn.glIsFenceAPPLEFn =
608 reinterpret_cast<glIsFenceAPPLEProc>(GetGLProcAddress("glIsFenceAPPLE")); 1101 reinterpret_cast<glIsFenceAPPLEProc>(glIsFenceAPPLENotBound);
609 fn.glIsFenceNVFn = 1102 fn.glIsFenceNVFn = reinterpret_cast<glIsFenceNVProc>(glIsFenceNVNotBound);
610 reinterpret_cast<glIsFenceNVProc>(GetGLProcAddress("glIsFenceNV")); 1103 fn.glIsFramebufferEXTFn = reinterpret_cast<glIsFramebufferEXTProc>(
611 fn.glIsFramebufferEXTFn = 1104 GetGLProcAddress("glIsFramebufferEXT"));
612 reinterpret_cast<glIsFramebufferEXTProc>(glIsFramebufferEXTNotBound);
613 fn.glIsProgramFn = 1105 fn.glIsProgramFn =
614 reinterpret_cast<glIsProgramProc>(GetGLProcAddress("glIsProgram")); 1106 reinterpret_cast<glIsProgramProc>(GetGLProcAddress("glIsProgram"));
615 fn.glIsQueryFn = 1107 fn.glIsQueryFn = reinterpret_cast<glIsQueryProc>(glIsQueryNotBound);
616 reinterpret_cast<glIsQueryProc>(GetGLProcAddress("glIsQuery"));
617 fn.glIsQueryARBFn = reinterpret_cast<glIsQueryARBProc>(glIsQueryARBNotBound); 1108 fn.glIsQueryARBFn = reinterpret_cast<glIsQueryARBProc>(glIsQueryARBNotBound);
618 fn.glIsRenderbufferEXTFn = 1109 fn.glIsRenderbufferEXTFn = reinterpret_cast<glIsRenderbufferEXTProc>(
619 reinterpret_cast<glIsRenderbufferEXTProc>(glIsRenderbufferEXTNotBound); 1110 GetGLProcAddress("glIsRenderbufferEXT"));
620 fn.glIsSamplerFn = 1111 fn.glIsSamplerFn = reinterpret_cast<glIsSamplerProc>(glIsSamplerNotBound);
621 reinterpret_cast<glIsSamplerProc>(GetGLProcAddress("glIsSampler"));
622 fn.glIsShaderFn = 1112 fn.glIsShaderFn =
623 reinterpret_cast<glIsShaderProc>(GetGLProcAddress("glIsShader")); 1113 reinterpret_cast<glIsShaderProc>(GetGLProcAddress("glIsShader"));
624 fn.glIsSyncFn = reinterpret_cast<glIsSyncProc>(GetGLProcAddress("glIsSync")); 1114 fn.glIsSyncFn = reinterpret_cast<glIsSyncProc>(glIsSyncNotBound);
625 fn.glIsTextureFn = 1115 fn.glIsTextureFn =
626 reinterpret_cast<glIsTextureProc>(GetGLProcAddress("glIsTexture")); 1116 reinterpret_cast<glIsTextureProc>(GetGLProcAddress("glIsTexture"));
627 fn.glIsTransformFeedbackFn = reinterpret_cast<glIsTransformFeedbackProc>( 1117 fn.glIsTransformFeedbackFn = reinterpret_cast<glIsTransformFeedbackProc>(
628 GetGLProcAddress("glIsTransformFeedback")); 1118 glIsTransformFeedbackNotBound);
629 fn.glIsVertexArrayOESFn = 1119 fn.glIsVertexArrayOESFn =
630 reinterpret_cast<glIsVertexArrayOESProc>(glIsVertexArrayOESNotBound); 1120 reinterpret_cast<glIsVertexArrayOESProc>(glIsVertexArrayOESNotBound);
631 fn.glLineWidthFn = 1121 fn.glLineWidthFn =
632 reinterpret_cast<glLineWidthProc>(GetGLProcAddress("glLineWidth")); 1122 reinterpret_cast<glLineWidthProc>(GetGLProcAddress("glLineWidth"));
633 fn.glLinkProgramFn = 1123 fn.glLinkProgramFn =
634 reinterpret_cast<glLinkProgramProc>(GetGLProcAddress("glLinkProgram")); 1124 reinterpret_cast<glLinkProgramProc>(GetGLProcAddress("glLinkProgram"));
635 fn.glMapBufferFn = reinterpret_cast<glMapBufferProc>(glMapBufferNotBound); 1125 fn.glMapBufferFn = reinterpret_cast<glMapBufferProc>(glMapBufferNotBound);
636 fn.glMapBufferRangeFn = 1126 fn.glMapBufferRangeFn =
637 reinterpret_cast<glMapBufferRangeProc>(glMapBufferRangeNotBound); 1127 reinterpret_cast<glMapBufferRangeProc>(glMapBufferRangeNotBound);
638 fn.glMatrixLoadfEXTFn = reinterpret_cast<glMatrixLoadfEXTProc>( 1128 fn.glMatrixLoadfEXTFn =
639 GetGLProcAddress("glMatrixLoadfEXT")); 1129 reinterpret_cast<glMatrixLoadfEXTProc>(glMatrixLoadfEXTNotBound);
640 fn.glMatrixLoadIdentityEXTFn = reinterpret_cast<glMatrixLoadIdentityEXTProc>( 1130 fn.glMatrixLoadIdentityEXTFn = reinterpret_cast<glMatrixLoadIdentityEXTProc>(
641 GetGLProcAddress("glMatrixLoadIdentityEXT")); 1131 glMatrixLoadIdentityEXTNotBound);
642 fn.glPauseTransformFeedbackFn = 1132 fn.glPauseTransformFeedbackFn =
643 reinterpret_cast<glPauseTransformFeedbackProc>( 1133 reinterpret_cast<glPauseTransformFeedbackProc>(
644 GetGLProcAddress("glPauseTransformFeedback")); 1134 glPauseTransformFeedbackNotBound);
645 fn.glPixelStoreiFn = 1135 fn.glPixelStoreiFn =
646 reinterpret_cast<glPixelStoreiProc>(GetGLProcAddress("glPixelStorei")); 1136 reinterpret_cast<glPixelStoreiProc>(GetGLProcAddress("glPixelStorei"));
647 fn.glPointParameteriFn = reinterpret_cast<glPointParameteriProc>( 1137 fn.glPointParameteriFn =
648 GetGLProcAddress("glPointParameteri")); 1138 reinterpret_cast<glPointParameteriProc>(glPointParameteriNotBound);
649 fn.glPolygonOffsetFn = reinterpret_cast<glPolygonOffsetProc>( 1139 fn.glPolygonOffsetFn = reinterpret_cast<glPolygonOffsetProc>(
650 GetGLProcAddress("glPolygonOffset")); 1140 GetGLProcAddress("glPolygonOffset"));
651 fn.glPopGroupMarkerEXTFn = reinterpret_cast<glPopGroupMarkerEXTProc>( 1141 fn.glPopGroupMarkerEXTFn =
652 GetGLProcAddress("glPopGroupMarkerEXT")); 1142 reinterpret_cast<glPopGroupMarkerEXTProc>(glPopGroupMarkerEXTNotBound);
653 fn.glProgramBinaryFn = 1143 fn.glProgramBinaryFn =
654 reinterpret_cast<glProgramBinaryProc>(glProgramBinaryNotBound); 1144 reinterpret_cast<glProgramBinaryProc>(glProgramBinaryNotBound);
655 fn.glProgramParameteriFn = reinterpret_cast<glProgramParameteriProc>( 1145 fn.glProgramParameteriFn =
656 GetGLProcAddress("glProgramParameteri")); 1146 reinterpret_cast<glProgramParameteriProc>(glProgramParameteriNotBound);
657 fn.glPushGroupMarkerEXTFn = reinterpret_cast<glPushGroupMarkerEXTProc>( 1147 fn.glPushGroupMarkerEXTFn =
658 GetGLProcAddress("glPushGroupMarkerEXT")); 1148 reinterpret_cast<glPushGroupMarkerEXTProc>(glPushGroupMarkerEXTNotBound);
659 fn.glQueryCounterFn = 1149 fn.glQueryCounterFn =
660 reinterpret_cast<glQueryCounterProc>(glQueryCounterNotBound); 1150 reinterpret_cast<glQueryCounterProc>(glQueryCounterNotBound);
661 fn.glReadBufferFn = 1151 fn.glReadBufferFn = reinterpret_cast<glReadBufferProc>(glReadBufferNotBound);
662 reinterpret_cast<glReadBufferProc>(GetGLProcAddress("glReadBuffer"));
663 fn.glReadPixelsFn = 1152 fn.glReadPixelsFn =
664 reinterpret_cast<glReadPixelsProc>(GetGLProcAddress("glReadPixels")); 1153 reinterpret_cast<glReadPixelsProc>(GetGLProcAddress("glReadPixels"));
665 fn.glReleaseShaderCompilerFn = reinterpret_cast<glReleaseShaderCompilerProc>( 1154 fn.glReleaseShaderCompilerFn = reinterpret_cast<glReleaseShaderCompilerProc>(
666 GetGLProcAddress("glReleaseShaderCompiler")); 1155 glReleaseShaderCompilerNotBound);
667 fn.glRenderbufferStorageEXTFn = 1156 fn.glRenderbufferStorageEXTFn =
668 reinterpret_cast<glRenderbufferStorageEXTProc>( 1157 reinterpret_cast<glRenderbufferStorageEXTProc>(
669 glRenderbufferStorageEXTNotBound); 1158 GetGLProcAddress("glRenderbufferStorageEXT"));
670 fn.glRenderbufferStorageMultisampleFn = 1159 fn.glRenderbufferStorageMultisampleFn =
671 reinterpret_cast<glRenderbufferStorageMultisampleProc>( 1160 reinterpret_cast<glRenderbufferStorageMultisampleProc>(
672 GetGLProcAddress("glRenderbufferStorageMultisample")); 1161 glRenderbufferStorageMultisampleNotBound);
673 fn.glRenderbufferStorageMultisampleANGLEFn = 1162 fn.glRenderbufferStorageMultisampleANGLEFn =
674 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>( 1163 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>(
675 glRenderbufferStorageMultisampleANGLENotBound); 1164 glRenderbufferStorageMultisampleANGLENotBound);
676 fn.glRenderbufferStorageMultisampleEXTFn = 1165 fn.glRenderbufferStorageMultisampleEXTFn =
677 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>( 1166 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>(
678 glRenderbufferStorageMultisampleEXTNotBound); 1167 glRenderbufferStorageMultisampleEXTNotBound);
679 fn.glRenderbufferStorageMultisampleIMGFn = 1168 fn.glRenderbufferStorageMultisampleIMGFn =
680 reinterpret_cast<glRenderbufferStorageMultisampleIMGProc>( 1169 reinterpret_cast<glRenderbufferStorageMultisampleIMGProc>(
681 GetGLProcAddress("glRenderbufferStorageMultisampleIMG")); 1170 glRenderbufferStorageMultisampleIMGNotBound);
682 fn.glResumeTransformFeedbackFn = 1171 fn.glResumeTransformFeedbackFn =
683 reinterpret_cast<glResumeTransformFeedbackProc>( 1172 reinterpret_cast<glResumeTransformFeedbackProc>(
684 GetGLProcAddress("glResumeTransformFeedback")); 1173 glResumeTransformFeedbackNotBound);
685 fn.glSampleCoverageFn = reinterpret_cast<glSampleCoverageProc>( 1174 fn.glSampleCoverageFn = reinterpret_cast<glSampleCoverageProc>(
686 GetGLProcAddress("glSampleCoverage")); 1175 GetGLProcAddress("glSampleCoverage"));
687 fn.glSamplerParameterfFn = reinterpret_cast<glSamplerParameterfProc>( 1176 fn.glSamplerParameterfFn =
688 GetGLProcAddress("glSamplerParameterf")); 1177 reinterpret_cast<glSamplerParameterfProc>(glSamplerParameterfNotBound);
689 fn.glSamplerParameterfvFn = reinterpret_cast<glSamplerParameterfvProc>( 1178 fn.glSamplerParameterfvFn =
690 GetGLProcAddress("glSamplerParameterfv")); 1179 reinterpret_cast<glSamplerParameterfvProc>(glSamplerParameterfvNotBound);
691 fn.glSamplerParameteriFn = reinterpret_cast<glSamplerParameteriProc>( 1180 fn.glSamplerParameteriFn =
692 GetGLProcAddress("glSamplerParameteri")); 1181 reinterpret_cast<glSamplerParameteriProc>(glSamplerParameteriNotBound);
693 fn.glSamplerParameterivFn = reinterpret_cast<glSamplerParameterivProc>( 1182 fn.glSamplerParameterivFn =
694 GetGLProcAddress("glSamplerParameteriv")); 1183 reinterpret_cast<glSamplerParameterivProc>(glSamplerParameterivNotBound);
695 fn.glScissorFn = 1184 fn.glScissorFn =
696 reinterpret_cast<glScissorProc>(GetGLProcAddress("glScissor")); 1185 reinterpret_cast<glScissorProc>(GetGLProcAddress("glScissor"));
697 fn.glSetFenceAPPLEFn = reinterpret_cast<glSetFenceAPPLEProc>( 1186 fn.glSetFenceAPPLEFn =
698 GetGLProcAddress("glSetFenceAPPLE")); 1187 reinterpret_cast<glSetFenceAPPLEProc>(glSetFenceAPPLENotBound);
699 fn.glSetFenceNVFn = 1188 fn.glSetFenceNVFn = reinterpret_cast<glSetFenceNVProc>(glSetFenceNVNotBound);
700 reinterpret_cast<glSetFenceNVProc>(GetGLProcAddress("glSetFenceNV"));
701 fn.glShaderBinaryFn = 1189 fn.glShaderBinaryFn =
702 reinterpret_cast<glShaderBinaryProc>(GetGLProcAddress("glShaderBinary")); 1190 reinterpret_cast<glShaderBinaryProc>(glShaderBinaryNotBound);
703 fn.glShaderSourceFn = 1191 fn.glShaderSourceFn =
704 reinterpret_cast<glShaderSourceProc>(GetGLProcAddress("glShaderSource")); 1192 reinterpret_cast<glShaderSourceProc>(GetGLProcAddress("glShaderSource"));
705 fn.glStencilFuncFn = 1193 fn.glStencilFuncFn =
706 reinterpret_cast<glStencilFuncProc>(GetGLProcAddress("glStencilFunc")); 1194 reinterpret_cast<glStencilFuncProc>(GetGLProcAddress("glStencilFunc"));
707 fn.glStencilFuncSeparateFn = reinterpret_cast<glStencilFuncSeparateProc>( 1195 fn.glStencilFuncSeparateFn = reinterpret_cast<glStencilFuncSeparateProc>(
708 GetGLProcAddress("glStencilFuncSeparate")); 1196 GetGLProcAddress("glStencilFuncSeparate"));
709 fn.glStencilMaskFn = 1197 fn.glStencilMaskFn =
710 reinterpret_cast<glStencilMaskProc>(GetGLProcAddress("glStencilMask")); 1198 reinterpret_cast<glStencilMaskProc>(GetGLProcAddress("glStencilMask"));
711 fn.glStencilMaskSeparateFn = reinterpret_cast<glStencilMaskSeparateProc>( 1199 fn.glStencilMaskSeparateFn = reinterpret_cast<glStencilMaskSeparateProc>(
712 GetGLProcAddress("glStencilMaskSeparate")); 1200 GetGLProcAddress("glStencilMaskSeparate"));
713 fn.glStencilOpFn = 1201 fn.glStencilOpFn =
714 reinterpret_cast<glStencilOpProc>(GetGLProcAddress("glStencilOp")); 1202 reinterpret_cast<glStencilOpProc>(GetGLProcAddress("glStencilOp"));
715 fn.glStencilOpSeparateFn = reinterpret_cast<glStencilOpSeparateProc>( 1203 fn.glStencilOpSeparateFn = reinterpret_cast<glStencilOpSeparateProc>(
716 GetGLProcAddress("glStencilOpSeparate")); 1204 GetGLProcAddress("glStencilOpSeparate"));
717 fn.glTestFenceAPPLEFn = reinterpret_cast<glTestFenceAPPLEProc>( 1205 fn.glTestFenceAPPLEFn =
718 GetGLProcAddress("glTestFenceAPPLE")); 1206 reinterpret_cast<glTestFenceAPPLEProc>(glTestFenceAPPLENotBound);
719 fn.glTestFenceNVFn = 1207 fn.glTestFenceNVFn =
720 reinterpret_cast<glTestFenceNVProc>(GetGLProcAddress("glTestFenceNV")); 1208 reinterpret_cast<glTestFenceNVProc>(glTestFenceNVNotBound);
721 fn.glTexImage2DFn = 1209 fn.glTexImage2DFn =
722 reinterpret_cast<glTexImage2DProc>(GetGLProcAddress("glTexImage2D")); 1210 reinterpret_cast<glTexImage2DProc>(GetGLProcAddress("glTexImage2D"));
723 fn.glTexImage3DFn = 1211 fn.glTexImage3DFn = reinterpret_cast<glTexImage3DProc>(glTexImage3DNotBound);
724 reinterpret_cast<glTexImage3DProc>(GetGLProcAddress("glTexImage3D"));
725 fn.glTexParameterfFn = reinterpret_cast<glTexParameterfProc>( 1212 fn.glTexParameterfFn = reinterpret_cast<glTexParameterfProc>(
726 GetGLProcAddress("glTexParameterf")); 1213 GetGLProcAddress("glTexParameterf"));
727 fn.glTexParameterfvFn = reinterpret_cast<glTexParameterfvProc>( 1214 fn.glTexParameterfvFn = reinterpret_cast<glTexParameterfvProc>(
728 GetGLProcAddress("glTexParameterfv")); 1215 GetGLProcAddress("glTexParameterfv"));
729 fn.glTexParameteriFn = reinterpret_cast<glTexParameteriProc>( 1216 fn.glTexParameteriFn = reinterpret_cast<glTexParameteriProc>(
730 GetGLProcAddress("glTexParameteri")); 1217 GetGLProcAddress("glTexParameteri"));
731 fn.glTexParameterivFn = reinterpret_cast<glTexParameterivProc>( 1218 fn.glTexParameterivFn = reinterpret_cast<glTexParameterivProc>(
732 GetGLProcAddress("glTexParameteriv")); 1219 GetGLProcAddress("glTexParameteriv"));
733 fn.glTexStorage2DEXTFn = 1220 fn.glTexStorage2DEXTFn =
734 reinterpret_cast<glTexStorage2DEXTProc>(glTexStorage2DEXTNotBound); 1221 reinterpret_cast<glTexStorage2DEXTProc>(glTexStorage2DEXTNotBound);
735 fn.glTexStorage3DFn = 1222 fn.glTexStorage3DFn =
736 reinterpret_cast<glTexStorage3DProc>(GetGLProcAddress("glTexStorage3D")); 1223 reinterpret_cast<glTexStorage3DProc>(glTexStorage3DNotBound);
737 fn.glTexSubImage2DFn = reinterpret_cast<glTexSubImage2DProc>( 1224 fn.glTexSubImage2DFn = reinterpret_cast<glTexSubImage2DProc>(
738 GetGLProcAddress("glTexSubImage2D")); 1225 GetGLProcAddress("glTexSubImage2D"));
739 fn.glTransformFeedbackVaryingsFn = 1226 fn.glTransformFeedbackVaryingsFn =
740 reinterpret_cast<glTransformFeedbackVaryingsProc>( 1227 reinterpret_cast<glTransformFeedbackVaryingsProc>(
741 GetGLProcAddress("glTransformFeedbackVaryings")); 1228 glTransformFeedbackVaryingsNotBound);
742 fn.glUniform1fFn = 1229 fn.glUniform1fFn =
743 reinterpret_cast<glUniform1fProc>(GetGLProcAddress("glUniform1f")); 1230 reinterpret_cast<glUniform1fProc>(GetGLProcAddress("glUniform1f"));
744 fn.glUniform1fvFn = 1231 fn.glUniform1fvFn =
745 reinterpret_cast<glUniform1fvProc>(GetGLProcAddress("glUniform1fv")); 1232 reinterpret_cast<glUniform1fvProc>(GetGLProcAddress("glUniform1fv"));
746 fn.glUniform1iFn = 1233 fn.glUniform1iFn =
747 reinterpret_cast<glUniform1iProc>(GetGLProcAddress("glUniform1i")); 1234 reinterpret_cast<glUniform1iProc>(GetGLProcAddress("glUniform1i"));
748 fn.glUniform1ivFn = 1235 fn.glUniform1ivFn =
749 reinterpret_cast<glUniform1ivProc>(GetGLProcAddress("glUniform1iv")); 1236 reinterpret_cast<glUniform1ivProc>(GetGLProcAddress("glUniform1iv"));
750 fn.glUniform1uiFn = 1237 fn.glUniform1uiFn = reinterpret_cast<glUniform1uiProc>(glUniform1uiNotBound);
751 reinterpret_cast<glUniform1uiProc>(GetGLProcAddress("glUniform1ui"));
752 fn.glUniform1uivFn = 1238 fn.glUniform1uivFn =
753 reinterpret_cast<glUniform1uivProc>(GetGLProcAddress("glUniform1uiv")); 1239 reinterpret_cast<glUniform1uivProc>(glUniform1uivNotBound);
754 fn.glUniform2fFn = 1240 fn.glUniform2fFn =
755 reinterpret_cast<glUniform2fProc>(GetGLProcAddress("glUniform2f")); 1241 reinterpret_cast<glUniform2fProc>(GetGLProcAddress("glUniform2f"));
756 fn.glUniform2fvFn = 1242 fn.glUniform2fvFn =
757 reinterpret_cast<glUniform2fvProc>(GetGLProcAddress("glUniform2fv")); 1243 reinterpret_cast<glUniform2fvProc>(GetGLProcAddress("glUniform2fv"));
758 fn.glUniform2iFn = 1244 fn.glUniform2iFn =
759 reinterpret_cast<glUniform2iProc>(GetGLProcAddress("glUniform2i")); 1245 reinterpret_cast<glUniform2iProc>(GetGLProcAddress("glUniform2i"));
760 fn.glUniform2ivFn = 1246 fn.glUniform2ivFn =
761 reinterpret_cast<glUniform2ivProc>(GetGLProcAddress("glUniform2iv")); 1247 reinterpret_cast<glUniform2ivProc>(GetGLProcAddress("glUniform2iv"));
762 fn.glUniform2uiFn = 1248 fn.glUniform2uiFn = reinterpret_cast<glUniform2uiProc>(glUniform2uiNotBound);
763 reinterpret_cast<glUniform2uiProc>(GetGLProcAddress("glUniform2ui"));
764 fn.glUniform2uivFn = 1249 fn.glUniform2uivFn =
765 reinterpret_cast<glUniform2uivProc>(GetGLProcAddress("glUniform2uiv")); 1250 reinterpret_cast<glUniform2uivProc>(glUniform2uivNotBound);
766 fn.glUniform3fFn = 1251 fn.glUniform3fFn =
767 reinterpret_cast<glUniform3fProc>(GetGLProcAddress("glUniform3f")); 1252 reinterpret_cast<glUniform3fProc>(GetGLProcAddress("glUniform3f"));
768 fn.glUniform3fvFn = 1253 fn.glUniform3fvFn =
769 reinterpret_cast<glUniform3fvProc>(GetGLProcAddress("glUniform3fv")); 1254 reinterpret_cast<glUniform3fvProc>(GetGLProcAddress("glUniform3fv"));
770 fn.glUniform3iFn = 1255 fn.glUniform3iFn =
771 reinterpret_cast<glUniform3iProc>(GetGLProcAddress("glUniform3i")); 1256 reinterpret_cast<glUniform3iProc>(GetGLProcAddress("glUniform3i"));
772 fn.glUniform3ivFn = 1257 fn.glUniform3ivFn =
773 reinterpret_cast<glUniform3ivProc>(GetGLProcAddress("glUniform3iv")); 1258 reinterpret_cast<glUniform3ivProc>(GetGLProcAddress("glUniform3iv"));
774 fn.glUniform3uiFn = 1259 fn.glUniform3uiFn = reinterpret_cast<glUniform3uiProc>(glUniform3uiNotBound);
775 reinterpret_cast<glUniform3uiProc>(GetGLProcAddress("glUniform3ui"));
776 fn.glUniform3uivFn = 1260 fn.glUniform3uivFn =
777 reinterpret_cast<glUniform3uivProc>(GetGLProcAddress("glUniform3uiv")); 1261 reinterpret_cast<glUniform3uivProc>(glUniform3uivNotBound);
778 fn.glUniform4fFn = 1262 fn.glUniform4fFn =
779 reinterpret_cast<glUniform4fProc>(GetGLProcAddress("glUniform4f")); 1263 reinterpret_cast<glUniform4fProc>(GetGLProcAddress("glUniform4f"));
780 fn.glUniform4fvFn = 1264 fn.glUniform4fvFn =
781 reinterpret_cast<glUniform4fvProc>(GetGLProcAddress("glUniform4fv")); 1265 reinterpret_cast<glUniform4fvProc>(GetGLProcAddress("glUniform4fv"));
782 fn.glUniform4iFn = 1266 fn.glUniform4iFn =
783 reinterpret_cast<glUniform4iProc>(GetGLProcAddress("glUniform4i")); 1267 reinterpret_cast<glUniform4iProc>(GetGLProcAddress("glUniform4i"));
784 fn.glUniform4ivFn = 1268 fn.glUniform4ivFn =
785 reinterpret_cast<glUniform4ivProc>(GetGLProcAddress("glUniform4iv")); 1269 reinterpret_cast<glUniform4ivProc>(GetGLProcAddress("glUniform4iv"));
786 fn.glUniform4uiFn = 1270 fn.glUniform4uiFn = reinterpret_cast<glUniform4uiProc>(glUniform4uiNotBound);
787 reinterpret_cast<glUniform4uiProc>(GetGLProcAddress("glUniform4ui"));
788 fn.glUniform4uivFn = 1271 fn.glUniform4uivFn =
789 reinterpret_cast<glUniform4uivProc>(GetGLProcAddress("glUniform4uiv")); 1272 reinterpret_cast<glUniform4uivProc>(glUniform4uivNotBound);
790 fn.glUniformBlockBindingFn = reinterpret_cast<glUniformBlockBindingProc>( 1273 fn.glUniformBlockBindingFn = reinterpret_cast<glUniformBlockBindingProc>(
791 GetGLProcAddress("glUniformBlockBinding")); 1274 glUniformBlockBindingNotBound);
792 fn.glUniformMatrix2fvFn = reinterpret_cast<glUniformMatrix2fvProc>( 1275 fn.glUniformMatrix2fvFn = reinterpret_cast<glUniformMatrix2fvProc>(
793 GetGLProcAddress("glUniformMatrix2fv")); 1276 GetGLProcAddress("glUniformMatrix2fv"));
794 fn.glUniformMatrix2x3fvFn = reinterpret_cast<glUniformMatrix2x3fvProc>( 1277 fn.glUniformMatrix2x3fvFn =
795 GetGLProcAddress("glUniformMatrix2x3fv")); 1278 reinterpret_cast<glUniformMatrix2x3fvProc>(glUniformMatrix2x3fvNotBound);
796 fn.glUniformMatrix2x4fvFn = reinterpret_cast<glUniformMatrix2x4fvProc>( 1279 fn.glUniformMatrix2x4fvFn =
797 GetGLProcAddress("glUniformMatrix2x4fv")); 1280 reinterpret_cast<glUniformMatrix2x4fvProc>(glUniformMatrix2x4fvNotBound);
798 fn.glUniformMatrix3fvFn = reinterpret_cast<glUniformMatrix3fvProc>( 1281 fn.glUniformMatrix3fvFn = reinterpret_cast<glUniformMatrix3fvProc>(
799 GetGLProcAddress("glUniformMatrix3fv")); 1282 GetGLProcAddress("glUniformMatrix3fv"));
800 fn.glUniformMatrix3x2fvFn = reinterpret_cast<glUniformMatrix3x2fvProc>( 1283 fn.glUniformMatrix3x2fvFn =
801 GetGLProcAddress("glUniformMatrix3x2fv")); 1284 reinterpret_cast<glUniformMatrix3x2fvProc>(glUniformMatrix3x2fvNotBound);
802 fn.glUniformMatrix3x4fvFn = reinterpret_cast<glUniformMatrix3x4fvProc>( 1285 fn.glUniformMatrix3x4fvFn =
803 GetGLProcAddress("glUniformMatrix3x4fv")); 1286 reinterpret_cast<glUniformMatrix3x4fvProc>(glUniformMatrix3x4fvNotBound);
804 fn.glUniformMatrix4fvFn = reinterpret_cast<glUniformMatrix4fvProc>( 1287 fn.glUniformMatrix4fvFn = reinterpret_cast<glUniformMatrix4fvProc>(
805 GetGLProcAddress("glUniformMatrix4fv")); 1288 GetGLProcAddress("glUniformMatrix4fv"));
806 fn.glUniformMatrix4x2fvFn = reinterpret_cast<glUniformMatrix4x2fvProc>( 1289 fn.glUniformMatrix4x2fvFn =
807 GetGLProcAddress("glUniformMatrix4x2fv")); 1290 reinterpret_cast<glUniformMatrix4x2fvProc>(glUniformMatrix4x2fvNotBound);
808 fn.glUniformMatrix4x3fvFn = reinterpret_cast<glUniformMatrix4x3fvProc>( 1291 fn.glUniformMatrix4x3fvFn =
809 GetGLProcAddress("glUniformMatrix4x3fv")); 1292 reinterpret_cast<glUniformMatrix4x3fvProc>(glUniformMatrix4x3fvNotBound);
810 fn.glUnmapBufferFn = 1293 fn.glUnmapBufferFn =
811 reinterpret_cast<glUnmapBufferProc>(glUnmapBufferNotBound); 1294 reinterpret_cast<glUnmapBufferProc>(glUnmapBufferNotBound);
812 fn.glUseProgramFn = 1295 fn.glUseProgramFn =
813 reinterpret_cast<glUseProgramProc>(GetGLProcAddress("glUseProgram")); 1296 reinterpret_cast<glUseProgramProc>(GetGLProcAddress("glUseProgram"));
814 fn.glValidateProgramFn = reinterpret_cast<glValidateProgramProc>( 1297 fn.glValidateProgramFn = reinterpret_cast<glValidateProgramProc>(
815 GetGLProcAddress("glValidateProgram")); 1298 GetGLProcAddress("glValidateProgram"));
816 fn.glVertexAttrib1fFn = reinterpret_cast<glVertexAttrib1fProc>( 1299 fn.glVertexAttrib1fFn = reinterpret_cast<glVertexAttrib1fProc>(
817 GetGLProcAddress("glVertexAttrib1f")); 1300 GetGLProcAddress("glVertexAttrib1f"));
818 fn.glVertexAttrib1fvFn = reinterpret_cast<glVertexAttrib1fvProc>( 1301 fn.glVertexAttrib1fvFn = reinterpret_cast<glVertexAttrib1fvProc>(
819 GetGLProcAddress("glVertexAttrib1fv")); 1302 GetGLProcAddress("glVertexAttrib1fv"));
820 fn.glVertexAttrib2fFn = reinterpret_cast<glVertexAttrib2fProc>( 1303 fn.glVertexAttrib2fFn = reinterpret_cast<glVertexAttrib2fProc>(
821 GetGLProcAddress("glVertexAttrib2f")); 1304 GetGLProcAddress("glVertexAttrib2f"));
822 fn.glVertexAttrib2fvFn = reinterpret_cast<glVertexAttrib2fvProc>( 1305 fn.glVertexAttrib2fvFn = reinterpret_cast<glVertexAttrib2fvProc>(
823 GetGLProcAddress("glVertexAttrib2fv")); 1306 GetGLProcAddress("glVertexAttrib2fv"));
824 fn.glVertexAttrib3fFn = reinterpret_cast<glVertexAttrib3fProc>( 1307 fn.glVertexAttrib3fFn = reinterpret_cast<glVertexAttrib3fProc>(
825 GetGLProcAddress("glVertexAttrib3f")); 1308 GetGLProcAddress("glVertexAttrib3f"));
826 fn.glVertexAttrib3fvFn = reinterpret_cast<glVertexAttrib3fvProc>( 1309 fn.glVertexAttrib3fvFn = reinterpret_cast<glVertexAttrib3fvProc>(
827 GetGLProcAddress("glVertexAttrib3fv")); 1310 GetGLProcAddress("glVertexAttrib3fv"));
828 fn.glVertexAttrib4fFn = reinterpret_cast<glVertexAttrib4fProc>( 1311 fn.glVertexAttrib4fFn = reinterpret_cast<glVertexAttrib4fProc>(
829 GetGLProcAddress("glVertexAttrib4f")); 1312 GetGLProcAddress("glVertexAttrib4f"));
830 fn.glVertexAttrib4fvFn = reinterpret_cast<glVertexAttrib4fvProc>( 1313 fn.glVertexAttrib4fvFn = reinterpret_cast<glVertexAttrib4fvProc>(
831 GetGLProcAddress("glVertexAttrib4fv")); 1314 GetGLProcAddress("glVertexAttrib4fv"));
832 fn.glVertexAttribDivisorANGLEFn = 1315 fn.glVertexAttribDivisorANGLEFn =
833 reinterpret_cast<glVertexAttribDivisorANGLEProc>( 1316 reinterpret_cast<glVertexAttribDivisorANGLEProc>(
834 glVertexAttribDivisorANGLENotBound); 1317 glVertexAttribDivisorANGLENotBound);
835 fn.glVertexAttribI4iFn = reinterpret_cast<glVertexAttribI4iProc>( 1318 fn.glVertexAttribI4iFn =
836 GetGLProcAddress("glVertexAttribI4i")); 1319 reinterpret_cast<glVertexAttribI4iProc>(glVertexAttribI4iNotBound);
837 fn.glVertexAttribI4ivFn = reinterpret_cast<glVertexAttribI4ivProc>( 1320 fn.glVertexAttribI4ivFn =
838 GetGLProcAddress("glVertexAttribI4iv")); 1321 reinterpret_cast<glVertexAttribI4ivProc>(glVertexAttribI4ivNotBound);
839 fn.glVertexAttribI4uiFn = reinterpret_cast<glVertexAttribI4uiProc>( 1322 fn.glVertexAttribI4uiFn =
840 GetGLProcAddress("glVertexAttribI4ui")); 1323 reinterpret_cast<glVertexAttribI4uiProc>(glVertexAttribI4uiNotBound);
841 fn.glVertexAttribI4uivFn = reinterpret_cast<glVertexAttribI4uivProc>( 1324 fn.glVertexAttribI4uivFn =
842 GetGLProcAddress("glVertexAttribI4uiv")); 1325 reinterpret_cast<glVertexAttribI4uivProc>(glVertexAttribI4uivNotBound);
843 fn.glVertexAttribIPointerFn = reinterpret_cast<glVertexAttribIPointerProc>( 1326 fn.glVertexAttribIPointerFn = reinterpret_cast<glVertexAttribIPointerProc>(
844 GetGLProcAddress("glVertexAttribIPointer")); 1327 glVertexAttribIPointerNotBound);
845 fn.glVertexAttribPointerFn = reinterpret_cast<glVertexAttribPointerProc>( 1328 fn.glVertexAttribPointerFn = reinterpret_cast<glVertexAttribPointerProc>(
846 GetGLProcAddress("glVertexAttribPointer")); 1329 GetGLProcAddress("glVertexAttribPointer"));
847 fn.glViewportFn = 1330 fn.glViewportFn =
848 reinterpret_cast<glViewportProc>(GetGLProcAddress("glViewport")); 1331 reinterpret_cast<glViewportProc>(GetGLProcAddress("glViewport"));
849 fn.glWaitSyncFn = 1332 fn.glWaitSyncFn = reinterpret_cast<glWaitSyncProc>(glWaitSyncNotBound);
850 reinterpret_cast<glWaitSyncProc>(GetGLProcAddress("glWaitSync"));
851 } 1333 }
852 1334
853 void DriverGL::InitializeDynamicBindings(GLContext* context) { 1335 void DriverGL::InitializeDynamicBindings(GLContext* context) {
854 DCHECK(context && context->IsCurrent(NULL)); 1336 DCHECK(context && context->IsCurrent(NULL));
855 const GLVersionInfo* ver = context->GetVersionInfo(); 1337 const GLVersionInfo* ver = context->GetVersionInfo();
856 ALLOW_UNUSED_LOCAL(ver); 1338 ALLOW_UNUSED_LOCAL(ver);
857 std::string extensions = context->GetExtensions() + " "; 1339 std::string extensions = context->GetExtensions() + " ";
858 ALLOW_UNUSED_LOCAL(extensions); 1340 ALLOW_UNUSED_LOCAL(extensions);
859 1341
860 ext.b_GL_ANGLE_framebuffer_blit = 1342 ext.b_GL_ANGLE_framebuffer_blit =
861 extensions.find("GL_ANGLE_framebuffer_blit ") != std::string::npos; 1343 extensions.find("GL_ANGLE_framebuffer_blit ") != std::string::npos;
862 ext.b_GL_ANGLE_framebuffer_multisample = 1344 ext.b_GL_ANGLE_framebuffer_multisample =
863 extensions.find("GL_ANGLE_framebuffer_multisample ") != std::string::npos; 1345 extensions.find("GL_ANGLE_framebuffer_multisample ") != std::string::npos;
864 ext.b_GL_ANGLE_instanced_arrays = 1346 ext.b_GL_ANGLE_instanced_arrays =
865 extensions.find("GL_ANGLE_instanced_arrays ") != std::string::npos; 1347 extensions.find("GL_ANGLE_instanced_arrays ") != std::string::npos;
866 ext.b_GL_ANGLE_translated_shader_source = 1348 ext.b_GL_ANGLE_translated_shader_source =
867 extensions.find("GL_ANGLE_translated_shader_source ") != 1349 extensions.find("GL_ANGLE_translated_shader_source ") !=
868 std::string::npos; 1350 std::string::npos;
869 ext.b_GL_APPLE_fence = 1351 ext.b_GL_APPLE_fence =
870 extensions.find("GL_APPLE_fence ") != std::string::npos; 1352 extensions.find("GL_APPLE_fence ") != std::string::npos;
871 ext.b_GL_APPLE_vertex_array_object = 1353 ext.b_GL_APPLE_vertex_array_object =
872 extensions.find("GL_APPLE_vertex_array_object ") != std::string::npos; 1354 extensions.find("GL_APPLE_vertex_array_object ") != std::string::npos;
873 ext.b_GL_ARB_ES2_compatibility =
874 extensions.find("GL_ARB_ES2_compatibility ") != std::string::npos;
875 ext.b_GL_ARB_blend_func_extended =
876 extensions.find("GL_ARB_blend_func_extended ") != std::string::npos;
877 ext.b_GL_ARB_copy_buffer =
878 extensions.find("GL_ARB_copy_buffer ") != std::string::npos;
879 ext.b_GL_ARB_draw_buffers = 1355 ext.b_GL_ARB_draw_buffers =
880 extensions.find("GL_ARB_draw_buffers ") != std::string::npos; 1356 extensions.find("GL_ARB_draw_buffers ") != std::string::npos;
881 ext.b_GL_ARB_draw_instanced = 1357 ext.b_GL_ARB_draw_instanced =
882 extensions.find("GL_ARB_draw_instanced ") != std::string::npos; 1358 extensions.find("GL_ARB_draw_instanced ") != std::string::npos;
883 ext.b_GL_ARB_framebuffer_object =
884 extensions.find("GL_ARB_framebuffer_object ") != std::string::npos;
885 ext.b_GL_ARB_get_program_binary = 1359 ext.b_GL_ARB_get_program_binary =
886 extensions.find("GL_ARB_get_program_binary ") != std::string::npos; 1360 extensions.find("GL_ARB_get_program_binary ") != std::string::npos;
887 ext.b_GL_ARB_instanced_arrays = 1361 ext.b_GL_ARB_instanced_arrays =
888 extensions.find("GL_ARB_instanced_arrays ") != std::string::npos; 1362 extensions.find("GL_ARB_instanced_arrays ") != std::string::npos;
889 ext.b_GL_ARB_internalformat_query =
890 extensions.find("GL_ARB_internalformat_query ") != std::string::npos;
891 ext.b_GL_ARB_invalidate_subdata =
892 extensions.find("GL_ARB_invalidate_subdata ") != std::string::npos;
893 ext.b_GL_ARB_map_buffer_range = 1363 ext.b_GL_ARB_map_buffer_range =
894 extensions.find("GL_ARB_map_buffer_range ") != std::string::npos; 1364 extensions.find("GL_ARB_map_buffer_range ") != std::string::npos;
895 ext.b_GL_ARB_occlusion_query = 1365 ext.b_GL_ARB_occlusion_query =
896 extensions.find("GL_ARB_occlusion_query ") != std::string::npos; 1366 extensions.find("GL_ARB_occlusion_query ") != std::string::npos;
897 ext.b_GL_ARB_robustness = 1367 ext.b_GL_ARB_robustness =
898 extensions.find("GL_ARB_robustness ") != std::string::npos; 1368 extensions.find("GL_ARB_robustness ") != std::string::npos;
899 ext.b_GL_ARB_sampler_objects =
900 extensions.find("GL_ARB_sampler_objects ") != std::string::npos;
901 ext.b_GL_ARB_sync = extensions.find("GL_ARB_sync ") != std::string::npos; 1369 ext.b_GL_ARB_sync = extensions.find("GL_ARB_sync ") != std::string::npos;
902 ext.b_GL_ARB_texture_storage = 1370 ext.b_GL_ARB_texture_storage =
903 extensions.find("GL_ARB_texture_storage ") != std::string::npos; 1371 extensions.find("GL_ARB_texture_storage ") != std::string::npos;
904 ext.b_GL_ARB_timer_query = 1372 ext.b_GL_ARB_timer_query =
905 extensions.find("GL_ARB_timer_query ") != std::string::npos; 1373 extensions.find("GL_ARB_timer_query ") != std::string::npos;
906 ext.b_GL_ARB_transform_feedback2 =
907 extensions.find("GL_ARB_transform_feedback2 ") != std::string::npos;
908 ext.b_GL_ARB_uniform_buffer_object =
909 extensions.find("GL_ARB_uniform_buffer_object ") != std::string::npos;
910 ext.b_GL_ARB_vertex_array_object = 1374 ext.b_GL_ARB_vertex_array_object =
911 extensions.find("GL_ARB_vertex_array_object ") != std::string::npos; 1375 extensions.find("GL_ARB_vertex_array_object ") != std::string::npos;
912 ext.b_GL_ARB_vertex_buffer_object = 1376 ext.b_GL_ARB_vertex_buffer_object =
913 extensions.find("GL_ARB_vertex_buffer_object ") != std::string::npos; 1377 extensions.find("GL_ARB_vertex_buffer_object ") != std::string::npos;
1378 ext.b_GL_CHROMIUM_gles_depth_binding_hack =
1379 extensions.find("GL_CHROMIUM_gles_depth_binding_hack ") !=
1380 std::string::npos;
914 ext.b_GL_EXT_debug_marker = 1381 ext.b_GL_EXT_debug_marker =
915 extensions.find("GL_EXT_debug_marker ") != std::string::npos; 1382 extensions.find("GL_EXT_debug_marker ") != std::string::npos;
916 ext.b_GL_EXT_direct_state_access = 1383 ext.b_GL_EXT_direct_state_access =
917 extensions.find("GL_EXT_direct_state_access ") != std::string::npos; 1384 extensions.find("GL_EXT_direct_state_access ") != std::string::npos;
918 ext.b_GL_EXT_discard_framebuffer = 1385 ext.b_GL_EXT_discard_framebuffer =
919 extensions.find("GL_EXT_discard_framebuffer ") != std::string::npos; 1386 extensions.find("GL_EXT_discard_framebuffer ") != std::string::npos;
920 ext.b_GL_EXT_disjoint_timer_query = 1387 ext.b_GL_EXT_disjoint_timer_query =
921 extensions.find("GL_EXT_disjoint_timer_query ") != std::string::npos; 1388 extensions.find("GL_EXT_disjoint_timer_query ") != std::string::npos;
922 ext.b_GL_EXT_draw_buffers = 1389 ext.b_GL_EXT_draw_buffers =
923 extensions.find("GL_EXT_draw_buffers ") != std::string::npos; 1390 extensions.find("GL_EXT_draw_buffers ") != std::string::npos;
924 ext.b_GL_EXT_framebuffer_blit = 1391 ext.b_GL_EXT_framebuffer_blit =
925 extensions.find("GL_EXT_framebuffer_blit ") != std::string::npos; 1392 extensions.find("GL_EXT_framebuffer_blit ") != std::string::npos;
926 ext.b_GL_EXT_framebuffer_multisample = 1393 ext.b_GL_EXT_framebuffer_multisample =
927 extensions.find("GL_EXT_framebuffer_multisample ") != std::string::npos; 1394 extensions.find("GL_EXT_framebuffer_multisample ") != std::string::npos;
928 ext.b_GL_EXT_framebuffer_object = 1395 ext.b_GL_EXT_framebuffer_object =
929 extensions.find("GL_EXT_framebuffer_object ") != std::string::npos; 1396 extensions.find("GL_EXT_framebuffer_object ") != std::string::npos;
930 ext.b_GL_EXT_map_buffer_range = 1397 ext.b_GL_EXT_map_buffer_range =
931 extensions.find("GL_EXT_map_buffer_range ") != std::string::npos; 1398 extensions.find("GL_EXT_map_buffer_range ") != std::string::npos;
932 ext.b_GL_EXT_multisampled_render_to_texture = 1399 ext.b_GL_EXT_multisampled_render_to_texture =
933 extensions.find("GL_EXT_multisampled_render_to_texture ") != 1400 extensions.find("GL_EXT_multisampled_render_to_texture ") !=
934 std::string::npos; 1401 std::string::npos;
1402 ext.b_GL_EXT_occlusion_query_boolean =
1403 extensions.find("GL_EXT_occlusion_query_boolean ") != std::string::npos;
935 ext.b_GL_EXT_robustness = 1404 ext.b_GL_EXT_robustness =
936 extensions.find("GL_EXT_robustness ") != std::string::npos; 1405 extensions.find("GL_EXT_robustness ") != std::string::npos;
937 ext.b_GL_EXT_texture_storage = 1406 ext.b_GL_EXT_texture_storage =
938 extensions.find("GL_EXT_texture_storage ") != std::string::npos; 1407 extensions.find("GL_EXT_texture_storage ") != std::string::npos;
939 ext.b_GL_EXT_timer_query = 1408 ext.b_GL_EXT_timer_query =
940 extensions.find("GL_EXT_timer_query ") != std::string::npos; 1409 extensions.find("GL_EXT_timer_query ") != std::string::npos;
941 ext.b_GL_IMG_multisampled_render_to_texture = 1410 ext.b_GL_IMG_multisampled_render_to_texture =
942 extensions.find("GL_IMG_multisampled_render_to_texture ") != 1411 extensions.find("GL_IMG_multisampled_render_to_texture ") !=
943 std::string::npos; 1412 std::string::npos;
944 ext.b_GL_KHR_blend_equation_advanced = 1413 ext.b_GL_KHR_blend_equation_advanced =
945 extensions.find("GL_KHR_blend_equation_advanced ") != std::string::npos; 1414 extensions.find("GL_KHR_blend_equation_advanced ") != std::string::npos;
946 ext.b_GL_KHR_robustness = 1415 ext.b_GL_KHR_robustness =
947 extensions.find("GL_KHR_robustness ") != std::string::npos; 1416 extensions.find("GL_KHR_robustness ") != std::string::npos;
948 ext.b_GL_NV_blend_equation_advanced = 1417 ext.b_GL_NV_blend_equation_advanced =
949 extensions.find("GL_NV_blend_equation_advanced ") != std::string::npos; 1418 extensions.find("GL_NV_blend_equation_advanced ") != std::string::npos;
950 ext.b_GL_NV_fence = extensions.find("GL_NV_fence ") != std::string::npos; 1419 ext.b_GL_NV_fence = extensions.find("GL_NV_fence ") != std::string::npos;
951 ext.b_GL_NV_path_rendering = 1420 ext.b_GL_NV_path_rendering =
952 extensions.find("GL_NV_path_rendering ") != std::string::npos; 1421 extensions.find("GL_NV_path_rendering ") != std::string::npos;
953 ext.b_GL_OES_EGL_image = 1422 ext.b_GL_OES_EGL_image =
954 extensions.find("GL_OES_EGL_image ") != std::string::npos; 1423 extensions.find("GL_OES_EGL_image ") != std::string::npos;
955 ext.b_GL_OES_get_program_binary = 1424 ext.b_GL_OES_get_program_binary =
956 extensions.find("GL_OES_get_program_binary ") != std::string::npos; 1425 extensions.find("GL_OES_get_program_binary ") != std::string::npos;
957 ext.b_GL_OES_mapbuffer = 1426 ext.b_GL_OES_mapbuffer =
958 extensions.find("GL_OES_mapbuffer ") != std::string::npos; 1427 extensions.find("GL_OES_mapbuffer ") != std::string::npos;
959 ext.b_GL_OES_vertex_array_object = 1428 ext.b_GL_OES_vertex_array_object =
960 extensions.find("GL_OES_vertex_array_object ") != std::string::npos; 1429 extensions.find("GL_OES_vertex_array_object ") != std::string::npos;
961 1430
1431 fn.glBeginQueryFn = 0;
1432 debug_fn.glBeginQueryFn = 0;
1433 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1434 fn.glBeginQueryFn =
1435 reinterpret_cast<glBeginQueryProc>(GetGLProcAddress("glBeginQuery"));
1436 } else {
1437 fn.glBeginQueryFn =
1438 reinterpret_cast<glBeginQueryProc>(glBeginQueryNotBound);
1439 }
1440 DCHECK(fn.glBeginQueryFn);
1441
962 fn.glBeginQueryARBFn = 0; 1442 fn.glBeginQueryARBFn = 0;
963 debug_fn.glBeginQueryARBFn = 0; 1443 debug_fn.glBeginQueryARBFn = 0;
964 if (ext.b_GL_ARB_occlusion_query) { 1444 if (ext.b_GL_ARB_occlusion_query) {
965 fn.glBeginQueryARBFn = reinterpret_cast<glBeginQueryARBProc>( 1445 fn.glBeginQueryARBFn = reinterpret_cast<glBeginQueryARBProc>(
966 GetGLProcAddress("glBeginQueryARB")); 1446 GetGLProcAddress("glBeginQueryARB"));
967 } 1447 } else if ((ext.b_GL_EXT_disjoint_timer_query ||
968 if (!fn.glBeginQueryARBFn) { 1448 ext.b_GL_EXT_occlusion_query_boolean)) {
969 fn.glBeginQueryARBFn = reinterpret_cast<glBeginQueryARBProc>( 1449 fn.glBeginQueryARBFn = reinterpret_cast<glBeginQueryARBProc>(
970 GetGLProcAddress("glBeginQueryEXT")); 1450 GetGLProcAddress("glBeginQueryEXT"));
971 } 1451 } else {
972 1452 fn.glBeginQueryARBFn =
973 fn.glBindFramebufferEXTFn = 0; 1453 reinterpret_cast<glBeginQueryARBProc>(glBeginQueryARBNotBound);
974 debug_fn.glBindFramebufferEXTFn = 0; 1454 }
975 if (ext.b_GL_EXT_framebuffer_object) { 1455 DCHECK(fn.glBeginQueryARBFn);
976 fn.glBindFramebufferEXTFn = reinterpret_cast<glBindFramebufferEXTProc>( 1456
977 GetGLProcAddress("glBindFramebufferEXT")); 1457 fn.glBeginTransformFeedbackFn = 0;
978 } 1458 debug_fn.glBeginTransformFeedbackFn = 0;
979 if (!fn.glBindFramebufferEXTFn) { 1459 if (((!ver->is_es && (ver->major_version >= 3u)) ||
980 fn.glBindFramebufferEXTFn = reinterpret_cast<glBindFramebufferEXTProc>( 1460 (ver->is_es && (ver->major_version >= 3u)))) {
981 GetGLProcAddress("glBindFramebuffer")); 1461 fn.glBeginTransformFeedbackFn =
982 } 1462 reinterpret_cast<glBeginTransformFeedbackProc>(
983 1463 GetGLProcAddress("glBeginTransformFeedback"));
984 fn.glBindRenderbufferEXTFn = 0; 1464 } else {
985 debug_fn.glBindRenderbufferEXTFn = 0; 1465 fn.glBeginTransformFeedbackFn =
986 if (ext.b_GL_EXT_framebuffer_object) { 1466 reinterpret_cast<glBeginTransformFeedbackProc>(
987 fn.glBindRenderbufferEXTFn = reinterpret_cast<glBindRenderbufferEXTProc>( 1467 glBeginTransformFeedbackNotBound);
988 GetGLProcAddress("glBindRenderbufferEXT")); 1468 }
989 } 1469 DCHECK(fn.glBeginTransformFeedbackFn);
990 if (!fn.glBindRenderbufferEXTFn) { 1470
991 fn.glBindRenderbufferEXTFn = reinterpret_cast<glBindRenderbufferEXTProc>( 1471 fn.glBindBufferBaseFn = 0;
992 GetGLProcAddress("glBindRenderbuffer")); 1472 debug_fn.glBindBufferBaseFn = 0;
993 } 1473 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1474 (ver->is_es && (ver->major_version >= 3u)))) {
1475 fn.glBindBufferBaseFn = reinterpret_cast<glBindBufferBaseProc>(
1476 GetGLProcAddress("glBindBufferBase"));
1477 } else {
1478 fn.glBindBufferBaseFn =
1479 reinterpret_cast<glBindBufferBaseProc>(glBindBufferBaseNotBound);
1480 }
1481 DCHECK(fn.glBindBufferBaseFn);
1482
1483 fn.glBindBufferRangeFn = 0;
1484 debug_fn.glBindBufferRangeFn = 0;
1485 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1486 (ver->is_es && (ver->major_version >= 3u)))) {
1487 fn.glBindBufferRangeFn = reinterpret_cast<glBindBufferRangeProc>(
1488 GetGLProcAddress("glBindBufferRange"));
1489 } else {
1490 fn.glBindBufferRangeFn =
1491 reinterpret_cast<glBindBufferRangeProc>(glBindBufferRangeNotBound);
1492 }
1493 DCHECK(fn.glBindBufferRangeFn);
1494
1495 fn.glBindFragDataLocationFn = 0;
1496 debug_fn.glBindFragDataLocationFn = 0;
1497 if ((!ver->is_es && (ver->major_version >= 3u))) {
1498 fn.glBindFragDataLocationFn = reinterpret_cast<glBindFragDataLocationProc>(
1499 GetGLProcAddress("glBindFragDataLocation"));
1500 } else {
1501 fn.glBindFragDataLocationFn = reinterpret_cast<glBindFragDataLocationProc>(
1502 glBindFragDataLocationNotBound);
1503 }
1504 DCHECK(fn.glBindFragDataLocationFn);
1505
1506 fn.glBindFragDataLocationIndexedFn = 0;
1507 debug_fn.glBindFragDataLocationIndexedFn = 0;
1508 if (((!ver->is_es &&
1509 (ver->major_version > 3u ||
1510 (ver->major_version == 3u && ver->minor_version >= 3u))))) {
1511 fn.glBindFragDataLocationIndexedFn =
1512 reinterpret_cast<glBindFragDataLocationIndexedProc>(
1513 GetGLProcAddress("glBindFragDataLocationIndexed"));
1514 } else {
1515 fn.glBindFragDataLocationIndexedFn =
1516 reinterpret_cast<glBindFragDataLocationIndexedProc>(
1517 glBindFragDataLocationIndexedNotBound);
1518 }
1519 DCHECK(fn.glBindFragDataLocationIndexedFn);
1520
1521 fn.glBindSamplerFn = 0;
1522 debug_fn.glBindSamplerFn = 0;
1523 if (((!ver->is_es &&
1524 (ver->major_version > 3u ||
1525 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
1526 (ver->is_es && (ver->major_version >= 3u)))) {
1527 fn.glBindSamplerFn =
1528 reinterpret_cast<glBindSamplerProc>(GetGLProcAddress("glBindSampler"));
1529 } else {
1530 fn.glBindSamplerFn =
1531 reinterpret_cast<glBindSamplerProc>(glBindSamplerNotBound);
1532 }
1533 DCHECK(fn.glBindSamplerFn);
1534
1535 fn.glBindTransformFeedbackFn = 0;
1536 debug_fn.glBindTransformFeedbackFn = 0;
1537 if (((ver->is_es && (ver->major_version >= 3u)) ||
1538 (!ver->is_es && (ver->major_version >= 4u)))) {
1539 fn.glBindTransformFeedbackFn =
1540 reinterpret_cast<glBindTransformFeedbackProc>(
1541 GetGLProcAddress("glBindTransformFeedback"));
1542 } else {
1543 fn.glBindTransformFeedbackFn =
1544 reinterpret_cast<glBindTransformFeedbackProc>(
1545 glBindTransformFeedbackNotBound);
1546 }
1547 DCHECK(fn.glBindTransformFeedbackFn);
994 1548
995 fn.glBindVertexArrayOESFn = 0; 1549 fn.glBindVertexArrayOESFn = 0;
996 debug_fn.glBindVertexArrayOESFn = 0; 1550 debug_fn.glBindVertexArrayOESFn = 0;
997 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 1551 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1552 (ver->is_es && (ver->major_version >= 3u))) ||
998 ext.b_GL_ARB_vertex_array_object) { 1553 ext.b_GL_ARB_vertex_array_object) {
999 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>( 1554 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>(
1000 GetGLProcAddress("glBindVertexArray")); 1555 GetGLProcAddress("glBindVertexArray"));
1001 } 1556 } else if (ext.b_GL_OES_vertex_array_object) {
1002 if (!fn.glBindVertexArrayOESFn && (ext.b_GL_OES_vertex_array_object)) {
1003 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>( 1557 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>(
1004 GetGLProcAddress("glBindVertexArrayOES")); 1558 GetGLProcAddress("glBindVertexArrayOES"));
1005 } 1559 } else if (ext.b_GL_APPLE_vertex_array_object) {
1006 if (!fn.glBindVertexArrayOESFn) {
1007 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>( 1560 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>(
1008 GetGLProcAddress("glBindVertexArrayAPPLE")); 1561 GetGLProcAddress("glBindVertexArrayAPPLE"));
1009 } 1562 } else {
1563 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>(
1564 glBindVertexArrayOESNotBound);
1565 }
1566 DCHECK(fn.glBindVertexArrayOESFn);
1010 1567
1011 fn.glBlendBarrierKHRFn = 0; 1568 fn.glBlendBarrierKHRFn = 0;
1012 debug_fn.glBlendBarrierKHRFn = 0; 1569 debug_fn.glBlendBarrierKHRFn = 0;
1013 if (ext.b_GL_NV_blend_equation_advanced) { 1570 if (ext.b_GL_NV_blend_equation_advanced) {
1014 fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>( 1571 fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>(
1015 GetGLProcAddress("glBlendBarrierNV")); 1572 GetGLProcAddress("glBlendBarrierNV"));
1016 } 1573 } else if (ext.b_GL_KHR_blend_equation_advanced) {
1017 if (!fn.glBlendBarrierKHRFn) {
1018 fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>( 1574 fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>(
1019 GetGLProcAddress("glBlendBarrierKHR")); 1575 GetGLProcAddress("glBlendBarrierKHR"));
1020 } 1576 } else {
1577 fn.glBlendBarrierKHRFn =
1578 reinterpret_cast<glBlendBarrierKHRProc>(glBlendBarrierKHRNotBound);
1579 }
1580 DCHECK(fn.glBlendBarrierKHRFn);
1581
1582 fn.glBlitFramebufferFn = 0;
1583 debug_fn.glBlitFramebufferFn = 0;
1584 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1585 (ver->is_es && (ver->major_version >= 3u)))) {
1586 fn.glBlitFramebufferFn = reinterpret_cast<glBlitFramebufferProc>(
1587 GetGLProcAddress("glBlitFramebuffer"));
1588 } else {
1589 fn.glBlitFramebufferFn =
1590 reinterpret_cast<glBlitFramebufferProc>(glBlitFramebufferNotBound);
1591 }
1592 DCHECK(fn.glBlitFramebufferFn);
1021 1593
1022 fn.glBlitFramebufferANGLEFn = 0; 1594 fn.glBlitFramebufferANGLEFn = 0;
1023 debug_fn.glBlitFramebufferANGLEFn = 0; 1595 debug_fn.glBlitFramebufferANGLEFn = 0;
1024 if (ext.b_GL_ANGLE_framebuffer_blit) { 1596 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1597 (ver->is_es && (ver->major_version >= 3u)))) {
1598 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>(
1599 GetGLProcAddress("glBlitFramebuffer"));
1600 } else if (ext.b_GL_ANGLE_framebuffer_blit) {
1025 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>( 1601 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>(
1026 GetGLProcAddress("glBlitFramebufferANGLE")); 1602 GetGLProcAddress("glBlitFramebufferANGLE"));
1027 } 1603 } else {
1028 if (!fn.glBlitFramebufferANGLEFn) {
1029 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>( 1604 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>(
1030 GetGLProcAddress("glBlitFramebuffer")); 1605 glBlitFramebufferANGLENotBound);
1031 } 1606 }
1607 DCHECK(fn.glBlitFramebufferANGLEFn);
1032 1608
1033 fn.glBlitFramebufferEXTFn = 0; 1609 fn.glBlitFramebufferEXTFn = 0;
1034 debug_fn.glBlitFramebufferEXTFn = 0; 1610 debug_fn.glBlitFramebufferEXTFn = 0;
1035 if (ext.b_GL_EXT_framebuffer_blit) { 1611 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1612 (ver->is_es && (ver->major_version >= 3u)))) {
1613 fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>(
1614 GetGLProcAddress("glBlitFramebuffer"));
1615 } else if (ext.b_GL_EXT_framebuffer_blit) {
1036 fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>( 1616 fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>(
1037 GetGLProcAddress("glBlitFramebufferEXT")); 1617 GetGLProcAddress("glBlitFramebufferEXT"));
1038 } 1618 } else {
1039 if (!fn.glBlitFramebufferEXTFn) {
1040 fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>( 1619 fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>(
1041 GetGLProcAddress("glBlitFramebuffer")); 1620 glBlitFramebufferEXTNotBound);
1042 } 1621 }
1043 1622 DCHECK(fn.glBlitFramebufferEXTFn);
1044 fn.glCheckFramebufferStatusEXTFn = 0; 1623
1045 debug_fn.glCheckFramebufferStatusEXTFn = 0; 1624 fn.glClearBufferfiFn = 0;
1046 if (ext.b_GL_EXT_framebuffer_object) { 1625 debug_fn.glClearBufferfiFn = 0;
1047 fn.glCheckFramebufferStatusEXTFn = 1626 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1048 reinterpret_cast<glCheckFramebufferStatusEXTProc>( 1627 (ver->is_es && (ver->major_version >= 3u)))) {
1049 GetGLProcAddress("glCheckFramebufferStatusEXT")); 1628 fn.glClearBufferfiFn = reinterpret_cast<glClearBufferfiProc>(
1050 } 1629 GetGLProcAddress("glClearBufferfi"));
1051 if (!fn.glCheckFramebufferStatusEXTFn) { 1630 } else {
1052 fn.glCheckFramebufferStatusEXTFn = 1631 fn.glClearBufferfiFn =
1053 reinterpret_cast<glCheckFramebufferStatusEXTProc>( 1632 reinterpret_cast<glClearBufferfiProc>(glClearBufferfiNotBound);
1054 GetGLProcAddress("glCheckFramebufferStatus")); 1633 }
1055 } 1634 DCHECK(fn.glClearBufferfiFn);
1056 1635
1057 fn.glDeleteBuffersARBFn = 0; 1636 fn.glClearBufferfvFn = 0;
1058 debug_fn.glDeleteBuffersARBFn = 0; 1637 debug_fn.glClearBufferfvFn = 0;
1059 if (ext.b_GL_ARB_vertex_buffer_object) { 1638 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1060 fn.glDeleteBuffersARBFn = reinterpret_cast<glDeleteBuffersARBProc>( 1639 (ver->is_es && (ver->major_version >= 3u)))) {
1061 GetGLProcAddress("glDeleteBuffersARB")); 1640 fn.glClearBufferfvFn = reinterpret_cast<glClearBufferfvProc>(
1062 } 1641 GetGLProcAddress("glClearBufferfv"));
1063 if (!fn.glDeleteBuffersARBFn) { 1642 } else {
1064 fn.glDeleteBuffersARBFn = reinterpret_cast<glDeleteBuffersARBProc>( 1643 fn.glClearBufferfvFn =
1065 GetGLProcAddress("glDeleteBuffers")); 1644 reinterpret_cast<glClearBufferfvProc>(glClearBufferfvNotBound);
1066 } 1645 }
1067 1646 DCHECK(fn.glClearBufferfvFn);
1068 fn.glDeleteFramebuffersEXTFn = 0; 1647
1069 debug_fn.glDeleteFramebuffersEXTFn = 0; 1648 fn.glClearBufferivFn = 0;
1070 if (ext.b_GL_EXT_framebuffer_object) { 1649 debug_fn.glClearBufferivFn = 0;
1071 fn.glDeleteFramebuffersEXTFn = 1650 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1072 reinterpret_cast<glDeleteFramebuffersEXTProc>( 1651 (ver->is_es && (ver->major_version >= 3u)))) {
1073 GetGLProcAddress("glDeleteFramebuffersEXT")); 1652 fn.glClearBufferivFn = reinterpret_cast<glClearBufferivProc>(
1074 } 1653 GetGLProcAddress("glClearBufferiv"));
1075 if (!fn.glDeleteFramebuffersEXTFn) { 1654 } else {
1076 fn.glDeleteFramebuffersEXTFn = 1655 fn.glClearBufferivFn =
1077 reinterpret_cast<glDeleteFramebuffersEXTProc>( 1656 reinterpret_cast<glClearBufferivProc>(glClearBufferivNotBound);
1078 GetGLProcAddress("glDeleteFramebuffers")); 1657 }
1079 } 1658 DCHECK(fn.glClearBufferivFn);
1659
1660 fn.glClearBufferuivFn = 0;
1661 debug_fn.glClearBufferuivFn = 0;
1662 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1663 (ver->is_es && (ver->major_version >= 3u)))) {
1664 fn.glClearBufferuivFn = reinterpret_cast<glClearBufferuivProc>(
1665 GetGLProcAddress("glClearBufferuiv"));
1666 } else {
1667 fn.glClearBufferuivFn =
1668 reinterpret_cast<glClearBufferuivProc>(glClearBufferuivNotBound);
1669 }
1670 DCHECK(fn.glClearBufferuivFn);
1671
1672 fn.glClearDepthfFn = 0;
1673 debug_fn.glClearDepthfFn = 0;
1674 if (((!ver->is_es &&
1675 (ver->major_version > 4u ||
1676 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
1677 ver->is_es)) {
1678 fn.glClearDepthfFn =
1679 reinterpret_cast<glClearDepthfProc>(GetGLProcAddress("glClearDepthf"));
1680 } else {
1681 fn.glClearDepthfFn =
1682 reinterpret_cast<glClearDepthfProc>(glClearDepthfNotBound);
1683 }
1684 DCHECK(fn.glClearDepthfFn);
1685
1686 fn.glClientWaitSyncFn = 0;
1687 debug_fn.glClientWaitSyncFn = 0;
1688 if (((!ver->is_es &&
1689 (ver->major_version > 3u ||
1690 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
1691 (ver->is_es && (ver->major_version >= 3u))) ||
1692 ext.b_GL_ARB_sync) {
1693 fn.glClientWaitSyncFn = reinterpret_cast<glClientWaitSyncProc>(
1694 GetGLProcAddress("glClientWaitSync"));
1695 } else {
1696 fn.glClientWaitSyncFn =
1697 reinterpret_cast<glClientWaitSyncProc>(glClientWaitSyncNotBound);
1698 }
1699 DCHECK(fn.glClientWaitSyncFn);
1700
1701 fn.glCompressedTexImage3DFn = 0;
1702 debug_fn.glCompressedTexImage3DFn = 0;
1703 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1704 fn.glCompressedTexImage3DFn = reinterpret_cast<glCompressedTexImage3DProc>(
1705 GetGLProcAddress("glCompressedTexImage3D"));
1706 } else {
1707 fn.glCompressedTexImage3DFn = reinterpret_cast<glCompressedTexImage3DProc>(
1708 glCompressedTexImage3DNotBound);
1709 }
1710 DCHECK(fn.glCompressedTexImage3DFn);
1711
1712 fn.glCopyBufferSubDataFn = 0;
1713 debug_fn.glCopyBufferSubDataFn = 0;
1714 if (((ver->is_es && (ver->major_version >= 3u)) ||
1715 (!ver->is_es &&
1716 (ver->major_version > 3u ||
1717 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
1718 fn.glCopyBufferSubDataFn = reinterpret_cast<glCopyBufferSubDataProc>(
1719 GetGLProcAddress("glCopyBufferSubData"));
1720 } else {
1721 fn.glCopyBufferSubDataFn =
1722 reinterpret_cast<glCopyBufferSubDataProc>(glCopyBufferSubDataNotBound);
1723 }
1724 DCHECK(fn.glCopyBufferSubDataFn);
1725
1726 fn.glCopyTexSubImage3DFn = 0;
1727 debug_fn.glCopyTexSubImage3DFn = 0;
1728 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1729 fn.glCopyTexSubImage3DFn = reinterpret_cast<glCopyTexSubImage3DProc>(
1730 GetGLProcAddress("glCopyTexSubImage3D"));
1731 } else {
1732 fn.glCopyTexSubImage3DFn =
1733 reinterpret_cast<glCopyTexSubImage3DProc>(glCopyTexSubImage3DNotBound);
1734 }
1735 DCHECK(fn.glCopyTexSubImage3DFn);
1736
1737 fn.glDeleteFencesAPPLEFn = 0;
1738 debug_fn.glDeleteFencesAPPLEFn = 0;
1739 if (ext.b_GL_APPLE_fence) {
1740 fn.glDeleteFencesAPPLEFn = reinterpret_cast<glDeleteFencesAPPLEProc>(
1741 GetGLProcAddress("glDeleteFencesAPPLE"));
1742 } else {
1743 fn.glDeleteFencesAPPLEFn =
1744 reinterpret_cast<glDeleteFencesAPPLEProc>(glDeleteFencesAPPLENotBound);
1745 }
1746 DCHECK(fn.glDeleteFencesAPPLEFn);
1747
1748 fn.glDeleteFencesNVFn = 0;
1749 debug_fn.glDeleteFencesNVFn = 0;
1750 if (ext.b_GL_NV_fence) {
1751 fn.glDeleteFencesNVFn = reinterpret_cast<glDeleteFencesNVProc>(
1752 GetGLProcAddress("glDeleteFencesNV"));
1753 } else {
1754 fn.glDeleteFencesNVFn =
1755 reinterpret_cast<glDeleteFencesNVProc>(glDeleteFencesNVNotBound);
1756 }
1757 DCHECK(fn.glDeleteFencesNVFn);
1758
1759 fn.glDeleteQueriesFn = 0;
1760 debug_fn.glDeleteQueriesFn = 0;
1761 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1762 fn.glDeleteQueriesFn = reinterpret_cast<glDeleteQueriesProc>(
1763 GetGLProcAddress("glDeleteQueries"));
1764 } else {
1765 fn.glDeleteQueriesFn =
1766 reinterpret_cast<glDeleteQueriesProc>(glDeleteQueriesNotBound);
1767 }
1768 DCHECK(fn.glDeleteQueriesFn);
1080 1769
1081 fn.glDeleteQueriesARBFn = 0; 1770 fn.glDeleteQueriesARBFn = 0;
1082 debug_fn.glDeleteQueriesARBFn = 0; 1771 debug_fn.glDeleteQueriesARBFn = 0;
1083 if (ext.b_GL_ARB_occlusion_query) { 1772 if (ext.b_GL_ARB_occlusion_query) {
1084 fn.glDeleteQueriesARBFn = reinterpret_cast<glDeleteQueriesARBProc>( 1773 fn.glDeleteQueriesARBFn = reinterpret_cast<glDeleteQueriesARBProc>(
1085 GetGLProcAddress("glDeleteQueriesARB")); 1774 GetGLProcAddress("glDeleteQueriesARB"));
1086 } 1775 } else if ((ext.b_GL_EXT_disjoint_timer_query ||
1087 if (!fn.glDeleteQueriesARBFn) { 1776 ext.b_GL_EXT_occlusion_query_boolean)) {
1088 fn.glDeleteQueriesARBFn = reinterpret_cast<glDeleteQueriesARBProc>( 1777 fn.glDeleteQueriesARBFn = reinterpret_cast<glDeleteQueriesARBProc>(
1089 GetGLProcAddress("glDeleteQueriesEXT")); 1778 GetGLProcAddress("glDeleteQueriesEXT"));
1090 } 1779 } else {
1091 1780 fn.glDeleteQueriesARBFn =
1092 fn.glDeleteRenderbuffersEXTFn = 0; 1781 reinterpret_cast<glDeleteQueriesARBProc>(glDeleteQueriesARBNotBound);
1093 debug_fn.glDeleteRenderbuffersEXTFn = 0; 1782 }
1094 if (ext.b_GL_EXT_framebuffer_object) { 1783 DCHECK(fn.glDeleteQueriesARBFn);
1095 fn.glDeleteRenderbuffersEXTFn = 1784
1096 reinterpret_cast<glDeleteRenderbuffersEXTProc>( 1785 fn.glDeleteSamplersFn = 0;
1097 GetGLProcAddress("glDeleteRenderbuffersEXT")); 1786 debug_fn.glDeleteSamplersFn = 0;
1098 } 1787 if (((!ver->is_es &&
1099 if (!fn.glDeleteRenderbuffersEXTFn) { 1788 (ver->major_version > 3u ||
1100 fn.glDeleteRenderbuffersEXTFn = 1789 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
1101 reinterpret_cast<glDeleteRenderbuffersEXTProc>( 1790 (ver->is_es && (ver->major_version >= 3u)))) {
1102 GetGLProcAddress("glDeleteRenderbuffers")); 1791 fn.glDeleteSamplersFn = reinterpret_cast<glDeleteSamplersProc>(
1103 } 1792 GetGLProcAddress("glDeleteSamplers"));
1793 } else {
1794 fn.glDeleteSamplersFn =
1795 reinterpret_cast<glDeleteSamplersProc>(glDeleteSamplersNotBound);
1796 }
1797 DCHECK(fn.glDeleteSamplersFn);
1798
1799 fn.glDeleteSyncFn = 0;
1800 debug_fn.glDeleteSyncFn = 0;
1801 if (((!ver->is_es &&
1802 (ver->major_version > 3u ||
1803 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
1804 (ver->is_es && (ver->major_version >= 3u))) ||
1805 ext.b_GL_ARB_sync) {
1806 fn.glDeleteSyncFn =
1807 reinterpret_cast<glDeleteSyncProc>(GetGLProcAddress("glDeleteSync"));
1808 } else {
1809 fn.glDeleteSyncFn =
1810 reinterpret_cast<glDeleteSyncProc>(glDeleteSyncNotBound);
1811 }
1812 DCHECK(fn.glDeleteSyncFn);
1813
1814 fn.glDeleteTransformFeedbacksFn = 0;
1815 debug_fn.glDeleteTransformFeedbacksFn = 0;
1816 if (((ver->is_es && (ver->major_version >= 3u)) ||
1817 (!ver->is_es && (ver->major_version >= 4u)))) {
1818 fn.glDeleteTransformFeedbacksFn =
1819 reinterpret_cast<glDeleteTransformFeedbacksProc>(
1820 GetGLProcAddress("glDeleteTransformFeedbacks"));
1821 } else {
1822 fn.glDeleteTransformFeedbacksFn =
1823 reinterpret_cast<glDeleteTransformFeedbacksProc>(
1824 glDeleteTransformFeedbacksNotBound);
1825 }
1826 DCHECK(fn.glDeleteTransformFeedbacksFn);
1104 1827
1105 fn.glDeleteVertexArraysOESFn = 0; 1828 fn.glDeleteVertexArraysOESFn = 0;
1106 debug_fn.glDeleteVertexArraysOESFn = 0; 1829 debug_fn.glDeleteVertexArraysOESFn = 0;
1107 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 1830 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1831 (ver->is_es && (ver->major_version >= 3u))) ||
1108 ext.b_GL_ARB_vertex_array_object) { 1832 ext.b_GL_ARB_vertex_array_object) {
1109 fn.glDeleteVertexArraysOESFn = 1833 fn.glDeleteVertexArraysOESFn =
1110 reinterpret_cast<glDeleteVertexArraysOESProc>( 1834 reinterpret_cast<glDeleteVertexArraysOESProc>(
1111 GetGLProcAddress("glDeleteVertexArrays")); 1835 GetGLProcAddress("glDeleteVertexArrays"));
1112 } 1836 } else if (ext.b_GL_OES_vertex_array_object) {
1113 if (!fn.glDeleteVertexArraysOESFn && (ext.b_GL_OES_vertex_array_object)) {
1114 fn.glDeleteVertexArraysOESFn = 1837 fn.glDeleteVertexArraysOESFn =
1115 reinterpret_cast<glDeleteVertexArraysOESProc>( 1838 reinterpret_cast<glDeleteVertexArraysOESProc>(
1116 GetGLProcAddress("glDeleteVertexArraysOES")); 1839 GetGLProcAddress("glDeleteVertexArraysOES"));
1117 } 1840 } else if (ext.b_GL_APPLE_vertex_array_object) {
1118 if (!fn.glDeleteVertexArraysOESFn) {
1119 fn.glDeleteVertexArraysOESFn = 1841 fn.glDeleteVertexArraysOESFn =
1120 reinterpret_cast<glDeleteVertexArraysOESProc>( 1842 reinterpret_cast<glDeleteVertexArraysOESProc>(
1121 GetGLProcAddress("glDeleteVertexArraysAPPLE")); 1843 GetGLProcAddress("glDeleteVertexArraysAPPLE"));
1122 } 1844 } else {
1845 fn.glDeleteVertexArraysOESFn =
1846 reinterpret_cast<glDeleteVertexArraysOESProc>(
1847 glDeleteVertexArraysOESNotBound);
1848 }
1849 DCHECK(fn.glDeleteVertexArraysOESFn);
1850
1851 fn.glDepthRangefFn = 0;
1852 debug_fn.glDepthRangefFn = 0;
1853 if (((!ver->is_es &&
1854 (ver->major_version > 4u ||
1855 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
1856 ver->is_es)) {
1857 fn.glDepthRangefFn =
1858 reinterpret_cast<glDepthRangefProc>(GetGLProcAddress("glDepthRangef"));
1859 } else {
1860 fn.glDepthRangefFn =
1861 reinterpret_cast<glDepthRangefProc>(glDepthRangefNotBound);
1862 }
1863 DCHECK(fn.glDepthRangefFn);
1864
1865 fn.glDiscardFramebufferEXTFn = 0;
1866 debug_fn.glDiscardFramebufferEXTFn = 0;
1867 if (ext.b_GL_EXT_discard_framebuffer) {
1868 fn.glDiscardFramebufferEXTFn =
1869 reinterpret_cast<glDiscardFramebufferEXTProc>(
1870 GetGLProcAddress("glDiscardFramebufferEXT"));
1871 } else {
1872 fn.glDiscardFramebufferEXTFn =
1873 reinterpret_cast<glDiscardFramebufferEXTProc>(
1874 glDiscardFramebufferEXTNotBound);
1875 }
1876 DCHECK(fn.glDiscardFramebufferEXTFn);
1123 1877
1124 fn.glDrawArraysInstancedANGLEFn = 0; 1878 fn.glDrawArraysInstancedANGLEFn = 0;
1125 debug_fn.glDrawArraysInstancedANGLEFn = 0; 1879 debug_fn.glDrawArraysInstancedANGLEFn = 0;
1126 if (ext.b_GL_ARB_draw_instanced) { 1880 if (((ver->is_es && (ver->major_version >= 3u)) ||
1881 (!ver->is_es &&
1882 (ver->major_version > 3u ||
1883 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
1884 fn.glDrawArraysInstancedANGLEFn =
1885 reinterpret_cast<glDrawArraysInstancedANGLEProc>(
1886 GetGLProcAddress("glDrawArraysInstanced"));
1887 } else if (ext.b_GL_ARB_draw_instanced) {
1127 fn.glDrawArraysInstancedANGLEFn = 1888 fn.glDrawArraysInstancedANGLEFn =
1128 reinterpret_cast<glDrawArraysInstancedANGLEProc>( 1889 reinterpret_cast<glDrawArraysInstancedANGLEProc>(
1129 GetGLProcAddress("glDrawArraysInstancedARB")); 1890 GetGLProcAddress("glDrawArraysInstancedARB"));
1130 } 1891 } else if (ext.b_GL_ANGLE_instanced_arrays) {
1131 if (!fn.glDrawArraysInstancedANGLEFn && (ext.b_GL_ANGLE_instanced_arrays)) {
1132 fn.glDrawArraysInstancedANGLEFn = 1892 fn.glDrawArraysInstancedANGLEFn =
1133 reinterpret_cast<glDrawArraysInstancedANGLEProc>( 1893 reinterpret_cast<glDrawArraysInstancedANGLEProc>(
1134 GetGLProcAddress("glDrawArraysInstancedANGLE")); 1894 GetGLProcAddress("glDrawArraysInstancedANGLE"));
1135 } 1895 } else {
1136 if (!fn.glDrawArraysInstancedANGLEFn) {
1137 fn.glDrawArraysInstancedANGLEFn = 1896 fn.glDrawArraysInstancedANGLEFn =
1138 reinterpret_cast<glDrawArraysInstancedANGLEProc>( 1897 reinterpret_cast<glDrawArraysInstancedANGLEProc>(
1139 GetGLProcAddress("glDrawArraysInstanced")); 1898 glDrawArraysInstancedANGLENotBound);
1140 } 1899 }
1900 DCHECK(fn.glDrawArraysInstancedANGLEFn);
1901
1902 fn.glDrawBufferFn = 0;
1903 debug_fn.glDrawBufferFn = 0;
1904 if (!ver->is_es) {
1905 fn.glDrawBufferFn =
1906 reinterpret_cast<glDrawBufferProc>(GetGLProcAddress("glDrawBuffer"));
1907 } else {
1908 fn.glDrawBufferFn =
1909 reinterpret_cast<glDrawBufferProc>(glDrawBufferNotBound);
1910 }
1911 DCHECK(fn.glDrawBufferFn);
1141 1912
1142 fn.glDrawBuffersARBFn = 0; 1913 fn.glDrawBuffersARBFn = 0;
1143 debug_fn.glDrawBuffersARBFn = 0; 1914 debug_fn.glDrawBuffersARBFn = 0;
1144 if (ext.b_GL_ARB_draw_buffers) { 1915 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1916 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>(
1917 GetGLProcAddress("glDrawBuffers"));
1918 } else if (ext.b_GL_ARB_draw_buffers) {
1145 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>( 1919 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>(
1146 GetGLProcAddress("glDrawBuffersARB")); 1920 GetGLProcAddress("glDrawBuffersARB"));
1147 } 1921 } else if (ext.b_GL_EXT_draw_buffers) {
1148 if (!fn.glDrawBuffersARBFn && (ext.b_GL_EXT_draw_buffers)) {
1149 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>( 1922 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>(
1150 GetGLProcAddress("glDrawBuffersEXT")); 1923 GetGLProcAddress("glDrawBuffersEXT"));
1151 } 1924 } else {
1152 if (!fn.glDrawBuffersARBFn) { 1925 fn.glDrawBuffersARBFn =
1153 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>( 1926 reinterpret_cast<glDrawBuffersARBProc>(glDrawBuffersARBNotBound);
1154 GetGLProcAddress("glDrawBuffers")); 1927 }
1155 } 1928 DCHECK(fn.glDrawBuffersARBFn);
1156 1929
1157 fn.glDrawElementsInstancedANGLEFn = 0; 1930 fn.glDrawElementsInstancedANGLEFn = 0;
1158 debug_fn.glDrawElementsInstancedANGLEFn = 0; 1931 debug_fn.glDrawElementsInstancedANGLEFn = 0;
1159 if (ext.b_GL_ARB_draw_instanced) { 1932 if (((ver->is_es && (ver->major_version >= 3u)) ||
1933 (!ver->is_es &&
1934 (ver->major_version > 3u ||
1935 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
1936 fn.glDrawElementsInstancedANGLEFn =
1937 reinterpret_cast<glDrawElementsInstancedANGLEProc>(
1938 GetGLProcAddress("glDrawElementsInstanced"));
1939 } else if (ext.b_GL_ARB_draw_instanced) {
1160 fn.glDrawElementsInstancedANGLEFn = 1940 fn.glDrawElementsInstancedANGLEFn =
1161 reinterpret_cast<glDrawElementsInstancedANGLEProc>( 1941 reinterpret_cast<glDrawElementsInstancedANGLEProc>(
1162 GetGLProcAddress("glDrawElementsInstancedARB")); 1942 GetGLProcAddress("glDrawElementsInstancedARB"));
1163 } 1943 } else if (ext.b_GL_ANGLE_instanced_arrays) {
1164 if (!fn.glDrawElementsInstancedANGLEFn && (ext.b_GL_ANGLE_instanced_arrays)) {
1165 fn.glDrawElementsInstancedANGLEFn = 1944 fn.glDrawElementsInstancedANGLEFn =
1166 reinterpret_cast<glDrawElementsInstancedANGLEProc>( 1945 reinterpret_cast<glDrawElementsInstancedANGLEProc>(
1167 GetGLProcAddress("glDrawElementsInstancedANGLE")); 1946 GetGLProcAddress("glDrawElementsInstancedANGLE"));
1168 } 1947 } else {
1169 if (!fn.glDrawElementsInstancedANGLEFn) {
1170 fn.glDrawElementsInstancedANGLEFn = 1948 fn.glDrawElementsInstancedANGLEFn =
1171 reinterpret_cast<glDrawElementsInstancedANGLEProc>( 1949 reinterpret_cast<glDrawElementsInstancedANGLEProc>(
1172 GetGLProcAddress("glDrawElementsInstanced")); 1950 glDrawElementsInstancedANGLENotBound);
1173 } 1951 }
1952 DCHECK(fn.glDrawElementsInstancedANGLEFn);
1953
1954 fn.glDrawRangeElementsFn = 0;
1955 debug_fn.glDrawRangeElementsFn = 0;
1956 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1957 fn.glDrawRangeElementsFn = reinterpret_cast<glDrawRangeElementsProc>(
1958 GetGLProcAddress("glDrawRangeElements"));
1959 } else {
1960 fn.glDrawRangeElementsFn =
1961 reinterpret_cast<glDrawRangeElementsProc>(glDrawRangeElementsNotBound);
1962 }
1963 DCHECK(fn.glDrawRangeElementsFn);
1964
1965 fn.glEGLImageTargetRenderbufferStorageOESFn = 0;
1966 debug_fn.glEGLImageTargetRenderbufferStorageOESFn = 0;
1967 if (ext.b_GL_OES_EGL_image) {
1968 fn.glEGLImageTargetRenderbufferStorageOESFn =
1969 reinterpret_cast<glEGLImageTargetRenderbufferStorageOESProc>(
1970 GetGLProcAddress("glEGLImageTargetRenderbufferStorageOES"));
1971 } else {
1972 fn.glEGLImageTargetRenderbufferStorageOESFn =
1973 reinterpret_cast<glEGLImageTargetRenderbufferStorageOESProc>(
1974 glEGLImageTargetRenderbufferStorageOESNotBound);
1975 }
1976 DCHECK(fn.glEGLImageTargetRenderbufferStorageOESFn);
1977
1978 fn.glEGLImageTargetTexture2DOESFn = 0;
1979 debug_fn.glEGLImageTargetTexture2DOESFn = 0;
1980 if (ext.b_GL_OES_EGL_image) {
1981 fn.glEGLImageTargetTexture2DOESFn =
1982 reinterpret_cast<glEGLImageTargetTexture2DOESProc>(
1983 GetGLProcAddress("glEGLImageTargetTexture2DOES"));
1984 } else {
1985 fn.glEGLImageTargetTexture2DOESFn =
1986 reinterpret_cast<glEGLImageTargetTexture2DOESProc>(
1987 glEGLImageTargetTexture2DOESNotBound);
1988 }
1989 DCHECK(fn.glEGLImageTargetTexture2DOESFn);
1990
1991 fn.glEndQueryFn = 0;
1992 debug_fn.glEndQueryFn = 0;
1993 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1994 fn.glEndQueryFn =
1995 reinterpret_cast<glEndQueryProc>(GetGLProcAddress("glEndQuery"));
1996 } else {
1997 fn.glEndQueryFn = reinterpret_cast<glEndQueryProc>(glEndQueryNotBound);
1998 }
1999 DCHECK(fn.glEndQueryFn);
1174 2000
1175 fn.glEndQueryARBFn = 0; 2001 fn.glEndQueryARBFn = 0;
1176 debug_fn.glEndQueryARBFn = 0; 2002 debug_fn.glEndQueryARBFn = 0;
1177 if (ext.b_GL_ARB_occlusion_query) { 2003 if (ext.b_GL_ARB_occlusion_query) {
1178 fn.glEndQueryARBFn = 2004 fn.glEndQueryARBFn =
1179 reinterpret_cast<glEndQueryARBProc>(GetGLProcAddress("glEndQueryARB")); 2005 reinterpret_cast<glEndQueryARBProc>(GetGLProcAddress("glEndQueryARB"));
1180 } 2006 } else if ((ext.b_GL_EXT_disjoint_timer_query ||
1181 if (!fn.glEndQueryARBFn) { 2007 ext.b_GL_EXT_occlusion_query_boolean)) {
1182 fn.glEndQueryARBFn = 2008 fn.glEndQueryARBFn =
1183 reinterpret_cast<glEndQueryARBProc>(GetGLProcAddress("glEndQueryEXT")); 2009 reinterpret_cast<glEndQueryARBProc>(GetGLProcAddress("glEndQueryEXT"));
1184 } 2010 } else {
1185 2011 fn.glEndQueryARBFn =
1186 fn.glFramebufferRenderbufferEXTFn = 0; 2012 reinterpret_cast<glEndQueryARBProc>(glEndQueryARBNotBound);
1187 debug_fn.glFramebufferRenderbufferEXTFn = 0; 2013 }
1188 if (ext.b_GL_EXT_framebuffer_object) { 2014 DCHECK(fn.glEndQueryARBFn);
1189 fn.glFramebufferRenderbufferEXTFn = 2015
1190 reinterpret_cast<glFramebufferRenderbufferEXTProc>( 2016 fn.glEndTransformFeedbackFn = 0;
1191 GetGLProcAddress("glFramebufferRenderbufferEXT")); 2017 debug_fn.glEndTransformFeedbackFn = 0;
1192 } 2018 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1193 if (!fn.glFramebufferRenderbufferEXTFn) { 2019 (ver->is_es && (ver->major_version >= 3u)))) {
1194 fn.glFramebufferRenderbufferEXTFn = 2020 fn.glEndTransformFeedbackFn = reinterpret_cast<glEndTransformFeedbackProc>(
1195 reinterpret_cast<glFramebufferRenderbufferEXTProc>( 2021 GetGLProcAddress("glEndTransformFeedback"));
1196 GetGLProcAddress("glFramebufferRenderbuffer")); 2022 } else {
1197 } 2023 fn.glEndTransformFeedbackFn = reinterpret_cast<glEndTransformFeedbackProc>(
1198 2024 glEndTransformFeedbackNotBound);
1199 fn.glFramebufferTexture2DEXTFn = 0; 2025 }
1200 debug_fn.glFramebufferTexture2DEXTFn = 0; 2026 DCHECK(fn.glEndTransformFeedbackFn);
1201 if (ext.b_GL_EXT_framebuffer_object) { 2027
1202 fn.glFramebufferTexture2DEXTFn = 2028 fn.glFenceSyncFn = 0;
1203 reinterpret_cast<glFramebufferTexture2DEXTProc>( 2029 debug_fn.glFenceSyncFn = 0;
1204 GetGLProcAddress("glFramebufferTexture2DEXT")); 2030 if (((!ver->is_es &&
1205 } 2031 (ver->major_version > 3u ||
1206 if (!fn.glFramebufferTexture2DEXTFn) { 2032 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
1207 fn.glFramebufferTexture2DEXTFn = 2033 (ver->is_es && (ver->major_version >= 3u))) ||
1208 reinterpret_cast<glFramebufferTexture2DEXTProc>( 2034 ext.b_GL_ARB_sync) {
1209 GetGLProcAddress("glFramebufferTexture2D")); 2035 fn.glFenceSyncFn =
1210 } 2036 reinterpret_cast<glFenceSyncProc>(GetGLProcAddress("glFenceSync"));
1211 2037 } else {
1212 fn.glGenBuffersARBFn = 0; 2038 fn.glFenceSyncFn = reinterpret_cast<glFenceSyncProc>(glFenceSyncNotBound);
1213 debug_fn.glGenBuffersARBFn = 0; 2039 }
1214 if (ext.b_GL_ARB_vertex_buffer_object) { 2040 DCHECK(fn.glFenceSyncFn);
1215 fn.glGenBuffersARBFn = reinterpret_cast<glGenBuffersARBProc>( 2041
1216 GetGLProcAddress("glGenBuffersARB")); 2042 fn.glFinishFenceAPPLEFn = 0;
1217 } 2043 debug_fn.glFinishFenceAPPLEFn = 0;
1218 if (!fn.glGenBuffersARBFn) { 2044 if (ext.b_GL_APPLE_fence) {
1219 fn.glGenBuffersARBFn = 2045 fn.glFinishFenceAPPLEFn = reinterpret_cast<glFinishFenceAPPLEProc>(
1220 reinterpret_cast<glGenBuffersARBProc>(GetGLProcAddress("glGenBuffers")); 2046 GetGLProcAddress("glFinishFenceAPPLE"));
1221 } 2047 } else {
1222 2048 fn.glFinishFenceAPPLEFn =
1223 fn.glGenerateMipmapEXTFn = 0; 2049 reinterpret_cast<glFinishFenceAPPLEProc>(glFinishFenceAPPLENotBound);
1224 debug_fn.glGenerateMipmapEXTFn = 0; 2050 }
1225 if (ext.b_GL_EXT_framebuffer_object) { 2051 DCHECK(fn.glFinishFenceAPPLEFn);
1226 fn.glGenerateMipmapEXTFn = reinterpret_cast<glGenerateMipmapEXTProc>( 2052
1227 GetGLProcAddress("glGenerateMipmapEXT")); 2053 fn.glFinishFenceNVFn = 0;
1228 } 2054 debug_fn.glFinishFenceNVFn = 0;
1229 if (!fn.glGenerateMipmapEXTFn) { 2055 if (ext.b_GL_NV_fence) {
1230 fn.glGenerateMipmapEXTFn = reinterpret_cast<glGenerateMipmapEXTProc>( 2056 fn.glFinishFenceNVFn = reinterpret_cast<glFinishFenceNVProc>(
1231 GetGLProcAddress("glGenerateMipmap")); 2057 GetGLProcAddress("glFinishFenceNV"));
1232 } 2058 } else {
1233 2059 fn.glFinishFenceNVFn =
1234 fn.glGenFramebuffersEXTFn = 0; 2060 reinterpret_cast<glFinishFenceNVProc>(glFinishFenceNVNotBound);
1235 debug_fn.glGenFramebuffersEXTFn = 0; 2061 }
1236 if (ext.b_GL_EXT_framebuffer_object) { 2062 DCHECK(fn.glFinishFenceNVFn);
1237 fn.glGenFramebuffersEXTFn = reinterpret_cast<glGenFramebuffersEXTProc>( 2063
1238 GetGLProcAddress("glGenFramebuffersEXT")); 2064 fn.glFlushMappedBufferRangeFn = 0;
1239 } 2065 debug_fn.glFlushMappedBufferRangeFn = 0;
1240 if (!fn.glGenFramebuffersEXTFn) { 2066 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1241 fn.glGenFramebuffersEXTFn = reinterpret_cast<glGenFramebuffersEXTProc>( 2067 (ver->is_es && (ver->major_version >= 3u)))) {
1242 GetGLProcAddress("glGenFramebuffers")); 2068 fn.glFlushMappedBufferRangeFn =
1243 } 2069 reinterpret_cast<glFlushMappedBufferRangeProc>(
2070 GetGLProcAddress("glFlushMappedBufferRange"));
2071 } else {
2072 fn.glFlushMappedBufferRangeFn =
2073 reinterpret_cast<glFlushMappedBufferRangeProc>(
2074 glFlushMappedBufferRangeNotBound);
2075 }
2076 DCHECK(fn.glFlushMappedBufferRangeFn);
2077
2078 fn.glFramebufferTexture2DMultisampleEXTFn = 0;
2079 debug_fn.glFramebufferTexture2DMultisampleEXTFn = 0;
2080 if (ext.b_GL_EXT_multisampled_render_to_texture) {
2081 fn.glFramebufferTexture2DMultisampleEXTFn =
2082 reinterpret_cast<glFramebufferTexture2DMultisampleEXTProc>(
2083 GetGLProcAddress("glFramebufferTexture2DMultisampleEXT"));
2084 } else {
2085 fn.glFramebufferTexture2DMultisampleEXTFn =
2086 reinterpret_cast<glFramebufferTexture2DMultisampleEXTProc>(
2087 glFramebufferTexture2DMultisampleEXTNotBound);
2088 }
2089 DCHECK(fn.glFramebufferTexture2DMultisampleEXTFn);
2090
2091 fn.glFramebufferTexture2DMultisampleIMGFn = 0;
2092 debug_fn.glFramebufferTexture2DMultisampleIMGFn = 0;
2093 if (ext.b_GL_IMG_multisampled_render_to_texture) {
2094 fn.glFramebufferTexture2DMultisampleIMGFn =
2095 reinterpret_cast<glFramebufferTexture2DMultisampleIMGProc>(
2096 GetGLProcAddress("glFramebufferTexture2DMultisampleIMG"));
2097 } else {
2098 fn.glFramebufferTexture2DMultisampleIMGFn =
2099 reinterpret_cast<glFramebufferTexture2DMultisampleIMGProc>(
2100 glFramebufferTexture2DMultisampleIMGNotBound);
2101 }
2102 DCHECK(fn.glFramebufferTexture2DMultisampleIMGFn);
2103
2104 fn.glFramebufferTextureLayerFn = 0;
2105 debug_fn.glFramebufferTextureLayerFn = 0;
2106 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2107 (ver->is_es && (ver->major_version >= 3u)))) {
2108 fn.glFramebufferTextureLayerFn =
2109 reinterpret_cast<glFramebufferTextureLayerProc>(
2110 GetGLProcAddress("glFramebufferTextureLayer"));
2111 } else {
2112 fn.glFramebufferTextureLayerFn =
2113 reinterpret_cast<glFramebufferTextureLayerProc>(
2114 glFramebufferTextureLayerNotBound);
2115 }
2116 DCHECK(fn.glFramebufferTextureLayerFn);
2117
2118 fn.glGenFencesAPPLEFn = 0;
2119 debug_fn.glGenFencesAPPLEFn = 0;
2120 if (ext.b_GL_APPLE_fence) {
2121 fn.glGenFencesAPPLEFn = reinterpret_cast<glGenFencesAPPLEProc>(
2122 GetGLProcAddress("glGenFencesAPPLE"));
2123 } else {
2124 fn.glGenFencesAPPLEFn =
2125 reinterpret_cast<glGenFencesAPPLEProc>(glGenFencesAPPLENotBound);
2126 }
2127 DCHECK(fn.glGenFencesAPPLEFn);
2128
2129 fn.glGenFencesNVFn = 0;
2130 debug_fn.glGenFencesNVFn = 0;
2131 if (ext.b_GL_NV_fence) {
2132 fn.glGenFencesNVFn =
2133 reinterpret_cast<glGenFencesNVProc>(GetGLProcAddress("glGenFencesNV"));
2134 } else {
2135 fn.glGenFencesNVFn =
2136 reinterpret_cast<glGenFencesNVProc>(glGenFencesNVNotBound);
2137 }
2138 DCHECK(fn.glGenFencesNVFn);
2139
2140 fn.glGenQueriesFn = 0;
2141 debug_fn.glGenQueriesFn = 0;
2142 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
2143 fn.glGenQueriesFn =
2144 reinterpret_cast<glGenQueriesProc>(GetGLProcAddress("glGenQueries"));
2145 } else {
2146 fn.glGenQueriesFn =
2147 reinterpret_cast<glGenQueriesProc>(glGenQueriesNotBound);
2148 }
2149 DCHECK(fn.glGenQueriesFn);
1244 2150
1245 fn.glGenQueriesARBFn = 0; 2151 fn.glGenQueriesARBFn = 0;
1246 debug_fn.glGenQueriesARBFn = 0; 2152 debug_fn.glGenQueriesARBFn = 0;
1247 if (ext.b_GL_ARB_occlusion_query) { 2153 if (ext.b_GL_ARB_occlusion_query) {
1248 fn.glGenQueriesARBFn = reinterpret_cast<glGenQueriesARBProc>( 2154 fn.glGenQueriesARBFn = reinterpret_cast<glGenQueriesARBProc>(
1249 GetGLProcAddress("glGenQueriesARB")); 2155 GetGLProcAddress("glGenQueriesARB"));
1250 } 2156 } else if ((ext.b_GL_EXT_disjoint_timer_query ||
1251 if (!fn.glGenQueriesARBFn) { 2157 ext.b_GL_EXT_occlusion_query_boolean)) {
1252 fn.glGenQueriesARBFn = reinterpret_cast<glGenQueriesARBProc>( 2158 fn.glGenQueriesARBFn = reinterpret_cast<glGenQueriesARBProc>(
1253 GetGLProcAddress("glGenQueriesEXT")); 2159 GetGLProcAddress("glGenQueriesEXT"));
1254 } 2160 } else {
1255 2161 fn.glGenQueriesARBFn =
1256 fn.glGenRenderbuffersEXTFn = 0; 2162 reinterpret_cast<glGenQueriesARBProc>(glGenQueriesARBNotBound);
1257 debug_fn.glGenRenderbuffersEXTFn = 0; 2163 }
1258 if (ext.b_GL_EXT_framebuffer_object) { 2164 DCHECK(fn.glGenQueriesARBFn);
1259 fn.glGenRenderbuffersEXTFn = reinterpret_cast<glGenRenderbuffersEXTProc>( 2165
1260 GetGLProcAddress("glGenRenderbuffersEXT")); 2166 fn.glGenSamplersFn = 0;
1261 } 2167 debug_fn.glGenSamplersFn = 0;
1262 if (!fn.glGenRenderbuffersEXTFn) { 2168 if (((!ver->is_es &&
1263 fn.glGenRenderbuffersEXTFn = reinterpret_cast<glGenRenderbuffersEXTProc>( 2169 (ver->major_version > 3u ||
1264 GetGLProcAddress("glGenRenderbuffers")); 2170 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
1265 } 2171 (ver->is_es && (ver->major_version >= 3u)))) {
2172 fn.glGenSamplersFn =
2173 reinterpret_cast<glGenSamplersProc>(GetGLProcAddress("glGenSamplers"));
2174 } else {
2175 fn.glGenSamplersFn =
2176 reinterpret_cast<glGenSamplersProc>(glGenSamplersNotBound);
2177 }
2178 DCHECK(fn.glGenSamplersFn);
2179
2180 fn.glGenTransformFeedbacksFn = 0;
2181 debug_fn.glGenTransformFeedbacksFn = 0;
2182 if (((ver->is_es && (ver->major_version >= 3u)) ||
2183 (!ver->is_es && (ver->major_version >= 4u)))) {
2184 fn.glGenTransformFeedbacksFn =
2185 reinterpret_cast<glGenTransformFeedbacksProc>(
2186 GetGLProcAddress("glGenTransformFeedbacks"));
2187 } else {
2188 fn.glGenTransformFeedbacksFn =
2189 reinterpret_cast<glGenTransformFeedbacksProc>(
2190 glGenTransformFeedbacksNotBound);
2191 }
2192 DCHECK(fn.glGenTransformFeedbacksFn);
1266 2193
1267 fn.glGenVertexArraysOESFn = 0; 2194 fn.glGenVertexArraysOESFn = 0;
1268 debug_fn.glGenVertexArraysOESFn = 0; 2195 debug_fn.glGenVertexArraysOESFn = 0;
1269 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 2196 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2197 (ver->is_es && (ver->major_version >= 3u))) ||
1270 ext.b_GL_ARB_vertex_array_object) { 2198 ext.b_GL_ARB_vertex_array_object) {
1271 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>( 2199 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>(
1272 GetGLProcAddress("glGenVertexArrays")); 2200 GetGLProcAddress("glGenVertexArrays"));
1273 } 2201 } else if (ext.b_GL_OES_vertex_array_object) {
1274 if (!fn.glGenVertexArraysOESFn && (ext.b_GL_OES_vertex_array_object)) {
1275 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>( 2202 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>(
1276 GetGLProcAddress("glGenVertexArraysOES")); 2203 GetGLProcAddress("glGenVertexArraysOES"));
1277 } 2204 } else if (ext.b_GL_APPLE_vertex_array_object) {
1278 if (!fn.glGenVertexArraysOESFn) {
1279 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>( 2205 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>(
1280 GetGLProcAddress("glGenVertexArraysAPPLE")); 2206 GetGLProcAddress("glGenVertexArraysAPPLE"));
1281 } 2207 } else {
1282 2208 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>(
1283 fn.glGetFramebufferAttachmentParameterivEXTFn = 0; 2209 glGenVertexArraysOESNotBound);
1284 debug_fn.glGetFramebufferAttachmentParameterivEXTFn = 0; 2210 }
1285 if (ext.b_GL_EXT_framebuffer_object) { 2211 DCHECK(fn.glGenVertexArraysOESFn);
1286 fn.glGetFramebufferAttachmentParameterivEXTFn = 2212
1287 reinterpret_cast<glGetFramebufferAttachmentParameterivEXTProc>( 2213 fn.glGetActiveUniformBlockivFn = 0;
1288 GetGLProcAddress("glGetFramebufferAttachmentParameterivEXT")); 2214 debug_fn.glGetActiveUniformBlockivFn = 0;
1289 } 2215 if (((ver->is_es && (ver->major_version >= 3u)) ||
1290 if (!fn.glGetFramebufferAttachmentParameterivEXTFn) { 2216 (!ver->is_es &&
1291 fn.glGetFramebufferAttachmentParameterivEXTFn = 2217 (ver->major_version > 3u ||
1292 reinterpret_cast<glGetFramebufferAttachmentParameterivEXTProc>( 2218 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
1293 GetGLProcAddress("glGetFramebufferAttachmentParameteriv")); 2219 fn.glGetActiveUniformBlockivFn =
1294 } 2220 reinterpret_cast<glGetActiveUniformBlockivProc>(
2221 GetGLProcAddress("glGetActiveUniformBlockiv"));
2222 } else {
2223 fn.glGetActiveUniformBlockivFn =
2224 reinterpret_cast<glGetActiveUniformBlockivProc>(
2225 glGetActiveUniformBlockivNotBound);
2226 }
2227 DCHECK(fn.glGetActiveUniformBlockivFn);
2228
2229 fn.glGetActiveUniformBlockNameFn = 0;
2230 debug_fn.glGetActiveUniformBlockNameFn = 0;
2231 if (((ver->is_es && (ver->major_version >= 3u)) ||
2232 (!ver->is_es &&
2233 (ver->major_version > 3u ||
2234 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
2235 fn.glGetActiveUniformBlockNameFn =
2236 reinterpret_cast<glGetActiveUniformBlockNameProc>(
2237 GetGLProcAddress("glGetActiveUniformBlockName"));
2238 } else {
2239 fn.glGetActiveUniformBlockNameFn =
2240 reinterpret_cast<glGetActiveUniformBlockNameProc>(
2241 glGetActiveUniformBlockNameNotBound);
2242 }
2243 DCHECK(fn.glGetActiveUniformBlockNameFn);
2244
2245 fn.glGetActiveUniformsivFn = 0;
2246 debug_fn.glGetActiveUniformsivFn = 0;
2247 if (((ver->is_es && (ver->major_version >= 3u)) ||
2248 (!ver->is_es &&
2249 (ver->major_version > 3u ||
2250 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
2251 fn.glGetActiveUniformsivFn = reinterpret_cast<glGetActiveUniformsivProc>(
2252 GetGLProcAddress("glGetActiveUniformsiv"));
2253 } else {
2254 fn.glGetActiveUniformsivFn = reinterpret_cast<glGetActiveUniformsivProc>(
2255 glGetActiveUniformsivNotBound);
2256 }
2257 DCHECK(fn.glGetActiveUniformsivFn);
2258
2259 fn.glGetFenceivNVFn = 0;
2260 debug_fn.glGetFenceivNVFn = 0;
2261 if (ext.b_GL_NV_fence) {
2262 fn.glGetFenceivNVFn = reinterpret_cast<glGetFenceivNVProc>(
2263 GetGLProcAddress("glGetFenceivNV"));
2264 } else {
2265 fn.glGetFenceivNVFn =
2266 reinterpret_cast<glGetFenceivNVProc>(glGetFenceivNVNotBound);
2267 }
2268 DCHECK(fn.glGetFenceivNVFn);
2269
2270 fn.glGetFragDataLocationFn = 0;
2271 debug_fn.glGetFragDataLocationFn = 0;
2272 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2273 (ver->is_es && (ver->major_version >= 3u)))) {
2274 fn.glGetFragDataLocationFn = reinterpret_cast<glGetFragDataLocationProc>(
2275 GetGLProcAddress("glGetFragDataLocation"));
2276 } else {
2277 fn.glGetFragDataLocationFn = reinterpret_cast<glGetFragDataLocationProc>(
2278 glGetFragDataLocationNotBound);
2279 }
2280 DCHECK(fn.glGetFragDataLocationFn);
1295 2281
1296 fn.glGetGraphicsResetStatusARBFn = 0; 2282 fn.glGetGraphicsResetStatusARBFn = 0;
1297 debug_fn.glGetGraphicsResetStatusARBFn = 0; 2283 debug_fn.glGetGraphicsResetStatusARBFn = 0;
1298 if (ext.b_GL_ARB_robustness) { 2284 if (((!ver->is_es &&
2285 (ver->major_version > 4u ||
2286 (ver->major_version == 4u && ver->minor_version >= 5u))))) {
2287 fn.glGetGraphicsResetStatusARBFn =
2288 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
2289 GetGLProcAddress("glGetGraphicsResetStatus"));
2290 } else if (ext.b_GL_ARB_robustness) {
1299 fn.glGetGraphicsResetStatusARBFn = 2291 fn.glGetGraphicsResetStatusARBFn =
1300 reinterpret_cast<glGetGraphicsResetStatusARBProc>( 2292 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
1301 GetGLProcAddress("glGetGraphicsResetStatusARB")); 2293 GetGLProcAddress("glGetGraphicsResetStatusARB"));
1302 } 2294 } else if (ext.b_GL_KHR_robustness) {
1303 if (!fn.glGetGraphicsResetStatusARBFn && (ext.b_GL_KHR_robustness)) {
1304 fn.glGetGraphicsResetStatusARBFn = 2295 fn.glGetGraphicsResetStatusARBFn =
1305 reinterpret_cast<glGetGraphicsResetStatusARBProc>( 2296 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
1306 GetGLProcAddress("glGetGraphicsResetStatusKHR")); 2297 GetGLProcAddress("glGetGraphicsResetStatusKHR"));
1307 } 2298 } else if (ext.b_GL_EXT_robustness) {
1308 if (!fn.glGetGraphicsResetStatusARBFn && (ext.b_GL_EXT_robustness)) {
1309 fn.glGetGraphicsResetStatusARBFn = 2299 fn.glGetGraphicsResetStatusARBFn =
1310 reinterpret_cast<glGetGraphicsResetStatusARBProc>( 2300 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
1311 GetGLProcAddress("glGetGraphicsResetStatusEXT")); 2301 GetGLProcAddress("glGetGraphicsResetStatusEXT"));
1312 } 2302 } else {
1313 if (!fn.glGetGraphicsResetStatusARBFn) {
1314 fn.glGetGraphicsResetStatusARBFn = 2303 fn.glGetGraphicsResetStatusARBFn =
1315 reinterpret_cast<glGetGraphicsResetStatusARBProc>( 2304 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
1316 GetGLProcAddress("glGetGraphicsResetStatus")); 2305 glGetGraphicsResetStatusARBNotBound);
1317 } 2306 }
2307 DCHECK(fn.glGetGraphicsResetStatusARBFn);
2308
2309 fn.glGetInteger64i_vFn = 0;
2310 debug_fn.glGetInteger64i_vFn = 0;
2311 if (((!ver->is_es &&
2312 (ver->major_version > 3u ||
2313 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
2314 (ver->is_es && (ver->major_version >= 3u)))) {
2315 fn.glGetInteger64i_vFn = reinterpret_cast<glGetInteger64i_vProc>(
2316 GetGLProcAddress("glGetInteger64i_v"));
2317 } else {
2318 fn.glGetInteger64i_vFn =
2319 reinterpret_cast<glGetInteger64i_vProc>(glGetInteger64i_vNotBound);
2320 }
2321 DCHECK(fn.glGetInteger64i_vFn);
2322
2323 fn.glGetInteger64vFn = 0;
2324 debug_fn.glGetInteger64vFn = 0;
2325 if (((!ver->is_es &&
2326 (ver->major_version > 3u ||
2327 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
2328 (ver->is_es && (ver->major_version >= 3u)))) {
2329 fn.glGetInteger64vFn = reinterpret_cast<glGetInteger64vProc>(
2330 GetGLProcAddress("glGetInteger64v"));
2331 } else {
2332 fn.glGetInteger64vFn =
2333 reinterpret_cast<glGetInteger64vProc>(glGetInteger64vNotBound);
2334 }
2335 DCHECK(fn.glGetInteger64vFn);
2336
2337 fn.glGetIntegeri_vFn = 0;
2338 debug_fn.glGetIntegeri_vFn = 0;
2339 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2340 (ver->is_es && (ver->major_version >= 3u)))) {
2341 fn.glGetIntegeri_vFn = reinterpret_cast<glGetIntegeri_vProc>(
2342 GetGLProcAddress("glGetIntegeri_v"));
2343 } else {
2344 fn.glGetIntegeri_vFn =
2345 reinterpret_cast<glGetIntegeri_vProc>(glGetIntegeri_vNotBound);
2346 }
2347 DCHECK(fn.glGetIntegeri_vFn);
2348
2349 fn.glGetInternalformativFn = 0;
2350 debug_fn.glGetInternalformativFn = 0;
2351 if (((!ver->is_es &&
2352 (ver->major_version > 4u ||
2353 (ver->major_version == 4u && ver->minor_version >= 2u))) ||
2354 (ver->is_es && (ver->major_version >= 3u)))) {
2355 fn.glGetInternalformativFn = reinterpret_cast<glGetInternalformativProc>(
2356 GetGLProcAddress("glGetInternalformativ"));
2357 } else {
2358 fn.glGetInternalformativFn = reinterpret_cast<glGetInternalformativProc>(
2359 glGetInternalformativNotBound);
2360 }
2361 DCHECK(fn.glGetInternalformativFn);
1318 2362
1319 fn.glGetProgramBinaryFn = 0; 2363 fn.glGetProgramBinaryFn = 0;
1320 debug_fn.glGetProgramBinaryFn = 0; 2364 debug_fn.glGetProgramBinaryFn = 0;
1321 if (ext.b_GL_OES_get_program_binary) { 2365 if (((!ver->is_es &&
2366 (ver->major_version > 4u ||
2367 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
2368 (ver->is_es && (ver->major_version >= 3u))) ||
2369 ext.b_GL_ARB_get_program_binary) {
2370 fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>(
2371 GetGLProcAddress("glGetProgramBinary"));
2372 } else if (ext.b_GL_OES_get_program_binary) {
1322 fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>( 2373 fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>(
1323 GetGLProcAddress("glGetProgramBinaryOES")); 2374 GetGLProcAddress("glGetProgramBinaryOES"));
1324 } 2375 } else {
1325 if (!fn.glGetProgramBinaryFn) { 2376 fn.glGetProgramBinaryFn =
1326 fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>( 2377 reinterpret_cast<glGetProgramBinaryProc>(glGetProgramBinaryNotBound);
1327 GetGLProcAddress("glGetProgramBinary")); 2378 }
1328 } 2379 DCHECK(fn.glGetProgramBinaryFn);
2380
2381 fn.glGetQueryivFn = 0;
2382 debug_fn.glGetQueryivFn = 0;
2383 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
2384 fn.glGetQueryivFn =
2385 reinterpret_cast<glGetQueryivProc>(GetGLProcAddress("glGetQueryiv"));
2386 } else {
2387 fn.glGetQueryivFn =
2388 reinterpret_cast<glGetQueryivProc>(glGetQueryivNotBound);
2389 }
2390 DCHECK(fn.glGetQueryivFn);
1329 2391
1330 fn.glGetQueryivARBFn = 0; 2392 fn.glGetQueryivARBFn = 0;
1331 debug_fn.glGetQueryivARBFn = 0; 2393 debug_fn.glGetQueryivARBFn = 0;
1332 if (ext.b_GL_ARB_occlusion_query) { 2394 if (ext.b_GL_ARB_occlusion_query) {
1333 fn.glGetQueryivARBFn = reinterpret_cast<glGetQueryivARBProc>( 2395 fn.glGetQueryivARBFn = reinterpret_cast<glGetQueryivARBProc>(
1334 GetGLProcAddress("glGetQueryivARB")); 2396 GetGLProcAddress("glGetQueryivARB"));
1335 } 2397 } else if ((ext.b_GL_EXT_disjoint_timer_query ||
1336 if (!fn.glGetQueryivARBFn) { 2398 ext.b_GL_EXT_occlusion_query_boolean)) {
1337 fn.glGetQueryivARBFn = reinterpret_cast<glGetQueryivARBProc>( 2399 fn.glGetQueryivARBFn = reinterpret_cast<glGetQueryivARBProc>(
1338 GetGLProcAddress("glGetQueryivEXT")); 2400 GetGLProcAddress("glGetQueryivEXT"));
1339 } 2401 } else {
2402 fn.glGetQueryivARBFn =
2403 reinterpret_cast<glGetQueryivARBProc>(glGetQueryivARBNotBound);
2404 }
2405 DCHECK(fn.glGetQueryivARBFn);
2406
2407 fn.glGetQueryObjecti64vFn = 0;
2408 debug_fn.glGetQueryObjecti64vFn = 0;
2409 if (((!ver->is_es &&
2410 (ver->major_version > 3u ||
2411 (ver->major_version == 3u && ver->minor_version >= 3u)))) ||
2412 ext.b_GL_ARB_timer_query) {
2413 fn.glGetQueryObjecti64vFn = reinterpret_cast<glGetQueryObjecti64vProc>(
2414 GetGLProcAddress("glGetQueryObjecti64v"));
2415 } else if ((ext.b_GL_EXT_timer_query || ext.b_GL_EXT_disjoint_timer_query)) {
2416 fn.glGetQueryObjecti64vFn = reinterpret_cast<glGetQueryObjecti64vProc>(
2417 GetGLProcAddress("glGetQueryObjecti64vEXT"));
2418 } else {
2419 fn.glGetQueryObjecti64vFn = reinterpret_cast<glGetQueryObjecti64vProc>(
2420 glGetQueryObjecti64vNotBound);
2421 }
2422 DCHECK(fn.glGetQueryObjecti64vFn);
2423
2424 fn.glGetQueryObjectivFn = 0;
2425 debug_fn.glGetQueryObjectivFn = 0;
2426 if (!ver->is_es) {
2427 fn.glGetQueryObjectivFn = reinterpret_cast<glGetQueryObjectivProc>(
2428 GetGLProcAddress("glGetQueryObjectiv"));
2429 } else {
2430 fn.glGetQueryObjectivFn =
2431 reinterpret_cast<glGetQueryObjectivProc>(glGetQueryObjectivNotBound);
2432 }
2433 DCHECK(fn.glGetQueryObjectivFn);
1340 2434
1341 fn.glGetQueryObjectivARBFn = 0; 2435 fn.glGetQueryObjectivARBFn = 0;
1342 debug_fn.glGetQueryObjectivARBFn = 0; 2436 debug_fn.glGetQueryObjectivARBFn = 0;
1343 if (ext.b_GL_ARB_occlusion_query) { 2437 if (ext.b_GL_ARB_occlusion_query) {
1344 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>( 2438 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>(
1345 GetGLProcAddress("glGetQueryObjectivARB")); 2439 GetGLProcAddress("glGetQueryObjectivARB"));
1346 } 2440 } else if (ext.b_GL_EXT_disjoint_timer_query) {
1347 if (!fn.glGetQueryObjectivARBFn) {
1348 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>( 2441 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>(
1349 GetGLProcAddress("glGetQueryObjectivEXT")); 2442 GetGLProcAddress("glGetQueryObjectivEXT"));
1350 } 2443 } else {
2444 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>(
2445 glGetQueryObjectivARBNotBound);
2446 }
2447 DCHECK(fn.glGetQueryObjectivARBFn);
1351 2448
1352 fn.glGetQueryObjectui64vFn = 0; 2449 fn.glGetQueryObjectui64vFn = 0;
1353 debug_fn.glGetQueryObjectui64vFn = 0; 2450 debug_fn.glGetQueryObjectui64vFn = 0;
1354 if (ext.b_GL_ARB_timer_query) { 2451 if (((!ver->is_es &&
2452 (ver->major_version > 3u ||
2453 (ver->major_version == 3u && ver->minor_version >= 3u)))) ||
2454 ext.b_GL_ARB_timer_query) {
1355 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>( 2455 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>(
1356 GetGLProcAddress("glGetQueryObjectui64v")); 2456 GetGLProcAddress("glGetQueryObjectui64v"));
1357 } 2457 } else if ((ext.b_GL_EXT_timer_query || ext.b_GL_EXT_disjoint_timer_query)) {
1358 if (!fn.glGetQueryObjectui64vFn) {
1359 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>( 2458 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>(
1360 GetGLProcAddress("glGetQueryObjectui64vEXT")); 2459 GetGLProcAddress("glGetQueryObjectui64vEXT"));
1361 } 2460 } else {
2461 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>(
2462 glGetQueryObjectui64vNotBound);
2463 }
2464 DCHECK(fn.glGetQueryObjectui64vFn);
2465
2466 fn.glGetQueryObjectuivFn = 0;
2467 debug_fn.glGetQueryObjectuivFn = 0;
2468 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
2469 fn.glGetQueryObjectuivFn = reinterpret_cast<glGetQueryObjectuivProc>(
2470 GetGLProcAddress("glGetQueryObjectuiv"));
2471 } else {
2472 fn.glGetQueryObjectuivFn =
2473 reinterpret_cast<glGetQueryObjectuivProc>(glGetQueryObjectuivNotBound);
2474 }
2475 DCHECK(fn.glGetQueryObjectuivFn);
1362 2476
1363 fn.glGetQueryObjectuivARBFn = 0; 2477 fn.glGetQueryObjectuivARBFn = 0;
1364 debug_fn.glGetQueryObjectuivARBFn = 0; 2478 debug_fn.glGetQueryObjectuivARBFn = 0;
1365 if (ext.b_GL_ARB_occlusion_query) { 2479 if (ext.b_GL_ARB_occlusion_query) {
1366 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>( 2480 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>(
1367 GetGLProcAddress("glGetQueryObjectuivARB")); 2481 GetGLProcAddress("glGetQueryObjectuivARB"));
1368 } 2482 } else if ((ext.b_GL_EXT_disjoint_timer_query ||
1369 if (!fn.glGetQueryObjectuivARBFn) { 2483 ext.b_GL_EXT_occlusion_query_boolean)) {
1370 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>( 2484 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>(
1371 GetGLProcAddress("glGetQueryObjectuivEXT")); 2485 GetGLProcAddress("glGetQueryObjectuivEXT"));
1372 } 2486 } else {
1373 2487 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>(
1374 fn.glGetRenderbufferParameterivEXTFn = 0; 2488 glGetQueryObjectuivARBNotBound);
1375 debug_fn.glGetRenderbufferParameterivEXTFn = 0; 2489 }
1376 if (ext.b_GL_EXT_framebuffer_object) { 2490 DCHECK(fn.glGetQueryObjectuivARBFn);
1377 fn.glGetRenderbufferParameterivEXTFn = 2491
1378 reinterpret_cast<glGetRenderbufferParameterivEXTProc>( 2492 fn.glGetSamplerParameterfvFn = 0;
1379 GetGLProcAddress("glGetRenderbufferParameterivEXT")); 2493 debug_fn.glGetSamplerParameterfvFn = 0;
1380 } 2494 if (((!ver->is_es &&
1381 if (!fn.glGetRenderbufferParameterivEXTFn) { 2495 (ver->major_version > 3u ||
1382 fn.glGetRenderbufferParameterivEXTFn = 2496 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
1383 reinterpret_cast<glGetRenderbufferParameterivEXTProc>( 2497 (ver->is_es && (ver->major_version >= 3u)))) {
1384 GetGLProcAddress("glGetRenderbufferParameteriv")); 2498 fn.glGetSamplerParameterfvFn =
1385 } 2499 reinterpret_cast<glGetSamplerParameterfvProc>(
1386 2500 GetGLProcAddress("glGetSamplerParameterfv"));
1387 fn.glIsFramebufferEXTFn = 0; 2501 } else {
1388 debug_fn.glIsFramebufferEXTFn = 0; 2502 fn.glGetSamplerParameterfvFn =
1389 if (ext.b_GL_EXT_framebuffer_object) { 2503 reinterpret_cast<glGetSamplerParameterfvProc>(
1390 fn.glIsFramebufferEXTFn = reinterpret_cast<glIsFramebufferEXTProc>( 2504 glGetSamplerParameterfvNotBound);
1391 GetGLProcAddress("glIsFramebufferEXT")); 2505 }
1392 } 2506 DCHECK(fn.glGetSamplerParameterfvFn);
1393 if (!fn.glIsFramebufferEXTFn) { 2507
1394 fn.glIsFramebufferEXTFn = reinterpret_cast<glIsFramebufferEXTProc>( 2508 fn.glGetSamplerParameterivFn = 0;
1395 GetGLProcAddress("glIsFramebuffer")); 2509 debug_fn.glGetSamplerParameterivFn = 0;
1396 } 2510 if (((!ver->is_es &&
2511 (ver->major_version > 3u ||
2512 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
2513 (ver->is_es && (ver->major_version >= 3u)))) {
2514 fn.glGetSamplerParameterivFn =
2515 reinterpret_cast<glGetSamplerParameterivProc>(
2516 GetGLProcAddress("glGetSamplerParameteriv"));
2517 } else {
2518 fn.glGetSamplerParameterivFn =
2519 reinterpret_cast<glGetSamplerParameterivProc>(
2520 glGetSamplerParameterivNotBound);
2521 }
2522 DCHECK(fn.glGetSamplerParameterivFn);
2523
2524 fn.glGetShaderPrecisionFormatFn = 0;
2525 debug_fn.glGetShaderPrecisionFormatFn = 0;
2526 if (((!ver->is_es &&
2527 (ver->major_version > 4u ||
2528 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
2529 ver->is_es)) {
2530 fn.glGetShaderPrecisionFormatFn =
2531 reinterpret_cast<glGetShaderPrecisionFormatProc>(
2532 GetGLProcAddress("glGetShaderPrecisionFormat"));
2533 } else {
2534 fn.glGetShaderPrecisionFormatFn =
2535 reinterpret_cast<glGetShaderPrecisionFormatProc>(
2536 glGetShaderPrecisionFormatNotBound);
2537 }
2538 DCHECK(fn.glGetShaderPrecisionFormatFn);
2539
2540 fn.glGetSyncivFn = 0;
2541 debug_fn.glGetSyncivFn = 0;
2542 if (((!ver->is_es &&
2543 (ver->major_version > 3u ||
2544 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
2545 (ver->is_es && (ver->major_version >= 3u))) ||
2546 ext.b_GL_ARB_sync) {
2547 fn.glGetSyncivFn =
2548 reinterpret_cast<glGetSyncivProc>(GetGLProcAddress("glGetSynciv"));
2549 } else {
2550 fn.glGetSyncivFn = reinterpret_cast<glGetSyncivProc>(glGetSyncivNotBound);
2551 }
2552 DCHECK(fn.glGetSyncivFn);
2553
2554 fn.glGetTexLevelParameterfvFn = 0;
2555 debug_fn.glGetTexLevelParameterfvFn = 0;
2556 if ((!ver->is_es || (ver->is_es && (ver->major_version > 3u ||
2557 (ver->major_version == 3u &&
2558 ver->minor_version >= 1u))))) {
2559 fn.glGetTexLevelParameterfvFn =
2560 reinterpret_cast<glGetTexLevelParameterfvProc>(
2561 GetGLProcAddress("glGetTexLevelParameterfv"));
2562 } else {
2563 fn.glGetTexLevelParameterfvFn =
2564 reinterpret_cast<glGetTexLevelParameterfvProc>(
2565 glGetTexLevelParameterfvNotBound);
2566 }
2567 DCHECK(fn.glGetTexLevelParameterfvFn);
2568
2569 fn.glGetTexLevelParameterivFn = 0;
2570 debug_fn.glGetTexLevelParameterivFn = 0;
2571 if ((!ver->is_es || (ver->is_es && (ver->major_version > 3u ||
2572 (ver->major_version == 3u &&
2573 ver->minor_version >= 1u))))) {
2574 fn.glGetTexLevelParameterivFn =
2575 reinterpret_cast<glGetTexLevelParameterivProc>(
2576 GetGLProcAddress("glGetTexLevelParameteriv"));
2577 } else {
2578 fn.glGetTexLevelParameterivFn =
2579 reinterpret_cast<glGetTexLevelParameterivProc>(
2580 glGetTexLevelParameterivNotBound);
2581 }
2582 DCHECK(fn.glGetTexLevelParameterivFn);
2583
2584 fn.glGetTransformFeedbackVaryingFn = 0;
2585 debug_fn.glGetTransformFeedbackVaryingFn = 0;
2586 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2587 (ver->is_es && (ver->major_version >= 3u)))) {
2588 fn.glGetTransformFeedbackVaryingFn =
2589 reinterpret_cast<glGetTransformFeedbackVaryingProc>(
2590 GetGLProcAddress("glGetTransformFeedbackVarying"));
2591 } else {
2592 fn.glGetTransformFeedbackVaryingFn =
2593 reinterpret_cast<glGetTransformFeedbackVaryingProc>(
2594 glGetTransformFeedbackVaryingNotBound);
2595 }
2596 DCHECK(fn.glGetTransformFeedbackVaryingFn);
2597
2598 fn.glGetTranslatedShaderSourceANGLEFn = 0;
2599 debug_fn.glGetTranslatedShaderSourceANGLEFn = 0;
2600 if (ext.b_GL_ANGLE_translated_shader_source) {
2601 fn.glGetTranslatedShaderSourceANGLEFn =
2602 reinterpret_cast<glGetTranslatedShaderSourceANGLEProc>(
2603 GetGLProcAddress("glGetTranslatedShaderSourceANGLE"));
2604 } else {
2605 fn.glGetTranslatedShaderSourceANGLEFn =
2606 reinterpret_cast<glGetTranslatedShaderSourceANGLEProc>(
2607 glGetTranslatedShaderSourceANGLENotBound);
2608 }
2609 DCHECK(fn.glGetTranslatedShaderSourceANGLEFn);
2610
2611 fn.glGetUniformBlockIndexFn = 0;
2612 debug_fn.glGetUniformBlockIndexFn = 0;
2613 if (((ver->is_es && (ver->major_version >= 3u)) ||
2614 (!ver->is_es &&
2615 (ver->major_version > 3u ||
2616 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
2617 fn.glGetUniformBlockIndexFn = reinterpret_cast<glGetUniformBlockIndexProc>(
2618 GetGLProcAddress("glGetUniformBlockIndex"));
2619 } else {
2620 fn.glGetUniformBlockIndexFn = reinterpret_cast<glGetUniformBlockIndexProc>(
2621 glGetUniformBlockIndexNotBound);
2622 }
2623 DCHECK(fn.glGetUniformBlockIndexFn);
2624
2625 fn.glGetUniformIndicesFn = 0;
2626 debug_fn.glGetUniformIndicesFn = 0;
2627 if (((ver->is_es && (ver->major_version >= 3u)) ||
2628 (!ver->is_es &&
2629 (ver->major_version > 3u ||
2630 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
2631 fn.glGetUniformIndicesFn = reinterpret_cast<glGetUniformIndicesProc>(
2632 GetGLProcAddress("glGetUniformIndices"));
2633 } else {
2634 fn.glGetUniformIndicesFn =
2635 reinterpret_cast<glGetUniformIndicesProc>(glGetUniformIndicesNotBound);
2636 }
2637 DCHECK(fn.glGetUniformIndicesFn);
2638
2639 fn.glInsertEventMarkerEXTFn = 0;
2640 debug_fn.glInsertEventMarkerEXTFn = 0;
2641 if (ext.b_GL_EXT_debug_marker) {
2642 fn.glInsertEventMarkerEXTFn = reinterpret_cast<glInsertEventMarkerEXTProc>(
2643 GetGLProcAddress("glInsertEventMarkerEXT"));
2644 } else {
2645 fn.glInsertEventMarkerEXTFn = reinterpret_cast<glInsertEventMarkerEXTProc>(
2646 glInsertEventMarkerEXTNotBound);
2647 }
2648 DCHECK(fn.glInsertEventMarkerEXTFn);
2649
2650 fn.glInvalidateFramebufferFn = 0;
2651 debug_fn.glInvalidateFramebufferFn = 0;
2652 if (((!ver->is_es &&
2653 (ver->major_version > 4u ||
2654 (ver->major_version == 4u && ver->minor_version >= 3u))) ||
2655 (ver->is_es && (ver->major_version >= 3u)))) {
2656 fn.glInvalidateFramebufferFn =
2657 reinterpret_cast<glInvalidateFramebufferProc>(
2658 GetGLProcAddress("glInvalidateFramebuffer"));
2659 } else {
2660 fn.glInvalidateFramebufferFn =
2661 reinterpret_cast<glInvalidateFramebufferProc>(
2662 glInvalidateFramebufferNotBound);
2663 }
2664 DCHECK(fn.glInvalidateFramebufferFn);
2665
2666 fn.glInvalidateSubFramebufferFn = 0;
2667 debug_fn.glInvalidateSubFramebufferFn = 0;
2668 if (((!ver->is_es &&
2669 (ver->major_version > 4u ||
2670 (ver->major_version == 4u && ver->minor_version >= 3u))) ||
2671 (ver->is_es && (ver->major_version >= 3u)))) {
2672 fn.glInvalidateSubFramebufferFn =
2673 reinterpret_cast<glInvalidateSubFramebufferProc>(
2674 GetGLProcAddress("glInvalidateSubFramebuffer"));
2675 } else {
2676 fn.glInvalidateSubFramebufferFn =
2677 reinterpret_cast<glInvalidateSubFramebufferProc>(
2678 glInvalidateSubFramebufferNotBound);
2679 }
2680 DCHECK(fn.glInvalidateSubFramebufferFn);
2681
2682 fn.glIsFenceAPPLEFn = 0;
2683 debug_fn.glIsFenceAPPLEFn = 0;
2684 if (ext.b_GL_APPLE_fence) {
2685 fn.glIsFenceAPPLEFn = reinterpret_cast<glIsFenceAPPLEProc>(
2686 GetGLProcAddress("glIsFenceAPPLE"));
2687 } else {
2688 fn.glIsFenceAPPLEFn =
2689 reinterpret_cast<glIsFenceAPPLEProc>(glIsFenceAPPLENotBound);
2690 }
2691 DCHECK(fn.glIsFenceAPPLEFn);
2692
2693 fn.glIsFenceNVFn = 0;
2694 debug_fn.glIsFenceNVFn = 0;
2695 if (ext.b_GL_NV_fence) {
2696 fn.glIsFenceNVFn =
2697 reinterpret_cast<glIsFenceNVProc>(GetGLProcAddress("glIsFenceNV"));
2698 } else {
2699 fn.glIsFenceNVFn = reinterpret_cast<glIsFenceNVProc>(glIsFenceNVNotBound);
2700 }
2701 DCHECK(fn.glIsFenceNVFn);
2702
2703 fn.glIsQueryFn = 0;
2704 debug_fn.glIsQueryFn = 0;
2705 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
2706 fn.glIsQueryFn =
2707 reinterpret_cast<glIsQueryProc>(GetGLProcAddress("glIsQuery"));
2708 } else {
2709 fn.glIsQueryFn = reinterpret_cast<glIsQueryProc>(glIsQueryNotBound);
2710 }
2711 DCHECK(fn.glIsQueryFn);
1397 2712
1398 fn.glIsQueryARBFn = 0; 2713 fn.glIsQueryARBFn = 0;
1399 debug_fn.glIsQueryARBFn = 0; 2714 debug_fn.glIsQueryARBFn = 0;
1400 if (ext.b_GL_ARB_occlusion_query) { 2715 if (ext.b_GL_ARB_occlusion_query) {
1401 fn.glIsQueryARBFn = 2716 fn.glIsQueryARBFn =
1402 reinterpret_cast<glIsQueryARBProc>(GetGLProcAddress("glIsQueryARB")); 2717 reinterpret_cast<glIsQueryARBProc>(GetGLProcAddress("glIsQueryARB"));
1403 } 2718 } else if ((ext.b_GL_EXT_disjoint_timer_query ||
1404 if (!fn.glIsQueryARBFn) { 2719 ext.b_GL_EXT_occlusion_query_boolean)) {
1405 fn.glIsQueryARBFn = 2720 fn.glIsQueryARBFn =
1406 reinterpret_cast<glIsQueryARBProc>(GetGLProcAddress("glIsQueryEXT")); 2721 reinterpret_cast<glIsQueryARBProc>(GetGLProcAddress("glIsQueryEXT"));
1407 } 2722 } else {
1408 2723 fn.glIsQueryARBFn =
1409 fn.glIsRenderbufferEXTFn = 0; 2724 reinterpret_cast<glIsQueryARBProc>(glIsQueryARBNotBound);
1410 debug_fn.glIsRenderbufferEXTFn = 0; 2725 }
1411 if (ext.b_GL_EXT_framebuffer_object) { 2726 DCHECK(fn.glIsQueryARBFn);
1412 fn.glIsRenderbufferEXTFn = reinterpret_cast<glIsRenderbufferEXTProc>( 2727
1413 GetGLProcAddress("glIsRenderbufferEXT")); 2728 fn.glIsSamplerFn = 0;
1414 } 2729 debug_fn.glIsSamplerFn = 0;
1415 if (!fn.glIsRenderbufferEXTFn) { 2730 if (((!ver->is_es &&
1416 fn.glIsRenderbufferEXTFn = reinterpret_cast<glIsRenderbufferEXTProc>( 2731 (ver->major_version > 3u ||
1417 GetGLProcAddress("glIsRenderbuffer")); 2732 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
1418 } 2733 (ver->is_es && (ver->major_version >= 3u)))) {
2734 fn.glIsSamplerFn =
2735 reinterpret_cast<glIsSamplerProc>(GetGLProcAddress("glIsSampler"));
2736 } else {
2737 fn.glIsSamplerFn = reinterpret_cast<glIsSamplerProc>(glIsSamplerNotBound);
2738 }
2739 DCHECK(fn.glIsSamplerFn);
2740
2741 fn.glIsSyncFn = 0;
2742 debug_fn.glIsSyncFn = 0;
2743 if (((!ver->is_es &&
2744 (ver->major_version > 3u ||
2745 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
2746 (ver->is_es && (ver->major_version >= 3u))) ||
2747 ext.b_GL_ARB_sync) {
2748 fn.glIsSyncFn =
2749 reinterpret_cast<glIsSyncProc>(GetGLProcAddress("glIsSync"));
2750 } else {
2751 fn.glIsSyncFn = reinterpret_cast<glIsSyncProc>(glIsSyncNotBound);
2752 }
2753 DCHECK(fn.glIsSyncFn);
2754
2755 fn.glIsTransformFeedbackFn = 0;
2756 debug_fn.glIsTransformFeedbackFn = 0;
2757 if (((ver->is_es && (ver->major_version >= 3u)) ||
2758 (!ver->is_es && (ver->major_version >= 4u)))) {
2759 fn.glIsTransformFeedbackFn = reinterpret_cast<glIsTransformFeedbackProc>(
2760 GetGLProcAddress("glIsTransformFeedback"));
2761 } else {
2762 fn.glIsTransformFeedbackFn = reinterpret_cast<glIsTransformFeedbackProc>(
2763 glIsTransformFeedbackNotBound);
2764 }
2765 DCHECK(fn.glIsTransformFeedbackFn);
1419 2766
1420 fn.glIsVertexArrayOESFn = 0; 2767 fn.glIsVertexArrayOESFn = 0;
1421 debug_fn.glIsVertexArrayOESFn = 0; 2768 debug_fn.glIsVertexArrayOESFn = 0;
1422 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 2769 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2770 (ver->is_es && (ver->major_version >= 3u))) ||
1423 ext.b_GL_ARB_vertex_array_object) { 2771 ext.b_GL_ARB_vertex_array_object) {
1424 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>( 2772 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>(
1425 GetGLProcAddress("glIsVertexArray")); 2773 GetGLProcAddress("glIsVertexArray"));
1426 } 2774 } else if (ext.b_GL_OES_vertex_array_object) {
1427 if (!fn.glIsVertexArrayOESFn && (ext.b_GL_OES_vertex_array_object)) {
1428 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>( 2775 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>(
1429 GetGLProcAddress("glIsVertexArrayOES")); 2776 GetGLProcAddress("glIsVertexArrayOES"));
1430 } 2777 } else if (ext.b_GL_APPLE_vertex_array_object) {
1431 if (!fn.glIsVertexArrayOESFn) {
1432 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>( 2778 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>(
1433 GetGLProcAddress("glIsVertexArrayAPPLE")); 2779 GetGLProcAddress("glIsVertexArrayAPPLE"));
1434 } 2780 } else {
2781 fn.glIsVertexArrayOESFn =
2782 reinterpret_cast<glIsVertexArrayOESProc>(glIsVertexArrayOESNotBound);
2783 }
2784 DCHECK(fn.glIsVertexArrayOESFn);
1435 2785
1436 fn.glMapBufferFn = 0; 2786 fn.glMapBufferFn = 0;
1437 debug_fn.glMapBufferFn = 0; 2787 debug_fn.glMapBufferFn = 0;
1438 if (ext.b_GL_OES_mapbuffer) { 2788 if (!ver->is_es) {
2789 fn.glMapBufferFn =
2790 reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBuffer"));
2791 } else if (ext.b_GL_OES_mapbuffer) {
1439 fn.glMapBufferFn = 2792 fn.glMapBufferFn =
1440 reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBufferOES")); 2793 reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBufferOES"));
1441 } 2794 } else {
1442 if (!fn.glMapBufferFn) { 2795 fn.glMapBufferFn = reinterpret_cast<glMapBufferProc>(glMapBufferNotBound);
1443 fn.glMapBufferFn = 2796 }
1444 reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBuffer")); 2797 DCHECK(fn.glMapBufferFn);
1445 }
1446 2798
1447 fn.glMapBufferRangeFn = 0; 2799 fn.glMapBufferRangeFn = 0;
1448 debug_fn.glMapBufferRangeFn = 0; 2800 debug_fn.glMapBufferRangeFn = 0;
1449 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 2801 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2802 (ver->is_es && (ver->major_version >= 3u))) ||
1450 ext.b_GL_ARB_map_buffer_range) { 2803 ext.b_GL_ARB_map_buffer_range) {
1451 fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>( 2804 fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>(
1452 GetGLProcAddress("glMapBufferRange")); 2805 GetGLProcAddress("glMapBufferRange"));
1453 } 2806 } else if (ext.b_GL_EXT_map_buffer_range) {
1454 if (!fn.glMapBufferRangeFn) {
1455 fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>( 2807 fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>(
1456 GetGLProcAddress("glMapBufferRangeEXT")); 2808 GetGLProcAddress("glMapBufferRangeEXT"));
1457 } 2809 } else {
2810 fn.glMapBufferRangeFn =
2811 reinterpret_cast<glMapBufferRangeProc>(glMapBufferRangeNotBound);
2812 }
2813 DCHECK(fn.glMapBufferRangeFn);
2814
2815 fn.glMatrixLoadfEXTFn = 0;
2816 debug_fn.glMatrixLoadfEXTFn = 0;
2817 if ((ext.b_GL_EXT_direct_state_access || ext.b_GL_NV_path_rendering)) {
2818 fn.glMatrixLoadfEXTFn = reinterpret_cast<glMatrixLoadfEXTProc>(
2819 GetGLProcAddress("glMatrixLoadfEXT"));
2820 } else {
2821 fn.glMatrixLoadfEXTFn =
2822 reinterpret_cast<glMatrixLoadfEXTProc>(glMatrixLoadfEXTNotBound);
2823 }
2824 DCHECK(fn.glMatrixLoadfEXTFn);
2825
2826 fn.glMatrixLoadIdentityEXTFn = 0;
2827 debug_fn.glMatrixLoadIdentityEXTFn = 0;
2828 if ((ext.b_GL_EXT_direct_state_access || ext.b_GL_NV_path_rendering)) {
2829 fn.glMatrixLoadIdentityEXTFn =
2830 reinterpret_cast<glMatrixLoadIdentityEXTProc>(
2831 GetGLProcAddress("glMatrixLoadIdentityEXT"));
2832 } else {
2833 fn.glMatrixLoadIdentityEXTFn =
2834 reinterpret_cast<glMatrixLoadIdentityEXTProc>(
2835 glMatrixLoadIdentityEXTNotBound);
2836 }
2837 DCHECK(fn.glMatrixLoadIdentityEXTFn);
2838
2839 fn.glPauseTransformFeedbackFn = 0;
2840 debug_fn.glPauseTransformFeedbackFn = 0;
2841 if (((ver->is_es && (ver->major_version >= 3u)) ||
2842 (!ver->is_es && (ver->major_version >= 4u)))) {
2843 fn.glPauseTransformFeedbackFn =
2844 reinterpret_cast<glPauseTransformFeedbackProc>(
2845 GetGLProcAddress("glPauseTransformFeedback"));
2846 } else {
2847 fn.glPauseTransformFeedbackFn =
2848 reinterpret_cast<glPauseTransformFeedbackProc>(
2849 glPauseTransformFeedbackNotBound);
2850 }
2851 DCHECK(fn.glPauseTransformFeedbackFn);
2852
2853 fn.glPointParameteriFn = 0;
2854 debug_fn.glPointParameteriFn = 0;
2855 if (!ver->is_es) {
2856 fn.glPointParameteriFn = reinterpret_cast<glPointParameteriProc>(
2857 GetGLProcAddress("glPointParameteri"));
2858 } else {
2859 fn.glPointParameteriFn =
2860 reinterpret_cast<glPointParameteriProc>(glPointParameteriNotBound);
2861 }
2862 DCHECK(fn.glPointParameteriFn);
2863
2864 fn.glPopGroupMarkerEXTFn = 0;
2865 debug_fn.glPopGroupMarkerEXTFn = 0;
2866 if (ext.b_GL_EXT_debug_marker) {
2867 fn.glPopGroupMarkerEXTFn = reinterpret_cast<glPopGroupMarkerEXTProc>(
2868 GetGLProcAddress("glPopGroupMarkerEXT"));
2869 } else {
2870 fn.glPopGroupMarkerEXTFn =
2871 reinterpret_cast<glPopGroupMarkerEXTProc>(glPopGroupMarkerEXTNotBound);
2872 }
2873 DCHECK(fn.glPopGroupMarkerEXTFn);
1458 2874
1459 fn.glProgramBinaryFn = 0; 2875 fn.glProgramBinaryFn = 0;
1460 debug_fn.glProgramBinaryFn = 0; 2876 debug_fn.glProgramBinaryFn = 0;
1461 if (ext.b_GL_OES_get_program_binary) { 2877 if (((!ver->is_es &&
2878 (ver->major_version > 4u ||
2879 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
2880 (ver->is_es && (ver->major_version >= 3u))) ||
2881 ext.b_GL_ARB_get_program_binary) {
2882 fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>(
2883 GetGLProcAddress("glProgramBinary"));
2884 } else if (ext.b_GL_OES_get_program_binary) {
1462 fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>( 2885 fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>(
1463 GetGLProcAddress("glProgramBinaryOES")); 2886 GetGLProcAddress("glProgramBinaryOES"));
1464 } 2887 } else {
1465 if (!fn.glProgramBinaryFn) { 2888 fn.glProgramBinaryFn =
1466 fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>( 2889 reinterpret_cast<glProgramBinaryProc>(glProgramBinaryNotBound);
1467 GetGLProcAddress("glProgramBinary")); 2890 }
1468 } 2891 DCHECK(fn.glProgramBinaryFn);
2892
2893 fn.glProgramParameteriFn = 0;
2894 debug_fn.glProgramParameteriFn = 0;
2895 if (((!ver->is_es &&
2896 (ver->major_version > 4u ||
2897 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
2898 (ver->is_es && (ver->major_version >= 3u))) ||
2899 ext.b_GL_ARB_get_program_binary) {
2900 fn.glProgramParameteriFn = reinterpret_cast<glProgramParameteriProc>(
2901 GetGLProcAddress("glProgramParameteri"));
2902 } else {
2903 fn.glProgramParameteriFn =
2904 reinterpret_cast<glProgramParameteriProc>(glProgramParameteriNotBound);
2905 }
2906 DCHECK(fn.glProgramParameteriFn);
2907
2908 fn.glPushGroupMarkerEXTFn = 0;
2909 debug_fn.glPushGroupMarkerEXTFn = 0;
2910 if (ext.b_GL_EXT_debug_marker) {
2911 fn.glPushGroupMarkerEXTFn = reinterpret_cast<glPushGroupMarkerEXTProc>(
2912 GetGLProcAddress("glPushGroupMarkerEXT"));
2913 } else {
2914 fn.glPushGroupMarkerEXTFn = reinterpret_cast<glPushGroupMarkerEXTProc>(
2915 glPushGroupMarkerEXTNotBound);
2916 }
2917 DCHECK(fn.glPushGroupMarkerEXTFn);
1469 2918
1470 fn.glQueryCounterFn = 0; 2919 fn.glQueryCounterFn = 0;
1471 debug_fn.glQueryCounterFn = 0; 2920 debug_fn.glQueryCounterFn = 0;
1472 if (ext.b_GL_ARB_timer_query) { 2921 if (((!ver->is_es &&
2922 (ver->major_version > 3u ||
2923 (ver->major_version == 3u && ver->minor_version >= 3u)))) ||
2924 ext.b_GL_ARB_timer_query) {
1473 fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>( 2925 fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>(
1474 GetGLProcAddress("glQueryCounter")); 2926 GetGLProcAddress("glQueryCounter"));
1475 } 2927 } else if (ext.b_GL_EXT_disjoint_timer_query) {
1476 if (!fn.glQueryCounterFn) {
1477 fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>( 2928 fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>(
1478 GetGLProcAddress("glQueryCounterEXT")); 2929 GetGLProcAddress("glQueryCounterEXT"));
1479 } 2930 } else {
1480 2931 fn.glQueryCounterFn =
1481 fn.glRenderbufferStorageEXTFn = 0; 2932 reinterpret_cast<glQueryCounterProc>(glQueryCounterNotBound);
1482 debug_fn.glRenderbufferStorageEXTFn = 0; 2933 }
1483 if (ext.b_GL_EXT_framebuffer_object) { 2934 DCHECK(fn.glQueryCounterFn);
1484 fn.glRenderbufferStorageEXTFn = 2935
1485 reinterpret_cast<glRenderbufferStorageEXTProc>( 2936 fn.glReadBufferFn = 0;
1486 GetGLProcAddress("glRenderbufferStorageEXT")); 2937 debug_fn.glReadBufferFn = 0;
1487 } 2938 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1488 if (!fn.glRenderbufferStorageEXTFn) { 2939 fn.glReadBufferFn =
1489 fn.glRenderbufferStorageEXTFn = 2940 reinterpret_cast<glReadBufferProc>(GetGLProcAddress("glReadBuffer"));
1490 reinterpret_cast<glRenderbufferStorageEXTProc>( 2941 } else {
1491 GetGLProcAddress("glRenderbufferStorage")); 2942 fn.glReadBufferFn =
1492 } 2943 reinterpret_cast<glReadBufferProc>(glReadBufferNotBound);
2944 }
2945 DCHECK(fn.glReadBufferFn);
2946
2947 fn.glReleaseShaderCompilerFn = 0;
2948 debug_fn.glReleaseShaderCompilerFn = 0;
2949 if (((!ver->is_es &&
2950 (ver->major_version > 4u ||
2951 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
2952 ver->is_es)) {
2953 fn.glReleaseShaderCompilerFn =
2954 reinterpret_cast<glReleaseShaderCompilerProc>(
2955 GetGLProcAddress("glReleaseShaderCompiler"));
2956 } else {
2957 fn.glReleaseShaderCompilerFn =
2958 reinterpret_cast<glReleaseShaderCompilerProc>(
2959 glReleaseShaderCompilerNotBound);
2960 }
2961 DCHECK(fn.glReleaseShaderCompilerFn);
2962
2963 fn.glRenderbufferStorageMultisampleFn = 0;
2964 debug_fn.glRenderbufferStorageMultisampleFn = 0;
2965 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2966 (ver->is_es && (ver->major_version >= 3u)))) {
2967 fn.glRenderbufferStorageMultisampleFn =
2968 reinterpret_cast<glRenderbufferStorageMultisampleProc>(
2969 GetGLProcAddress("glRenderbufferStorageMultisample"));
2970 } else {
2971 fn.glRenderbufferStorageMultisampleFn =
2972 reinterpret_cast<glRenderbufferStorageMultisampleProc>(
2973 glRenderbufferStorageMultisampleNotBound);
2974 }
2975 DCHECK(fn.glRenderbufferStorageMultisampleFn);
1493 2976
1494 fn.glRenderbufferStorageMultisampleANGLEFn = 0; 2977 fn.glRenderbufferStorageMultisampleANGLEFn = 0;
1495 debug_fn.glRenderbufferStorageMultisampleANGLEFn = 0; 2978 debug_fn.glRenderbufferStorageMultisampleANGLEFn = 0;
1496 if (ext.b_GL_ANGLE_framebuffer_multisample) { 2979 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2980 (ver->is_es && (ver->major_version >= 3u)))) {
2981 fn.glRenderbufferStorageMultisampleANGLEFn =
2982 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>(
2983 GetGLProcAddress("glRenderbufferStorageMultisample"));
2984 } else if (ext.b_GL_ANGLE_framebuffer_multisample) {
1497 fn.glRenderbufferStorageMultisampleANGLEFn = 2985 fn.glRenderbufferStorageMultisampleANGLEFn =
1498 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>( 2986 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>(
1499 GetGLProcAddress("glRenderbufferStorageMultisampleANGLE")); 2987 GetGLProcAddress("glRenderbufferStorageMultisampleANGLE"));
1500 } 2988 } else {
1501 if (!fn.glRenderbufferStorageMultisampleANGLEFn) {
1502 fn.glRenderbufferStorageMultisampleANGLEFn = 2989 fn.glRenderbufferStorageMultisampleANGLEFn =
1503 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>( 2990 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>(
1504 GetGLProcAddress("glRenderbufferStorageMultisample")); 2991 glRenderbufferStorageMultisampleANGLENotBound);
1505 } 2992 }
2993 DCHECK(fn.glRenderbufferStorageMultisampleANGLEFn);
1506 2994
1507 fn.glRenderbufferStorageMultisampleEXTFn = 0; 2995 fn.glRenderbufferStorageMultisampleEXTFn = 0;
1508 debug_fn.glRenderbufferStorageMultisampleEXTFn = 0; 2996 debug_fn.glRenderbufferStorageMultisampleEXTFn = 0;
1509 if ((ext.b_GL_EXT_framebuffer_multisample || 2997 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1510 ext.b_GL_EXT_multisampled_render_to_texture)) { 2998 (ver->is_es && (ver->major_version >= 3u)))) {
2999 fn.glRenderbufferStorageMultisampleEXTFn =
3000 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>(
3001 GetGLProcAddress("glRenderbufferStorageMultisample"));
3002 } else if ((ext.b_GL_EXT_multisampled_render_to_texture ||
3003 ext.b_GL_EXT_framebuffer_multisample)) {
1511 fn.glRenderbufferStorageMultisampleEXTFn = 3004 fn.glRenderbufferStorageMultisampleEXTFn =
1512 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>( 3005 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>(
1513 GetGLProcAddress("glRenderbufferStorageMultisampleEXT")); 3006 GetGLProcAddress("glRenderbufferStorageMultisampleEXT"));
1514 } 3007 } else {
1515 if (!fn.glRenderbufferStorageMultisampleEXTFn) {
1516 fn.glRenderbufferStorageMultisampleEXTFn = 3008 fn.glRenderbufferStorageMultisampleEXTFn =
1517 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>( 3009 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>(
1518 GetGLProcAddress("glRenderbufferStorageMultisample")); 3010 glRenderbufferStorageMultisampleEXTNotBound);
1519 } 3011 }
3012 DCHECK(fn.glRenderbufferStorageMultisampleEXTFn);
3013
3014 fn.glRenderbufferStorageMultisampleIMGFn = 0;
3015 debug_fn.glRenderbufferStorageMultisampleIMGFn = 0;
3016 if (ext.b_GL_IMG_multisampled_render_to_texture) {
3017 fn.glRenderbufferStorageMultisampleIMGFn =
3018 reinterpret_cast<glRenderbufferStorageMultisampleIMGProc>(
3019 GetGLProcAddress("glRenderbufferStorageMultisampleIMG"));
3020 } else {
3021 fn.glRenderbufferStorageMultisampleIMGFn =
3022 reinterpret_cast<glRenderbufferStorageMultisampleIMGProc>(
3023 glRenderbufferStorageMultisampleIMGNotBound);
3024 }
3025 DCHECK(fn.glRenderbufferStorageMultisampleIMGFn);
3026
3027 fn.glResumeTransformFeedbackFn = 0;
3028 debug_fn.glResumeTransformFeedbackFn = 0;
3029 if (((ver->is_es && (ver->major_version >= 3u)) ||
3030 (!ver->is_es && (ver->major_version >= 4u)))) {
3031 fn.glResumeTransformFeedbackFn =
3032 reinterpret_cast<glResumeTransformFeedbackProc>(
3033 GetGLProcAddress("glResumeTransformFeedback"));
3034 } else {
3035 fn.glResumeTransformFeedbackFn =
3036 reinterpret_cast<glResumeTransformFeedbackProc>(
3037 glResumeTransformFeedbackNotBound);
3038 }
3039 DCHECK(fn.glResumeTransformFeedbackFn);
3040
3041 fn.glSamplerParameterfFn = 0;
3042 debug_fn.glSamplerParameterfFn = 0;
3043 if (((!ver->is_es &&
3044 (ver->major_version > 3u ||
3045 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
3046 (ver->is_es && (ver->major_version >= 3u)))) {
3047 fn.glSamplerParameterfFn = reinterpret_cast<glSamplerParameterfProc>(
3048 GetGLProcAddress("glSamplerParameterf"));
3049 } else {
3050 fn.glSamplerParameterfFn =
3051 reinterpret_cast<glSamplerParameterfProc>(glSamplerParameterfNotBound);
3052 }
3053 DCHECK(fn.glSamplerParameterfFn);
3054
3055 fn.glSamplerParameterfvFn = 0;
3056 debug_fn.glSamplerParameterfvFn = 0;
3057 if (((!ver->is_es &&
3058 (ver->major_version > 3u ||
3059 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
3060 (ver->is_es && (ver->major_version >= 3u)))) {
3061 fn.glSamplerParameterfvFn = reinterpret_cast<glSamplerParameterfvProc>(
3062 GetGLProcAddress("glSamplerParameterfv"));
3063 } else {
3064 fn.glSamplerParameterfvFn = reinterpret_cast<glSamplerParameterfvProc>(
3065 glSamplerParameterfvNotBound);
3066 }
3067 DCHECK(fn.glSamplerParameterfvFn);
3068
3069 fn.glSamplerParameteriFn = 0;
3070 debug_fn.glSamplerParameteriFn = 0;
3071 if (((!ver->is_es &&
3072 (ver->major_version > 3u ||
3073 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
3074 (ver->is_es && (ver->major_version >= 3u)))) {
3075 fn.glSamplerParameteriFn = reinterpret_cast<glSamplerParameteriProc>(
3076 GetGLProcAddress("glSamplerParameteri"));
3077 } else {
3078 fn.glSamplerParameteriFn =
3079 reinterpret_cast<glSamplerParameteriProc>(glSamplerParameteriNotBound);
3080 }
3081 DCHECK(fn.glSamplerParameteriFn);
3082
3083 fn.glSamplerParameterivFn = 0;
3084 debug_fn.glSamplerParameterivFn = 0;
3085 if (((!ver->is_es &&
3086 (ver->major_version > 3u ||
3087 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
3088 (ver->is_es && (ver->major_version >= 3u)))) {
3089 fn.glSamplerParameterivFn = reinterpret_cast<glSamplerParameterivProc>(
3090 GetGLProcAddress("glSamplerParameteriv"));
3091 } else {
3092 fn.glSamplerParameterivFn = reinterpret_cast<glSamplerParameterivProc>(
3093 glSamplerParameterivNotBound);
3094 }
3095 DCHECK(fn.glSamplerParameterivFn);
3096
3097 fn.glSetFenceAPPLEFn = 0;
3098 debug_fn.glSetFenceAPPLEFn = 0;
3099 if (ext.b_GL_APPLE_fence) {
3100 fn.glSetFenceAPPLEFn = reinterpret_cast<glSetFenceAPPLEProc>(
3101 GetGLProcAddress("glSetFenceAPPLE"));
3102 } else {
3103 fn.glSetFenceAPPLEFn =
3104 reinterpret_cast<glSetFenceAPPLEProc>(glSetFenceAPPLENotBound);
3105 }
3106 DCHECK(fn.glSetFenceAPPLEFn);
3107
3108 fn.glSetFenceNVFn = 0;
3109 debug_fn.glSetFenceNVFn = 0;
3110 if (ext.b_GL_NV_fence) {
3111 fn.glSetFenceNVFn =
3112 reinterpret_cast<glSetFenceNVProc>(GetGLProcAddress("glSetFenceNV"));
3113 } else {
3114 fn.glSetFenceNVFn =
3115 reinterpret_cast<glSetFenceNVProc>(glSetFenceNVNotBound);
3116 }
3117 DCHECK(fn.glSetFenceNVFn);
3118
3119 fn.glShaderBinaryFn = 0;
3120 debug_fn.glShaderBinaryFn = 0;
3121 if (((!ver->is_es &&
3122 (ver->major_version > 4u ||
3123 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
3124 ver->is_es)) {
3125 fn.glShaderBinaryFn = reinterpret_cast<glShaderBinaryProc>(
3126 GetGLProcAddress("glShaderBinary"));
3127 } else {
3128 fn.glShaderBinaryFn =
3129 reinterpret_cast<glShaderBinaryProc>(glShaderBinaryNotBound);
3130 }
3131 DCHECK(fn.glShaderBinaryFn);
3132
3133 fn.glTestFenceAPPLEFn = 0;
3134 debug_fn.glTestFenceAPPLEFn = 0;
3135 if (ext.b_GL_APPLE_fence) {
3136 fn.glTestFenceAPPLEFn = reinterpret_cast<glTestFenceAPPLEProc>(
3137 GetGLProcAddress("glTestFenceAPPLE"));
3138 } else {
3139 fn.glTestFenceAPPLEFn =
3140 reinterpret_cast<glTestFenceAPPLEProc>(glTestFenceAPPLENotBound);
3141 }
3142 DCHECK(fn.glTestFenceAPPLEFn);
3143
3144 fn.glTestFenceNVFn = 0;
3145 debug_fn.glTestFenceNVFn = 0;
3146 if (ext.b_GL_NV_fence) {
3147 fn.glTestFenceNVFn =
3148 reinterpret_cast<glTestFenceNVProc>(GetGLProcAddress("glTestFenceNV"));
3149 } else {
3150 fn.glTestFenceNVFn =
3151 reinterpret_cast<glTestFenceNVProc>(glTestFenceNVNotBound);
3152 }
3153 DCHECK(fn.glTestFenceNVFn);
3154
3155 fn.glTexImage3DFn = 0;
3156 debug_fn.glTexImage3DFn = 0;
3157 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
3158 fn.glTexImage3DFn =
3159 reinterpret_cast<glTexImage3DProc>(GetGLProcAddress("glTexImage3D"));
3160 } else {
3161 fn.glTexImage3DFn =
3162 reinterpret_cast<glTexImage3DProc>(glTexImage3DNotBound);
3163 }
3164 DCHECK(fn.glTexImage3DFn);
1520 3165
1521 fn.glTexStorage2DEXTFn = 0; 3166 fn.glTexStorage2DEXTFn = 0;
1522 debug_fn.glTexStorage2DEXTFn = 0; 3167 debug_fn.glTexStorage2DEXTFn = 0;
1523 if (ver->is_es3 || ext.b_GL_ARB_texture_storage) { 3168 if (((!ver->is_es &&
3169 (ver->major_version > 4u ||
3170 (ver->major_version == 4u && ver->minor_version >= 2u))) ||
3171 (ver->is_es && (ver->major_version >= 3u))) ||
3172 ext.b_GL_ARB_texture_storage) {
1524 fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>( 3173 fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>(
1525 GetGLProcAddress("glTexStorage2D")); 3174 GetGLProcAddress("glTexStorage2D"));
1526 } 3175 } else if (ext.b_GL_EXT_texture_storage) {
1527 if (!fn.glTexStorage2DEXTFn) {
1528 fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>( 3176 fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>(
1529 GetGLProcAddress("glTexStorage2DEXT")); 3177 GetGLProcAddress("glTexStorage2DEXT"));
1530 } 3178 } else {
3179 fn.glTexStorage2DEXTFn =
3180 reinterpret_cast<glTexStorage2DEXTProc>(glTexStorage2DEXTNotBound);
3181 }
3182 DCHECK(fn.glTexStorage2DEXTFn);
3183
3184 fn.glTexStorage3DFn = 0;
3185 debug_fn.glTexStorage3DFn = 0;
3186 if (((!ver->is_es &&
3187 (ver->major_version > 4u ||
3188 (ver->major_version == 4u && ver->minor_version >= 2u))) ||
3189 (ver->is_es && (ver->major_version >= 3u)))) {
3190 fn.glTexStorage3DFn = reinterpret_cast<glTexStorage3DProc>(
3191 GetGLProcAddress("glTexStorage3D"));
3192 } else {
3193 fn.glTexStorage3DFn =
3194 reinterpret_cast<glTexStorage3DProc>(glTexStorage3DNotBound);
3195 }
3196 DCHECK(fn.glTexStorage3DFn);
3197
3198 fn.glTransformFeedbackVaryingsFn = 0;
3199 debug_fn.glTransformFeedbackVaryingsFn = 0;
3200 if (((!ver->is_es && (ver->major_version >= 3u)) ||
3201 (ver->is_es && (ver->major_version >= 3u)))) {
3202 fn.glTransformFeedbackVaryingsFn =
3203 reinterpret_cast<glTransformFeedbackVaryingsProc>(
3204 GetGLProcAddress("glTransformFeedbackVaryings"));
3205 } else {
3206 fn.glTransformFeedbackVaryingsFn =
3207 reinterpret_cast<glTransformFeedbackVaryingsProc>(
3208 glTransformFeedbackVaryingsNotBound);
3209 }
3210 DCHECK(fn.glTransformFeedbackVaryingsFn);
3211
3212 fn.glUniform1uiFn = 0;
3213 debug_fn.glUniform1uiFn = 0;
3214 if (((!ver->is_es && (ver->major_version >= 3u)) ||
3215 (ver->is_es && (ver->major_version >= 3u)))) {
3216 fn.glUniform1uiFn =
3217 reinterpret_cast<glUniform1uiProc>(GetGLProcAddress("glUniform1ui"));
3218 } else {
3219 fn.glUniform1uiFn =
3220 reinterpret_cast<glUniform1uiProc>(glUniform1uiNotBound);
3221 }
3222 DCHECK(fn.glUniform1uiFn);
3223
3224 fn.glUniform1uivFn = 0;
3225 debug_fn.glUniform1uivFn = 0;
3226 if (((!ver->is_es && (ver->major_version >= 3u)) ||
3227 (ver->is_es && (ver->major_version >= 3u)))) {
3228 fn.glUniform1uivFn =
3229 reinterpret_cast<glUniform1uivProc>(GetGLProcAddress("glUniform1uiv"));
3230 } else {
3231 fn.glUniform1uivFn =
3232 reinterpret_cast<glUniform1uivProc>(glUniform1uivNotBound);
3233 }
3234 DCHECK(fn.glUniform1uivFn);
3235
3236 fn.glUniform2uiFn = 0;
3237 debug_fn.glUniform2uiFn = 0;
3238 if (((!ver->is_es && (ver->major_version >= 3u)) ||
3239 (ver->is_es && (ver->major_version >= 3u)))) {
3240 fn.glUniform2uiFn =
3241 reinterpret_cast<glUniform2uiProc>(GetGLProcAddress("glUniform2ui"));
3242 } else {
3243 fn.glUniform2uiFn =
3244 reinterpret_cast<glUniform2uiProc>(glUniform2uiNotBound);
3245 }
3246 DCHECK(fn.glUniform2uiFn);
3247
3248 fn.glUniform2uivFn = 0;
3249 debug_fn.glUniform2uivFn = 0;
3250 if (((!ver->is_es && (ver->major_version >= 3u)) ||
3251 (ver->is_es && (ver->major_version >= 3u)))) {
3252 fn.glUniform2uivFn =
3253 reinterpret_cast<glUniform2uivProc>(GetGLProcAddress("glUniform2uiv"));
3254 } else {
3255 fn.glUniform2uivFn =
3256 reinterpret_cast<glUniform2uivProc>(glUniform2uivNotBound);
3257 }
3258 DCHECK(fn.glUniform2uivFn);
3259
3260 fn.glUniform3uiFn = 0;
3261 debug_fn.glUniform3uiFn = 0;
3262 if (((!ver->is_es && (ver->major_version >= 3u)) ||
3263 (ver->is_es && (ver->major_version >= 3u)))) {
3264 fn.glUniform3uiFn =
3265 reinterpret_cast<glUniform3uiProc>(GetGLProcAddress("glUniform3ui"));
3266 } else {
3267 fn.glUniform3uiFn =
3268 reinterpret_cast<glUniform3uiProc>(glUniform3uiNotBound);
3269 }
3270 DCHECK(fn.glUniform3uiFn);
3271
3272 fn.glUniform3uivFn = 0;
3273 debug_fn.glUniform3uivFn = 0;
3274 if (((!ver->is_es && (ver->major_version >= 3u)) ||
3275 (ver->is_es && (ver->major_version >= 3u)))) {
3276 fn.glUniform3uivFn =
3277 reinterpret_cast<glUniform3uivProc>(GetGLProcAddress("glUniform3uiv"));
3278 } else {
3279 fn.glUniform3uivFn =
3280 reinterpret_cast<glUniform3uivProc>(glUniform3uivNotBound);
3281 }
3282 DCHECK(fn.glUniform3uivFn);
3283
3284 fn.glUniform4uiFn = 0;
3285 debug_fn.glUniform4uiFn = 0;
3286 if (((!ver->is_es && (ver->major_version >= 3u)) ||
3287 (ver->is_es && (ver->major_version >= 3u)))) {
3288 fn.glUniform4uiFn =
3289 reinterpret_cast<glUniform4uiProc>(GetGLProcAddress("glUniform4ui"));
3290 } else {
3291 fn.glUniform4uiFn =
3292 reinterpret_cast<glUniform4uiProc>(glUniform4uiNotBound);
3293 }
3294 DCHECK(fn.glUniform4uiFn);
3295
3296 fn.glUniform4uivFn = 0;
3297 debug_fn.glUniform4uivFn = 0;
3298 if (((!ver->is_es && (ver->major_version >= 3u)) ||
3299 (ver->is_es && (ver->major_version >= 3u)))) {
3300 fn.glUniform4uivFn =
3301 reinterpret_cast<glUniform4uivProc>(GetGLProcAddress("glUniform4uiv"));
3302 } else {
3303 fn.glUniform4uivFn =
3304 reinterpret_cast<glUniform4uivProc>(glUniform4uivNotBound);
3305 }
3306 DCHECK(fn.glUniform4uivFn);
3307
3308 fn.glUniformBlockBindingFn = 0;
3309 debug_fn.glUniformBlockBindingFn = 0;
3310 if (((ver->is_es && (ver->major_version >= 3u)) ||
3311 (!ver->is_es &&
3312 (ver->major_version > 3u ||
3313 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
3314 fn.glUniformBlockBindingFn = reinterpret_cast<glUniformBlockBindingProc>(
3315 GetGLProcAddress("glUniformBlockBinding"));
3316 } else {
3317 fn.glUniformBlockBindingFn = reinterpret_cast<glUniformBlockBindingProc>(
3318 glUniformBlockBindingNotBound);
3319 }
3320 DCHECK(fn.glUniformBlockBindingFn);
3321
3322 fn.glUniformMatrix2x3fvFn = 0;
3323 debug_fn.glUniformMatrix2x3fvFn = 0;
3324 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
3325 fn.glUniformMatrix2x3fvFn = reinterpret_cast<glUniformMatrix2x3fvProc>(
3326 GetGLProcAddress("glUniformMatrix2x3fv"));
3327 } else {
3328 fn.glUniformMatrix2x3fvFn = reinterpret_cast<glUniformMatrix2x3fvProc>(
3329 glUniformMatrix2x3fvNotBound);
3330 }
3331 DCHECK(fn.glUniformMatrix2x3fvFn);
3332
3333 fn.glUniformMatrix2x4fvFn = 0;
3334 debug_fn.glUniformMatrix2x4fvFn = 0;
3335 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
3336 fn.glUniformMatrix2x4fvFn = reinterpret_cast<glUniformMatrix2x4fvProc>(
3337 GetGLProcAddress("glUniformMatrix2x4fv"));
3338 } else {
3339 fn.glUniformMatrix2x4fvFn = reinterpret_cast<glUniformMatrix2x4fvProc>(
3340 glUniformMatrix2x4fvNotBound);
3341 }
3342 DCHECK(fn.glUniformMatrix2x4fvFn);
3343
3344 fn.glUniformMatrix3x2fvFn = 0;
3345 debug_fn.glUniformMatrix3x2fvFn = 0;
3346 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
3347 fn.glUniformMatrix3x2fvFn = reinterpret_cast<glUniformMatrix3x2fvProc>(
3348 GetGLProcAddress("glUniformMatrix3x2fv"));
3349 } else {
3350 fn.glUniformMatrix3x2fvFn = reinterpret_cast<glUniformMatrix3x2fvProc>(
3351 glUniformMatrix3x2fvNotBound);
3352 }
3353 DCHECK(fn.glUniformMatrix3x2fvFn);
3354
3355 fn.glUniformMatrix3x4fvFn = 0;
3356 debug_fn.glUniformMatrix3x4fvFn = 0;
3357 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
3358 fn.glUniformMatrix3x4fvFn = reinterpret_cast<glUniformMatrix3x4fvProc>(
3359 GetGLProcAddress("glUniformMatrix3x4fv"));
3360 } else {
3361 fn.glUniformMatrix3x4fvFn = reinterpret_cast<glUniformMatrix3x4fvProc>(
3362 glUniformMatrix3x4fvNotBound);
3363 }
3364 DCHECK(fn.glUniformMatrix3x4fvFn);
3365
3366 fn.glUniformMatrix4x2fvFn = 0;
3367 debug_fn.glUniformMatrix4x2fvFn = 0;
3368 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
3369 fn.glUniformMatrix4x2fvFn = reinterpret_cast<glUniformMatrix4x2fvProc>(
3370 GetGLProcAddress("glUniformMatrix4x2fv"));
3371 } else {
3372 fn.glUniformMatrix4x2fvFn = reinterpret_cast<glUniformMatrix4x2fvProc>(
3373 glUniformMatrix4x2fvNotBound);
3374 }
3375 DCHECK(fn.glUniformMatrix4x2fvFn);
3376
3377 fn.glUniformMatrix4x3fvFn = 0;
3378 debug_fn.glUniformMatrix4x3fvFn = 0;
3379 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
3380 fn.glUniformMatrix4x3fvFn = reinterpret_cast<glUniformMatrix4x3fvProc>(
3381 GetGLProcAddress("glUniformMatrix4x3fv"));
3382 } else {
3383 fn.glUniformMatrix4x3fvFn = reinterpret_cast<glUniformMatrix4x3fvProc>(
3384 glUniformMatrix4x3fvNotBound);
3385 }
3386 DCHECK(fn.glUniformMatrix4x3fvFn);
1531 3387
1532 fn.glUnmapBufferFn = 0; 3388 fn.glUnmapBufferFn = 0;
1533 debug_fn.glUnmapBufferFn = 0; 3389 debug_fn.glUnmapBufferFn = 0;
1534 if (ext.b_GL_OES_mapbuffer) { 3390 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
3391 fn.glUnmapBufferFn =
3392 reinterpret_cast<glUnmapBufferProc>(GetGLProcAddress("glUnmapBuffer"));
3393 } else if (ext.b_GL_OES_mapbuffer) {
1535 fn.glUnmapBufferFn = reinterpret_cast<glUnmapBufferProc>( 3394 fn.glUnmapBufferFn = reinterpret_cast<glUnmapBufferProc>(
1536 GetGLProcAddress("glUnmapBufferOES")); 3395 GetGLProcAddress("glUnmapBufferOES"));
1537 } 3396 } else {
1538 if (!fn.glUnmapBufferFn) {
1539 fn.glUnmapBufferFn = 3397 fn.glUnmapBufferFn =
1540 reinterpret_cast<glUnmapBufferProc>(GetGLProcAddress("glUnmapBuffer")); 3398 reinterpret_cast<glUnmapBufferProc>(glUnmapBufferNotBound);
1541 } 3399 }
3400 DCHECK(fn.glUnmapBufferFn);
1542 3401
1543 fn.glVertexAttribDivisorANGLEFn = 0; 3402 fn.glVertexAttribDivisorANGLEFn = 0;
1544 debug_fn.glVertexAttribDivisorANGLEFn = 0; 3403 debug_fn.glVertexAttribDivisorANGLEFn = 0;
1545 if (ext.b_GL_ARB_instanced_arrays) { 3404 if (((!ver->is_es &&
3405 (ver->major_version > 3u ||
3406 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
3407 (ver->is_es && (ver->major_version >= 3u)))) {
3408 fn.glVertexAttribDivisorANGLEFn =
3409 reinterpret_cast<glVertexAttribDivisorANGLEProc>(
3410 GetGLProcAddress("glVertexAttribDivisor"));
3411 } else if (ext.b_GL_ARB_instanced_arrays) {
1546 fn.glVertexAttribDivisorANGLEFn = 3412 fn.glVertexAttribDivisorANGLEFn =
1547 reinterpret_cast<glVertexAttribDivisorANGLEProc>( 3413 reinterpret_cast<glVertexAttribDivisorANGLEProc>(
1548 GetGLProcAddress("glVertexAttribDivisorARB")); 3414 GetGLProcAddress("glVertexAttribDivisorARB"));
1549 } 3415 } else if (ext.b_GL_ANGLE_instanced_arrays) {
1550 if (!fn.glVertexAttribDivisorANGLEFn && (ext.b_GL_ANGLE_instanced_arrays)) {
1551 fn.glVertexAttribDivisorANGLEFn = 3416 fn.glVertexAttribDivisorANGLEFn =
1552 reinterpret_cast<glVertexAttribDivisorANGLEProc>( 3417 reinterpret_cast<glVertexAttribDivisorANGLEProc>(
1553 GetGLProcAddress("glVertexAttribDivisorANGLE")); 3418 GetGLProcAddress("glVertexAttribDivisorANGLE"));
1554 } 3419 } else {
1555 if (!fn.glVertexAttribDivisorANGLEFn) {
1556 fn.glVertexAttribDivisorANGLEFn = 3420 fn.glVertexAttribDivisorANGLEFn =
1557 reinterpret_cast<glVertexAttribDivisorANGLEProc>( 3421 reinterpret_cast<glVertexAttribDivisorANGLEProc>(
1558 GetGLProcAddress("glVertexAttribDivisor")); 3422 glVertexAttribDivisorANGLENotBound);
1559 } 3423 }
3424 DCHECK(fn.glVertexAttribDivisorANGLEFn);
3425
3426 fn.glVertexAttribI4iFn = 0;
3427 debug_fn.glVertexAttribI4iFn = 0;
3428 if (((!ver->is_es && (ver->major_version >= 3u)) ||
3429 (ver->is_es && (ver->major_version >= 3u)))) {
3430 fn.glVertexAttribI4iFn = reinterpret_cast<glVertexAttribI4iProc>(
3431 GetGLProcAddress("glVertexAttribI4i"));
3432 } else {
3433 fn.glVertexAttribI4iFn =
3434 reinterpret_cast<glVertexAttribI4iProc>(glVertexAttribI4iNotBound);
3435 }
3436 DCHECK(fn.glVertexAttribI4iFn);
3437
3438 fn.glVertexAttribI4ivFn = 0;
3439 debug_fn.glVertexAttribI4ivFn = 0;
3440 if (((!ver->is_es && (ver->major_version >= 3u)) ||
3441 (ver->is_es && (ver->major_version >= 3u)))) {
3442 fn.glVertexAttribI4ivFn = reinterpret_cast<glVertexAttribI4ivProc>(
3443 GetGLProcAddress("glVertexAttribI4iv"));
3444 } else {
3445 fn.glVertexAttribI4ivFn =
3446 reinterpret_cast<glVertexAttribI4ivProc>(glVertexAttribI4ivNotBound);
3447 }
3448 DCHECK(fn.glVertexAttribI4ivFn);
3449
3450 fn.glVertexAttribI4uiFn = 0;
3451 debug_fn.glVertexAttribI4uiFn = 0;
3452 if (((!ver->is_es && (ver->major_version >= 3u)) ||
3453 (ver->is_es && (ver->major_version >= 3u)))) {
3454 fn.glVertexAttribI4uiFn = reinterpret_cast<glVertexAttribI4uiProc>(
3455 GetGLProcAddress("glVertexAttribI4ui"));
3456 } else {
3457 fn.glVertexAttribI4uiFn =
3458 reinterpret_cast<glVertexAttribI4uiProc>(glVertexAttribI4uiNotBound);
3459 }
3460 DCHECK(fn.glVertexAttribI4uiFn);
3461
3462 fn.glVertexAttribI4uivFn = 0;
3463 debug_fn.glVertexAttribI4uivFn = 0;
3464 if (((!ver->is_es && (ver->major_version >= 3u)) ||
3465 (ver->is_es && (ver->major_version >= 3u)))) {
3466 fn.glVertexAttribI4uivFn = reinterpret_cast<glVertexAttribI4uivProc>(
3467 GetGLProcAddress("glVertexAttribI4uiv"));
3468 } else {
3469 fn.glVertexAttribI4uivFn =
3470 reinterpret_cast<glVertexAttribI4uivProc>(glVertexAttribI4uivNotBound);
3471 }
3472 DCHECK(fn.glVertexAttribI4uivFn);
3473
3474 fn.glVertexAttribIPointerFn = 0;
3475 debug_fn.glVertexAttribIPointerFn = 0;
3476 if (((!ver->is_es && (ver->major_version >= 3u)) ||
3477 (ver->is_es && (ver->major_version >= 3u)))) {
3478 fn.glVertexAttribIPointerFn = reinterpret_cast<glVertexAttribIPointerProc>(
3479 GetGLProcAddress("glVertexAttribIPointer"));
3480 } else {
3481 fn.glVertexAttribIPointerFn = reinterpret_cast<glVertexAttribIPointerProc>(
3482 glVertexAttribIPointerNotBound);
3483 }
3484 DCHECK(fn.glVertexAttribIPointerFn);
3485
3486 fn.glWaitSyncFn = 0;
3487 debug_fn.glWaitSyncFn = 0;
3488 if (((!ver->is_es &&
3489 (ver->major_version > 3u ||
3490 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
3491 (ver->is_es && (ver->major_version >= 3u))) ||
3492 ext.b_GL_ARB_sync) {
3493 fn.glWaitSyncFn =
3494 reinterpret_cast<glWaitSyncProc>(GetGLProcAddress("glWaitSync"));
3495 } else {
3496 fn.glWaitSyncFn = reinterpret_cast<glWaitSyncProc>(glWaitSyncNotBound);
3497 }
3498 DCHECK(fn.glWaitSyncFn);
1560 3499
1561 if (g_debugBindingsInitialized) 3500 if (g_debugBindingsInitialized)
1562 InitializeDebugBindings(); 3501 InitializeDebugBindings();
1563 } 3502 }
1564 3503
1565 extern "C" { 3504 extern "C" {
1566 3505
1567 static void GL_BINDING_CALL Debug_glActiveTexture(GLenum texture) { 3506 static void GL_BINDING_CALL Debug_glActiveTexture(GLenum texture) {
1568 GL_SERVICE_LOG("glActiveTexture" 3507 GL_SERVICE_LOG("glActiveTexture"
1569 << "(" << GLEnums::GetStringEnum(texture) << ")"); 3508 << "(" << GLEnums::GetStringEnum(texture) << ")");
(...skipping 9759 matching lines...) Expand 10 before | Expand all | Expand 10 after
11329 13268
11330 GLenum NoContextGLApi::glWaitSyncFn(GLsync sync, 13269 GLenum NoContextGLApi::glWaitSyncFn(GLsync sync,
11331 GLbitfield flags, 13270 GLbitfield flags,
11332 GLuint64 timeout) { 13271 GLuint64 timeout) {
11333 NOTREACHED() << "Trying to call glWaitSync() without current GL context"; 13272 NOTREACHED() << "Trying to call glWaitSync() without current GL context";
11334 LOG(ERROR) << "Trying to call glWaitSync() without current GL context"; 13273 LOG(ERROR) << "Trying to call glWaitSync() without current GL context";
11335 return static_cast<GLenum>(0); 13274 return static_cast<GLenum>(0);
11336 } 13275 }
11337 13276
11338 } // namespace gfx 13277 } // namespace gfx
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698