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

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: 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);
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
962 fn.glBeginQueryARBFn = 0; 1431 debug_fn.glBeginQueryFn = 0;
1432 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1433 fn.glBeginQueryFn =
1434 reinterpret_cast<glBeginQueryProc>(GetGLProcAddress("glBeginQuery"));
1435 }
1436 DCHECK(fn.glBeginQueryFn);
1437
963 debug_fn.glBeginQueryARBFn = 0; 1438 debug_fn.glBeginQueryARBFn = 0;
964 if (ext.b_GL_ARB_occlusion_query) { 1439 if (ext.b_GL_ARB_occlusion_query) {
965 fn.glBeginQueryARBFn = reinterpret_cast<glBeginQueryARBProc>( 1440 fn.glBeginQueryARBFn = reinterpret_cast<glBeginQueryARBProc>(
966 GetGLProcAddress("glBeginQueryARB")); 1441 GetGLProcAddress("glBeginQueryARB"));
967 } 1442 } else if ((ext.b_GL_EXT_disjoint_timer_query ||
968 if (!fn.glBeginQueryARBFn) { 1443 ext.b_GL_EXT_occlusion_query_boolean)) {
969 fn.glBeginQueryARBFn = reinterpret_cast<glBeginQueryARBProc>( 1444 fn.glBeginQueryARBFn = reinterpret_cast<glBeginQueryARBProc>(
970 GetGLProcAddress("glBeginQueryEXT")); 1445 GetGLProcAddress("glBeginQueryEXT"));
971 } 1446 }
972 1447 DCHECK(fn.glBeginQueryARBFn);
973 fn.glBindFramebufferEXTFn = 0; 1448
974 debug_fn.glBindFramebufferEXTFn = 0; 1449 debug_fn.glBeginTransformFeedbackFn = 0;
975 if (ext.b_GL_EXT_framebuffer_object) { 1450 if (((!ver->is_es && (ver->major_version >= 3u)) ||
976 fn.glBindFramebufferEXTFn = reinterpret_cast<glBindFramebufferEXTProc>( 1451 (ver->is_es && (ver->major_version >= 3u)))) {
977 GetGLProcAddress("glBindFramebufferEXT")); 1452 fn.glBeginTransformFeedbackFn =
978 } 1453 reinterpret_cast<glBeginTransformFeedbackProc>(
979 if (!fn.glBindFramebufferEXTFn) { 1454 GetGLProcAddress("glBeginTransformFeedback"));
980 fn.glBindFramebufferEXTFn = reinterpret_cast<glBindFramebufferEXTProc>( 1455 }
981 GetGLProcAddress("glBindFramebuffer")); 1456 DCHECK(fn.glBeginTransformFeedbackFn);
982 } 1457
983 1458 debug_fn.glBindBufferBaseFn = 0;
984 fn.glBindRenderbufferEXTFn = 0; 1459 if (((!ver->is_es && (ver->major_version >= 3u)) ||
985 debug_fn.glBindRenderbufferEXTFn = 0; 1460 (ver->is_es && (ver->major_version >= 3u)))) {
986 if (ext.b_GL_EXT_framebuffer_object) { 1461 fn.glBindBufferBaseFn = reinterpret_cast<glBindBufferBaseProc>(
987 fn.glBindRenderbufferEXTFn = reinterpret_cast<glBindRenderbufferEXTProc>( 1462 GetGLProcAddress("glBindBufferBase"));
988 GetGLProcAddress("glBindRenderbufferEXT")); 1463 }
989 } 1464 DCHECK(fn.glBindBufferBaseFn);
990 if (!fn.glBindRenderbufferEXTFn) { 1465
991 fn.glBindRenderbufferEXTFn = reinterpret_cast<glBindRenderbufferEXTProc>( 1466 debug_fn.glBindBufferRangeFn = 0;
992 GetGLProcAddress("glBindRenderbuffer")); 1467 if (((!ver->is_es && (ver->major_version >= 3u)) ||
993 } 1468 (ver->is_es && (ver->major_version >= 3u)))) {
994 1469 fn.glBindBufferRangeFn = reinterpret_cast<glBindBufferRangeProc>(
995 fn.glBindVertexArrayOESFn = 0; 1470 GetGLProcAddress("glBindBufferRange"));
1471 }
1472 DCHECK(fn.glBindBufferRangeFn);
1473
1474 debug_fn.glBindFragDataLocationFn = 0;
1475 if ((!ver->is_es && (ver->major_version >= 3u))) {
1476 fn.glBindFragDataLocationFn = reinterpret_cast<glBindFragDataLocationProc>(
1477 GetGLProcAddress("glBindFragDataLocation"));
1478 }
1479 DCHECK(fn.glBindFragDataLocationFn);
1480
1481 debug_fn.glBindFragDataLocationIndexedFn = 0;
1482 if (((!ver->is_es &&
1483 (ver->major_version > 3u ||
1484 (ver->major_version == 3u && ver->minor_version >= 3u))))) {
1485 fn.glBindFragDataLocationIndexedFn =
1486 reinterpret_cast<glBindFragDataLocationIndexedProc>(
1487 GetGLProcAddress("glBindFragDataLocationIndexed"));
1488 }
1489 DCHECK(fn.glBindFragDataLocationIndexedFn);
1490
1491 debug_fn.glBindSamplerFn = 0;
1492 if (((!ver->is_es &&
1493 (ver->major_version > 3u ||
1494 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
1495 (ver->is_es && (ver->major_version >= 3u)))) {
1496 fn.glBindSamplerFn =
1497 reinterpret_cast<glBindSamplerProc>(GetGLProcAddress("glBindSampler"));
1498 }
1499 DCHECK(fn.glBindSamplerFn);
1500
1501 debug_fn.glBindTransformFeedbackFn = 0;
1502 if (((ver->is_es && (ver->major_version >= 3u)) ||
1503 (!ver->is_es && (ver->major_version >= 4u)))) {
1504 fn.glBindTransformFeedbackFn =
1505 reinterpret_cast<glBindTransformFeedbackProc>(
1506 GetGLProcAddress("glBindTransformFeedback"));
1507 }
1508 DCHECK(fn.glBindTransformFeedbackFn);
1509
996 debug_fn.glBindVertexArrayOESFn = 0; 1510 debug_fn.glBindVertexArrayOESFn = 0;
997 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 1511 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1512 (ver->is_es && (ver->major_version >= 3u))) ||
998 ext.b_GL_ARB_vertex_array_object) { 1513 ext.b_GL_ARB_vertex_array_object) {
999 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>( 1514 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>(
1000 GetGLProcAddress("glBindVertexArray")); 1515 GetGLProcAddress("glBindVertexArray"));
1001 } 1516 } 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>( 1517 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>(
1004 GetGLProcAddress("glBindVertexArrayOES")); 1518 GetGLProcAddress("glBindVertexArrayOES"));
1005 } 1519 } else if (ext.b_GL_APPLE_vertex_array_object) {
1006 if (!fn.glBindVertexArrayOESFn) {
1007 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>( 1520 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>(
1008 GetGLProcAddress("glBindVertexArrayAPPLE")); 1521 GetGLProcAddress("glBindVertexArrayAPPLE"));
1009 } 1522 }
1010 1523 DCHECK(fn.glBindVertexArrayOESFn);
1011 fn.glBlendBarrierKHRFn = 0; 1524
1012 debug_fn.glBlendBarrierKHRFn = 0; 1525 debug_fn.glBlendBarrierKHRFn = 0;
1013 if (ext.b_GL_NV_blend_equation_advanced) { 1526 if (ext.b_GL_NV_blend_equation_advanced) {
1014 fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>( 1527 fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>(
1015 GetGLProcAddress("glBlendBarrierNV")); 1528 GetGLProcAddress("glBlendBarrierNV"));
1016 } 1529 } else if (ext.b_GL_KHR_blend_equation_advanced) {
1017 if (!fn.glBlendBarrierKHRFn) {
1018 fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>( 1530 fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>(
1019 GetGLProcAddress("glBlendBarrierKHR")); 1531 GetGLProcAddress("glBlendBarrierKHR"));
1020 } 1532 }
1021 1533 DCHECK(fn.glBlendBarrierKHRFn);
1022 fn.glBlitFramebufferANGLEFn = 0; 1534
1535 debug_fn.glBlitFramebufferFn = 0;
1536 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1537 (ver->is_es && (ver->major_version >= 3u)))) {
1538 fn.glBlitFramebufferFn = reinterpret_cast<glBlitFramebufferProc>(
1539 GetGLProcAddress("glBlitFramebuffer"));
1540 }
1541 DCHECK(fn.glBlitFramebufferFn);
1542
1023 debug_fn.glBlitFramebufferANGLEFn = 0; 1543 debug_fn.glBlitFramebufferANGLEFn = 0;
1024 if (ext.b_GL_ANGLE_framebuffer_blit) { 1544 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1545 (ver->is_es && (ver->major_version >= 3u)))) {
1546 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>(
1547 GetGLProcAddress("glBlitFramebuffer"));
1548 } else if (ext.b_GL_ANGLE_framebuffer_blit) {
1025 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>( 1549 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>(
1026 GetGLProcAddress("glBlitFramebufferANGLE")); 1550 GetGLProcAddress("glBlitFramebufferANGLE"));
1027 } 1551 }
1028 if (!fn.glBlitFramebufferANGLEFn) { 1552 DCHECK(fn.glBlitFramebufferANGLEFn);
1029 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>( 1553
1554 debug_fn.glBlitFramebufferEXTFn = 0;
1555 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1556 (ver->is_es && (ver->major_version >= 3u)))) {
1557 fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>(
1030 GetGLProcAddress("glBlitFramebuffer")); 1558 GetGLProcAddress("glBlitFramebuffer"));
1031 } 1559 } else if (ext.b_GL_EXT_framebuffer_blit) {
1032
1033 fn.glBlitFramebufferEXTFn = 0;
1034 debug_fn.glBlitFramebufferEXTFn = 0;
1035 if (ext.b_GL_EXT_framebuffer_blit) {
1036 fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>( 1560 fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>(
1037 GetGLProcAddress("glBlitFramebufferEXT")); 1561 GetGLProcAddress("glBlitFramebufferEXT"));
1038 } 1562 }
1039 if (!fn.glBlitFramebufferEXTFn) { 1563 DCHECK(fn.glBlitFramebufferEXTFn);
1040 fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>( 1564
1041 GetGLProcAddress("glBlitFramebuffer")); 1565 debug_fn.glClearBufferfiFn = 0;
1042 } 1566 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1043 1567 (ver->is_es && (ver->major_version >= 3u)))) {
1044 fn.glCheckFramebufferStatusEXTFn = 0; 1568 fn.glClearBufferfiFn = reinterpret_cast<glClearBufferfiProc>(
1045 debug_fn.glCheckFramebufferStatusEXTFn = 0; 1569 GetGLProcAddress("glClearBufferfi"));
1046 if (ext.b_GL_EXT_framebuffer_object) { 1570 }
1047 fn.glCheckFramebufferStatusEXTFn = 1571 DCHECK(fn.glClearBufferfiFn);
1048 reinterpret_cast<glCheckFramebufferStatusEXTProc>( 1572
1049 GetGLProcAddress("glCheckFramebufferStatusEXT")); 1573 debug_fn.glClearBufferfvFn = 0;
1050 } 1574 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1051 if (!fn.glCheckFramebufferStatusEXTFn) { 1575 (ver->is_es && (ver->major_version >= 3u)))) {
1052 fn.glCheckFramebufferStatusEXTFn = 1576 fn.glClearBufferfvFn = reinterpret_cast<glClearBufferfvProc>(
1053 reinterpret_cast<glCheckFramebufferStatusEXTProc>( 1577 GetGLProcAddress("glClearBufferfv"));
1054 GetGLProcAddress("glCheckFramebufferStatus")); 1578 }
1055 } 1579 DCHECK(fn.glClearBufferfvFn);
1056 1580
1057 fn.glDeleteBuffersARBFn = 0; 1581 debug_fn.glClearBufferivFn = 0;
1058 debug_fn.glDeleteBuffersARBFn = 0; 1582 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1059 if (ext.b_GL_ARB_vertex_buffer_object) { 1583 (ver->is_es && (ver->major_version >= 3u)))) {
1060 fn.glDeleteBuffersARBFn = reinterpret_cast<glDeleteBuffersARBProc>( 1584 fn.glClearBufferivFn = reinterpret_cast<glClearBufferivProc>(
1061 GetGLProcAddress("glDeleteBuffersARB")); 1585 GetGLProcAddress("glClearBufferiv"));
1062 } 1586 }
1063 if (!fn.glDeleteBuffersARBFn) { 1587 DCHECK(fn.glClearBufferivFn);
1064 fn.glDeleteBuffersARBFn = reinterpret_cast<glDeleteBuffersARBProc>( 1588
1065 GetGLProcAddress("glDeleteBuffers")); 1589 debug_fn.glClearBufferuivFn = 0;
1066 } 1590 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1067 1591 (ver->is_es && (ver->major_version >= 3u)))) {
1068 fn.glDeleteFramebuffersEXTFn = 0; 1592 fn.glClearBufferuivFn = reinterpret_cast<glClearBufferuivProc>(
1069 debug_fn.glDeleteFramebuffersEXTFn = 0; 1593 GetGLProcAddress("glClearBufferuiv"));
1070 if (ext.b_GL_EXT_framebuffer_object) { 1594 }
1071 fn.glDeleteFramebuffersEXTFn = 1595 DCHECK(fn.glClearBufferuivFn);
1072 reinterpret_cast<glDeleteFramebuffersEXTProc>( 1596
1073 GetGLProcAddress("glDeleteFramebuffersEXT")); 1597 debug_fn.glClearDepthfFn = 0;
1074 } 1598 if (((!ver->is_es &&
1075 if (!fn.glDeleteFramebuffersEXTFn) { 1599 (ver->major_version > 4u ||
1076 fn.glDeleteFramebuffersEXTFn = 1600 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
1077 reinterpret_cast<glDeleteFramebuffersEXTProc>( 1601 ver->is_es)) {
1078 GetGLProcAddress("glDeleteFramebuffers")); 1602 fn.glClearDepthfFn =
1079 } 1603 reinterpret_cast<glClearDepthfProc>(GetGLProcAddress("glClearDepthf"));
1080 1604 }
1081 fn.glDeleteQueriesARBFn = 0; 1605 DCHECK(fn.glClearDepthfFn);
1606
1607 debug_fn.glClientWaitSyncFn = 0;
1608 if (((!ver->is_es &&
1609 (ver->major_version > 3u ||
1610 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
1611 (ver->is_es && (ver->major_version >= 3u))) ||
1612 ext.b_GL_ARB_sync) {
1613 fn.glClientWaitSyncFn = reinterpret_cast<glClientWaitSyncProc>(
1614 GetGLProcAddress("glClientWaitSync"));
1615 }
1616 DCHECK(fn.glClientWaitSyncFn);
1617
1618 debug_fn.glCompressedTexImage3DFn = 0;
1619 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1620 fn.glCompressedTexImage3DFn = reinterpret_cast<glCompressedTexImage3DProc>(
1621 GetGLProcAddress("glCompressedTexImage3D"));
1622 }
1623 DCHECK(fn.glCompressedTexImage3DFn);
1624
1625 debug_fn.glCopyBufferSubDataFn = 0;
1626 if (((ver->is_es && (ver->major_version >= 3u)) ||
1627 (!ver->is_es &&
1628 (ver->major_version > 3u ||
1629 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
1630 fn.glCopyBufferSubDataFn = reinterpret_cast<glCopyBufferSubDataProc>(
1631 GetGLProcAddress("glCopyBufferSubData"));
1632 }
1633 DCHECK(fn.glCopyBufferSubDataFn);
1634
1635 debug_fn.glCopyTexSubImage3DFn = 0;
1636 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1637 fn.glCopyTexSubImage3DFn = reinterpret_cast<glCopyTexSubImage3DProc>(
1638 GetGLProcAddress("glCopyTexSubImage3D"));
1639 }
1640 DCHECK(fn.glCopyTexSubImage3DFn);
1641
1642 debug_fn.glDeleteFencesAPPLEFn = 0;
1643 if (ext.b_GL_APPLE_fence) {
1644 fn.glDeleteFencesAPPLEFn = reinterpret_cast<glDeleteFencesAPPLEProc>(
1645 GetGLProcAddress("glDeleteFencesAPPLE"));
1646 }
1647 DCHECK(fn.glDeleteFencesAPPLEFn);
1648
1649 debug_fn.glDeleteFencesNVFn = 0;
1650 if (ext.b_GL_NV_fence) {
1651 fn.glDeleteFencesNVFn = reinterpret_cast<glDeleteFencesNVProc>(
1652 GetGLProcAddress("glDeleteFencesNV"));
1653 }
1654 DCHECK(fn.glDeleteFencesNVFn);
1655
1656 debug_fn.glDeleteQueriesFn = 0;
1657 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1658 fn.glDeleteQueriesFn = reinterpret_cast<glDeleteQueriesProc>(
1659 GetGLProcAddress("glDeleteQueries"));
1660 }
1661 DCHECK(fn.glDeleteQueriesFn);
1662
1082 debug_fn.glDeleteQueriesARBFn = 0; 1663 debug_fn.glDeleteQueriesARBFn = 0;
1083 if (ext.b_GL_ARB_occlusion_query) { 1664 if (ext.b_GL_ARB_occlusion_query) {
1084 fn.glDeleteQueriesARBFn = reinterpret_cast<glDeleteQueriesARBProc>( 1665 fn.glDeleteQueriesARBFn = reinterpret_cast<glDeleteQueriesARBProc>(
1085 GetGLProcAddress("glDeleteQueriesARB")); 1666 GetGLProcAddress("glDeleteQueriesARB"));
1086 } 1667 } else if ((ext.b_GL_EXT_disjoint_timer_query ||
1087 if (!fn.glDeleteQueriesARBFn) { 1668 ext.b_GL_EXT_occlusion_query_boolean)) {
1088 fn.glDeleteQueriesARBFn = reinterpret_cast<glDeleteQueriesARBProc>( 1669 fn.glDeleteQueriesARBFn = reinterpret_cast<glDeleteQueriesARBProc>(
1089 GetGLProcAddress("glDeleteQueriesEXT")); 1670 GetGLProcAddress("glDeleteQueriesEXT"));
1090 } 1671 }
1091 1672 DCHECK(fn.glDeleteQueriesARBFn);
1092 fn.glDeleteRenderbuffersEXTFn = 0; 1673
1093 debug_fn.glDeleteRenderbuffersEXTFn = 0; 1674 debug_fn.glDeleteSamplersFn = 0;
1094 if (ext.b_GL_EXT_framebuffer_object) { 1675 if (((!ver->is_es &&
1095 fn.glDeleteRenderbuffersEXTFn = 1676 (ver->major_version > 3u ||
1096 reinterpret_cast<glDeleteRenderbuffersEXTProc>( 1677 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
1097 GetGLProcAddress("glDeleteRenderbuffersEXT")); 1678 (ver->is_es && (ver->major_version >= 3u)))) {
1098 } 1679 fn.glDeleteSamplersFn = reinterpret_cast<glDeleteSamplersProc>(
1099 if (!fn.glDeleteRenderbuffersEXTFn) { 1680 GetGLProcAddress("glDeleteSamplers"));
1100 fn.glDeleteRenderbuffersEXTFn = 1681 }
1101 reinterpret_cast<glDeleteRenderbuffersEXTProc>( 1682 DCHECK(fn.glDeleteSamplersFn);
1102 GetGLProcAddress("glDeleteRenderbuffers")); 1683
1103 } 1684 debug_fn.glDeleteSyncFn = 0;
1104 1685 if (((!ver->is_es &&
1105 fn.glDeleteVertexArraysOESFn = 0; 1686 (ver->major_version > 3u ||
1687 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
1688 (ver->is_es && (ver->major_version >= 3u))) ||
1689 ext.b_GL_ARB_sync) {
1690 fn.glDeleteSyncFn =
1691 reinterpret_cast<glDeleteSyncProc>(GetGLProcAddress("glDeleteSync"));
1692 }
1693 DCHECK(fn.glDeleteSyncFn);
1694
1695 debug_fn.glDeleteTransformFeedbacksFn = 0;
1696 if (((ver->is_es && (ver->major_version >= 3u)) ||
1697 (!ver->is_es && (ver->major_version >= 4u)))) {
1698 fn.glDeleteTransformFeedbacksFn =
1699 reinterpret_cast<glDeleteTransformFeedbacksProc>(
1700 GetGLProcAddress("glDeleteTransformFeedbacks"));
1701 }
1702 DCHECK(fn.glDeleteTransformFeedbacksFn);
1703
1106 debug_fn.glDeleteVertexArraysOESFn = 0; 1704 debug_fn.glDeleteVertexArraysOESFn = 0;
1107 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 1705 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1706 (ver->is_es && (ver->major_version >= 3u))) ||
1108 ext.b_GL_ARB_vertex_array_object) { 1707 ext.b_GL_ARB_vertex_array_object) {
1109 fn.glDeleteVertexArraysOESFn = 1708 fn.glDeleteVertexArraysOESFn =
1110 reinterpret_cast<glDeleteVertexArraysOESProc>( 1709 reinterpret_cast<glDeleteVertexArraysOESProc>(
1111 GetGLProcAddress("glDeleteVertexArrays")); 1710 GetGLProcAddress("glDeleteVertexArrays"));
1112 } 1711 } else if (ext.b_GL_OES_vertex_array_object) {
1113 if (!fn.glDeleteVertexArraysOESFn && (ext.b_GL_OES_vertex_array_object)) {
1114 fn.glDeleteVertexArraysOESFn = 1712 fn.glDeleteVertexArraysOESFn =
1115 reinterpret_cast<glDeleteVertexArraysOESProc>( 1713 reinterpret_cast<glDeleteVertexArraysOESProc>(
1116 GetGLProcAddress("glDeleteVertexArraysOES")); 1714 GetGLProcAddress("glDeleteVertexArraysOES"));
1117 } 1715 } else if (ext.b_GL_APPLE_vertex_array_object) {
1118 if (!fn.glDeleteVertexArraysOESFn) {
1119 fn.glDeleteVertexArraysOESFn = 1716 fn.glDeleteVertexArraysOESFn =
1120 reinterpret_cast<glDeleteVertexArraysOESProc>( 1717 reinterpret_cast<glDeleteVertexArraysOESProc>(
1121 GetGLProcAddress("glDeleteVertexArraysAPPLE")); 1718 GetGLProcAddress("glDeleteVertexArraysAPPLE"));
1122 } 1719 }
1123 1720 DCHECK(fn.glDeleteVertexArraysOESFn);
1124 fn.glDrawArraysInstancedANGLEFn = 0; 1721
1722 debug_fn.glDepthRangefFn = 0;
1723 if (((!ver->is_es &&
1724 (ver->major_version > 4u ||
1725 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
1726 ver->is_es)) {
1727 fn.glDepthRangefFn =
1728 reinterpret_cast<glDepthRangefProc>(GetGLProcAddress("glDepthRangef"));
1729 }
1730 DCHECK(fn.glDepthRangefFn);
1731
1732 debug_fn.glDiscardFramebufferEXTFn = 0;
1733 if (ext.b_GL_EXT_discard_framebuffer) {
1734 fn.glDiscardFramebufferEXTFn =
1735 reinterpret_cast<glDiscardFramebufferEXTProc>(
1736 GetGLProcAddress("glDiscardFramebufferEXT"));
1737 }
1738 DCHECK(fn.glDiscardFramebufferEXTFn);
1739
1125 debug_fn.glDrawArraysInstancedANGLEFn = 0; 1740 debug_fn.glDrawArraysInstancedANGLEFn = 0;
1126 if (ext.b_GL_ARB_draw_instanced) { 1741 if (((ver->is_es && (ver->major_version >= 3u)) ||
1742 (!ver->is_es &&
1743 (ver->major_version > 3u ||
1744 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
1745 fn.glDrawArraysInstancedANGLEFn =
1746 reinterpret_cast<glDrawArraysInstancedANGLEProc>(
1747 GetGLProcAddress("glDrawArraysInstanced"));
1748 } else if (ext.b_GL_ARB_draw_instanced) {
1127 fn.glDrawArraysInstancedANGLEFn = 1749 fn.glDrawArraysInstancedANGLEFn =
1128 reinterpret_cast<glDrawArraysInstancedANGLEProc>( 1750 reinterpret_cast<glDrawArraysInstancedANGLEProc>(
1129 GetGLProcAddress("glDrawArraysInstancedARB")); 1751 GetGLProcAddress("glDrawArraysInstancedARB"));
1130 } 1752 } else if (ext.b_GL_ANGLE_instanced_arrays) {
1131 if (!fn.glDrawArraysInstancedANGLEFn && (ext.b_GL_ANGLE_instanced_arrays)) {
1132 fn.glDrawArraysInstancedANGLEFn = 1753 fn.glDrawArraysInstancedANGLEFn =
1133 reinterpret_cast<glDrawArraysInstancedANGLEProc>( 1754 reinterpret_cast<glDrawArraysInstancedANGLEProc>(
1134 GetGLProcAddress("glDrawArraysInstancedANGLE")); 1755 GetGLProcAddress("glDrawArraysInstancedANGLE"));
1135 } 1756 }
1136 if (!fn.glDrawArraysInstancedANGLEFn) { 1757 DCHECK(fn.glDrawArraysInstancedANGLEFn);
1137 fn.glDrawArraysInstancedANGLEFn = 1758
1138 reinterpret_cast<glDrawArraysInstancedANGLEProc>( 1759 debug_fn.glDrawBufferFn = 0;
1139 GetGLProcAddress("glDrawArraysInstanced")); 1760 if (!ver->is_es) {
1140 } 1761 fn.glDrawBufferFn =
1141 1762 reinterpret_cast<glDrawBufferProc>(GetGLProcAddress("glDrawBuffer"));
1142 fn.glDrawBuffersARBFn = 0; 1763 }
1764 DCHECK(fn.glDrawBufferFn);
1765
1143 debug_fn.glDrawBuffersARBFn = 0; 1766 debug_fn.glDrawBuffersARBFn = 0;
1144 if (ext.b_GL_ARB_draw_buffers) { 1767 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1768 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>(
1769 GetGLProcAddress("glDrawBuffers"));
1770 } else if (ext.b_GL_ARB_draw_buffers) {
1145 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>( 1771 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>(
1146 GetGLProcAddress("glDrawBuffersARB")); 1772 GetGLProcAddress("glDrawBuffersARB"));
1147 } 1773 } else if (ext.b_GL_EXT_draw_buffers) {
1148 if (!fn.glDrawBuffersARBFn && (ext.b_GL_EXT_draw_buffers)) {
1149 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>( 1774 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>(
1150 GetGLProcAddress("glDrawBuffersEXT")); 1775 GetGLProcAddress("glDrawBuffersEXT"));
1151 } 1776 }
1152 if (!fn.glDrawBuffersARBFn) { 1777 DCHECK(fn.glDrawBuffersARBFn);
1153 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>( 1778
1154 GetGLProcAddress("glDrawBuffers"));
1155 }
1156
1157 fn.glDrawElementsInstancedANGLEFn = 0;
1158 debug_fn.glDrawElementsInstancedANGLEFn = 0; 1779 debug_fn.glDrawElementsInstancedANGLEFn = 0;
1159 if (ext.b_GL_ARB_draw_instanced) { 1780 if (((ver->is_es && (ver->major_version >= 3u)) ||
1781 (!ver->is_es &&
1782 (ver->major_version > 3u ||
1783 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
1784 fn.glDrawElementsInstancedANGLEFn =
1785 reinterpret_cast<glDrawElementsInstancedANGLEProc>(
1786 GetGLProcAddress("glDrawElementsInstanced"));
1787 } else if (ext.b_GL_ARB_draw_instanced) {
1160 fn.glDrawElementsInstancedANGLEFn = 1788 fn.glDrawElementsInstancedANGLEFn =
1161 reinterpret_cast<glDrawElementsInstancedANGLEProc>( 1789 reinterpret_cast<glDrawElementsInstancedANGLEProc>(
1162 GetGLProcAddress("glDrawElementsInstancedARB")); 1790 GetGLProcAddress("glDrawElementsInstancedARB"));
1163 } 1791 } else if (ext.b_GL_ANGLE_instanced_arrays) {
1164 if (!fn.glDrawElementsInstancedANGLEFn && (ext.b_GL_ANGLE_instanced_arrays)) {
1165 fn.glDrawElementsInstancedANGLEFn = 1792 fn.glDrawElementsInstancedANGLEFn =
1166 reinterpret_cast<glDrawElementsInstancedANGLEProc>( 1793 reinterpret_cast<glDrawElementsInstancedANGLEProc>(
1167 GetGLProcAddress("glDrawElementsInstancedANGLE")); 1794 GetGLProcAddress("glDrawElementsInstancedANGLE"));
1168 } 1795 }
1169 if (!fn.glDrawElementsInstancedANGLEFn) { 1796 DCHECK(fn.glDrawElementsInstancedANGLEFn);
1170 fn.glDrawElementsInstancedANGLEFn = 1797
1171 reinterpret_cast<glDrawElementsInstancedANGLEProc>( 1798 debug_fn.glDrawRangeElementsFn = 0;
1172 GetGLProcAddress("glDrawElementsInstanced")); 1799 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1173 } 1800 fn.glDrawRangeElementsFn = reinterpret_cast<glDrawRangeElementsProc>(
1174 1801 GetGLProcAddress("glDrawRangeElements"));
1175 fn.glEndQueryARBFn = 0; 1802 }
1803 DCHECK(fn.glDrawRangeElementsFn);
1804
1805 debug_fn.glEGLImageTargetRenderbufferStorageOESFn = 0;
1806 if (ext.b_GL_OES_EGL_image) {
1807 fn.glEGLImageTargetRenderbufferStorageOESFn =
1808 reinterpret_cast<glEGLImageTargetRenderbufferStorageOESProc>(
1809 GetGLProcAddress("glEGLImageTargetRenderbufferStorageOES"));
1810 }
1811 DCHECK(fn.glEGLImageTargetRenderbufferStorageOESFn);
1812
1813 debug_fn.glEGLImageTargetTexture2DOESFn = 0;
1814 if (ext.b_GL_OES_EGL_image) {
1815 fn.glEGLImageTargetTexture2DOESFn =
1816 reinterpret_cast<glEGLImageTargetTexture2DOESProc>(
1817 GetGLProcAddress("glEGLImageTargetTexture2DOES"));
1818 }
1819 DCHECK(fn.glEGLImageTargetTexture2DOESFn);
1820
1821 debug_fn.glEndQueryFn = 0;
1822 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1823 fn.glEndQueryFn =
1824 reinterpret_cast<glEndQueryProc>(GetGLProcAddress("glEndQuery"));
1825 }
1826 DCHECK(fn.glEndQueryFn);
1827
1176 debug_fn.glEndQueryARBFn = 0; 1828 debug_fn.glEndQueryARBFn = 0;
1177 if (ext.b_GL_ARB_occlusion_query) { 1829 if (ext.b_GL_ARB_occlusion_query) {
1178 fn.glEndQueryARBFn = 1830 fn.glEndQueryARBFn =
1179 reinterpret_cast<glEndQueryARBProc>(GetGLProcAddress("glEndQueryARB")); 1831 reinterpret_cast<glEndQueryARBProc>(GetGLProcAddress("glEndQueryARB"));
1180 } 1832 } else if ((ext.b_GL_EXT_disjoint_timer_query ||
1181 if (!fn.glEndQueryARBFn) { 1833 ext.b_GL_EXT_occlusion_query_boolean)) {
1182 fn.glEndQueryARBFn = 1834 fn.glEndQueryARBFn =
1183 reinterpret_cast<glEndQueryARBProc>(GetGLProcAddress("glEndQueryEXT")); 1835 reinterpret_cast<glEndQueryARBProc>(GetGLProcAddress("glEndQueryEXT"));
1184 } 1836 }
1185 1837 DCHECK(fn.glEndQueryARBFn);
1186 fn.glFramebufferRenderbufferEXTFn = 0; 1838
1187 debug_fn.glFramebufferRenderbufferEXTFn = 0; 1839 debug_fn.glEndTransformFeedbackFn = 0;
1188 if (ext.b_GL_EXT_framebuffer_object) { 1840 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1189 fn.glFramebufferRenderbufferEXTFn = 1841 (ver->is_es && (ver->major_version >= 3u)))) {
1190 reinterpret_cast<glFramebufferRenderbufferEXTProc>( 1842 fn.glEndTransformFeedbackFn = reinterpret_cast<glEndTransformFeedbackProc>(
1191 GetGLProcAddress("glFramebufferRenderbufferEXT")); 1843 GetGLProcAddress("glEndTransformFeedback"));
1192 } 1844 }
1193 if (!fn.glFramebufferRenderbufferEXTFn) { 1845 DCHECK(fn.glEndTransformFeedbackFn);
1194 fn.glFramebufferRenderbufferEXTFn = 1846
1195 reinterpret_cast<glFramebufferRenderbufferEXTProc>( 1847 debug_fn.glFenceSyncFn = 0;
1196 GetGLProcAddress("glFramebufferRenderbuffer")); 1848 if (((!ver->is_es &&
1197 } 1849 (ver->major_version > 3u ||
1198 1850 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
1199 fn.glFramebufferTexture2DEXTFn = 0; 1851 (ver->is_es && (ver->major_version >= 3u))) ||
1200 debug_fn.glFramebufferTexture2DEXTFn = 0; 1852 ext.b_GL_ARB_sync) {
1201 if (ext.b_GL_EXT_framebuffer_object) { 1853 fn.glFenceSyncFn =
1202 fn.glFramebufferTexture2DEXTFn = 1854 reinterpret_cast<glFenceSyncProc>(GetGLProcAddress("glFenceSync"));
1203 reinterpret_cast<glFramebufferTexture2DEXTProc>( 1855 }
1204 GetGLProcAddress("glFramebufferTexture2DEXT")); 1856 DCHECK(fn.glFenceSyncFn);
1205 } 1857
1206 if (!fn.glFramebufferTexture2DEXTFn) { 1858 debug_fn.glFinishFenceAPPLEFn = 0;
1207 fn.glFramebufferTexture2DEXTFn = 1859 if (ext.b_GL_APPLE_fence) {
1208 reinterpret_cast<glFramebufferTexture2DEXTProc>( 1860 fn.glFinishFenceAPPLEFn = reinterpret_cast<glFinishFenceAPPLEProc>(
1209 GetGLProcAddress("glFramebufferTexture2D")); 1861 GetGLProcAddress("glFinishFenceAPPLE"));
1210 } 1862 }
1211 1863 DCHECK(fn.glFinishFenceAPPLEFn);
1212 fn.glGenBuffersARBFn = 0; 1864
1213 debug_fn.glGenBuffersARBFn = 0; 1865 debug_fn.glFinishFenceNVFn = 0;
1214 if (ext.b_GL_ARB_vertex_buffer_object) { 1866 if (ext.b_GL_NV_fence) {
1215 fn.glGenBuffersARBFn = reinterpret_cast<glGenBuffersARBProc>( 1867 fn.glFinishFenceNVFn = reinterpret_cast<glFinishFenceNVProc>(
1216 GetGLProcAddress("glGenBuffersARB")); 1868 GetGLProcAddress("glFinishFenceNV"));
1217 } 1869 }
1218 if (!fn.glGenBuffersARBFn) { 1870 DCHECK(fn.glFinishFenceNVFn);
1219 fn.glGenBuffersARBFn = 1871
1220 reinterpret_cast<glGenBuffersARBProc>(GetGLProcAddress("glGenBuffers")); 1872 debug_fn.glFlushMappedBufferRangeFn = 0;
1221 } 1873 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1222 1874 (ver->is_es && (ver->major_version >= 3u)))) {
1223 fn.glGenerateMipmapEXTFn = 0; 1875 fn.glFlushMappedBufferRangeFn =
1224 debug_fn.glGenerateMipmapEXTFn = 0; 1876 reinterpret_cast<glFlushMappedBufferRangeProc>(
1225 if (ext.b_GL_EXT_framebuffer_object) { 1877 GetGLProcAddress("glFlushMappedBufferRange"));
1226 fn.glGenerateMipmapEXTFn = reinterpret_cast<glGenerateMipmapEXTProc>( 1878 }
1227 GetGLProcAddress("glGenerateMipmapEXT")); 1879 DCHECK(fn.glFlushMappedBufferRangeFn);
1228 } 1880
1229 if (!fn.glGenerateMipmapEXTFn) { 1881 debug_fn.glFramebufferTexture2DMultisampleEXTFn = 0;
1230 fn.glGenerateMipmapEXTFn = reinterpret_cast<glGenerateMipmapEXTProc>( 1882 if (ext.b_GL_EXT_multisampled_render_to_texture) {
1231 GetGLProcAddress("glGenerateMipmap")); 1883 fn.glFramebufferTexture2DMultisampleEXTFn =
1232 } 1884 reinterpret_cast<glFramebufferTexture2DMultisampleEXTProc>(
1233 1885 GetGLProcAddress("glFramebufferTexture2DMultisampleEXT"));
1234 fn.glGenFramebuffersEXTFn = 0; 1886 }
1235 debug_fn.glGenFramebuffersEXTFn = 0; 1887 DCHECK(fn.glFramebufferTexture2DMultisampleEXTFn);
1236 if (ext.b_GL_EXT_framebuffer_object) { 1888
1237 fn.glGenFramebuffersEXTFn = reinterpret_cast<glGenFramebuffersEXTProc>( 1889 debug_fn.glFramebufferTexture2DMultisampleIMGFn = 0;
1238 GetGLProcAddress("glGenFramebuffersEXT")); 1890 if (ext.b_GL_IMG_multisampled_render_to_texture) {
1239 } 1891 fn.glFramebufferTexture2DMultisampleIMGFn =
1240 if (!fn.glGenFramebuffersEXTFn) { 1892 reinterpret_cast<glFramebufferTexture2DMultisampleIMGProc>(
1241 fn.glGenFramebuffersEXTFn = reinterpret_cast<glGenFramebuffersEXTProc>( 1893 GetGLProcAddress("glFramebufferTexture2DMultisampleIMG"));
1242 GetGLProcAddress("glGenFramebuffers")); 1894 }
1243 } 1895 DCHECK(fn.glFramebufferTexture2DMultisampleIMGFn);
1244 1896
1245 fn.glGenQueriesARBFn = 0; 1897 debug_fn.glFramebufferTextureLayerFn = 0;
1898 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1899 (ver->is_es && (ver->major_version >= 3u)))) {
1900 fn.glFramebufferTextureLayerFn =
1901 reinterpret_cast<glFramebufferTextureLayerProc>(
1902 GetGLProcAddress("glFramebufferTextureLayer"));
1903 }
1904 DCHECK(fn.glFramebufferTextureLayerFn);
1905
1906 debug_fn.glGenFencesAPPLEFn = 0;
1907 if (ext.b_GL_APPLE_fence) {
1908 fn.glGenFencesAPPLEFn = reinterpret_cast<glGenFencesAPPLEProc>(
1909 GetGLProcAddress("glGenFencesAPPLE"));
1910 }
1911 DCHECK(fn.glGenFencesAPPLEFn);
1912
1913 debug_fn.glGenFencesNVFn = 0;
1914 if (ext.b_GL_NV_fence) {
1915 fn.glGenFencesNVFn =
1916 reinterpret_cast<glGenFencesNVProc>(GetGLProcAddress("glGenFencesNV"));
1917 }
1918 DCHECK(fn.glGenFencesNVFn);
1919
1920 debug_fn.glGenQueriesFn = 0;
1921 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1922 fn.glGenQueriesFn =
1923 reinterpret_cast<glGenQueriesProc>(GetGLProcAddress("glGenQueries"));
1924 }
1925 DCHECK(fn.glGenQueriesFn);
1926
1246 debug_fn.glGenQueriesARBFn = 0; 1927 debug_fn.glGenQueriesARBFn = 0;
1247 if (ext.b_GL_ARB_occlusion_query) { 1928 if (ext.b_GL_ARB_occlusion_query) {
1248 fn.glGenQueriesARBFn = reinterpret_cast<glGenQueriesARBProc>( 1929 fn.glGenQueriesARBFn = reinterpret_cast<glGenQueriesARBProc>(
1249 GetGLProcAddress("glGenQueriesARB")); 1930 GetGLProcAddress("glGenQueriesARB"));
1250 } 1931 } else if ((ext.b_GL_EXT_disjoint_timer_query ||
1251 if (!fn.glGenQueriesARBFn) { 1932 ext.b_GL_EXT_occlusion_query_boolean)) {
1252 fn.glGenQueriesARBFn = reinterpret_cast<glGenQueriesARBProc>( 1933 fn.glGenQueriesARBFn = reinterpret_cast<glGenQueriesARBProc>(
1253 GetGLProcAddress("glGenQueriesEXT")); 1934 GetGLProcAddress("glGenQueriesEXT"));
1254 } 1935 }
1255 1936 DCHECK(fn.glGenQueriesARBFn);
1256 fn.glGenRenderbuffersEXTFn = 0; 1937
1257 debug_fn.glGenRenderbuffersEXTFn = 0; 1938 debug_fn.glGenSamplersFn = 0;
1258 if (ext.b_GL_EXT_framebuffer_object) { 1939 if (((!ver->is_es &&
1259 fn.glGenRenderbuffersEXTFn = reinterpret_cast<glGenRenderbuffersEXTProc>( 1940 (ver->major_version > 3u ||
1260 GetGLProcAddress("glGenRenderbuffersEXT")); 1941 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
1261 } 1942 (ver->is_es && (ver->major_version >= 3u)))) {
1262 if (!fn.glGenRenderbuffersEXTFn) { 1943 fn.glGenSamplersFn =
1263 fn.glGenRenderbuffersEXTFn = reinterpret_cast<glGenRenderbuffersEXTProc>( 1944 reinterpret_cast<glGenSamplersProc>(GetGLProcAddress("glGenSamplers"));
1264 GetGLProcAddress("glGenRenderbuffers")); 1945 }
1265 } 1946 DCHECK(fn.glGenSamplersFn);
1266 1947
1267 fn.glGenVertexArraysOESFn = 0; 1948 debug_fn.glGenTransformFeedbacksFn = 0;
1949 if (((ver->is_es && (ver->major_version >= 3u)) ||
1950 (!ver->is_es && (ver->major_version >= 4u)))) {
1951 fn.glGenTransformFeedbacksFn =
1952 reinterpret_cast<glGenTransformFeedbacksProc>(
1953 GetGLProcAddress("glGenTransformFeedbacks"));
1954 }
1955 DCHECK(fn.glGenTransformFeedbacksFn);
1956
1268 debug_fn.glGenVertexArraysOESFn = 0; 1957 debug_fn.glGenVertexArraysOESFn = 0;
1269 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 1958 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1959 (ver->is_es && (ver->major_version >= 3u))) ||
1270 ext.b_GL_ARB_vertex_array_object) { 1960 ext.b_GL_ARB_vertex_array_object) {
1271 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>( 1961 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>(
1272 GetGLProcAddress("glGenVertexArrays")); 1962 GetGLProcAddress("glGenVertexArrays"));
1273 } 1963 } 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>( 1964 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>(
1276 GetGLProcAddress("glGenVertexArraysOES")); 1965 GetGLProcAddress("glGenVertexArraysOES"));
1277 } 1966 } else if (ext.b_GL_APPLE_vertex_array_object) {
1278 if (!fn.glGenVertexArraysOESFn) {
1279 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>( 1967 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>(
1280 GetGLProcAddress("glGenVertexArraysAPPLE")); 1968 GetGLProcAddress("glGenVertexArraysAPPLE"));
1281 } 1969 }
1282 1970 DCHECK(fn.glGenVertexArraysOESFn);
1283 fn.glGetFramebufferAttachmentParameterivEXTFn = 0; 1971
1284 debug_fn.glGetFramebufferAttachmentParameterivEXTFn = 0; 1972 debug_fn.glGetActiveUniformBlockivFn = 0;
1285 if (ext.b_GL_EXT_framebuffer_object) { 1973 if (((ver->is_es && (ver->major_version >= 3u)) ||
1286 fn.glGetFramebufferAttachmentParameterivEXTFn = 1974 (!ver->is_es &&
1287 reinterpret_cast<glGetFramebufferAttachmentParameterivEXTProc>( 1975 (ver->major_version > 3u ||
1288 GetGLProcAddress("glGetFramebufferAttachmentParameterivEXT")); 1976 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
1289 } 1977 fn.glGetActiveUniformBlockivFn =
1290 if (!fn.glGetFramebufferAttachmentParameterivEXTFn) { 1978 reinterpret_cast<glGetActiveUniformBlockivProc>(
1291 fn.glGetFramebufferAttachmentParameterivEXTFn = 1979 GetGLProcAddress("glGetActiveUniformBlockiv"));
1292 reinterpret_cast<glGetFramebufferAttachmentParameterivEXTProc>( 1980 }
1293 GetGLProcAddress("glGetFramebufferAttachmentParameteriv")); 1981 DCHECK(fn.glGetActiveUniformBlockivFn);
1294 } 1982
1295 1983 debug_fn.glGetActiveUniformBlockNameFn = 0;
1296 fn.glGetGraphicsResetStatusARBFn = 0; 1984 if (((ver->is_es && (ver->major_version >= 3u)) ||
1985 (!ver->is_es &&
1986 (ver->major_version > 3u ||
1987 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
1988 fn.glGetActiveUniformBlockNameFn =
1989 reinterpret_cast<glGetActiveUniformBlockNameProc>(
1990 GetGLProcAddress("glGetActiveUniformBlockName"));
1991 }
1992 DCHECK(fn.glGetActiveUniformBlockNameFn);
1993
1994 debug_fn.glGetActiveUniformsivFn = 0;
1995 if (((ver->is_es && (ver->major_version >= 3u)) ||
1996 (!ver->is_es &&
1997 (ver->major_version > 3u ||
1998 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
1999 fn.glGetActiveUniformsivFn = reinterpret_cast<glGetActiveUniformsivProc>(
2000 GetGLProcAddress("glGetActiveUniformsiv"));
2001 }
2002 DCHECK(fn.glGetActiveUniformsivFn);
2003
2004 debug_fn.glGetFenceivNVFn = 0;
2005 if (ext.b_GL_NV_fence) {
2006 fn.glGetFenceivNVFn = reinterpret_cast<glGetFenceivNVProc>(
2007 GetGLProcAddress("glGetFenceivNV"));
2008 }
2009 DCHECK(fn.glGetFenceivNVFn);
2010
2011 debug_fn.glGetFragDataLocationFn = 0;
2012 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2013 (ver->is_es && (ver->major_version >= 3u)))) {
2014 fn.glGetFragDataLocationFn = reinterpret_cast<glGetFragDataLocationProc>(
2015 GetGLProcAddress("glGetFragDataLocation"));
2016 }
2017 DCHECK(fn.glGetFragDataLocationFn);
2018
1297 debug_fn.glGetGraphicsResetStatusARBFn = 0; 2019 debug_fn.glGetGraphicsResetStatusARBFn = 0;
1298 if (ext.b_GL_ARB_robustness) { 2020 if (((!ver->is_es &&
2021 (ver->major_version > 4u ||
2022 (ver->major_version == 4u && ver->minor_version >= 5u))))) {
2023 fn.glGetGraphicsResetStatusARBFn =
2024 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
2025 GetGLProcAddress("glGetGraphicsResetStatus"));
2026 } else if (ext.b_GL_ARB_robustness) {
1299 fn.glGetGraphicsResetStatusARBFn = 2027 fn.glGetGraphicsResetStatusARBFn =
1300 reinterpret_cast<glGetGraphicsResetStatusARBProc>( 2028 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
1301 GetGLProcAddress("glGetGraphicsResetStatusARB")); 2029 GetGLProcAddress("glGetGraphicsResetStatusARB"));
1302 } 2030 } else if (ext.b_GL_KHR_robustness) {
1303 if (!fn.glGetGraphicsResetStatusARBFn && (ext.b_GL_KHR_robustness)) {
1304 fn.glGetGraphicsResetStatusARBFn = 2031 fn.glGetGraphicsResetStatusARBFn =
1305 reinterpret_cast<glGetGraphicsResetStatusARBProc>( 2032 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
1306 GetGLProcAddress("glGetGraphicsResetStatusKHR")); 2033 GetGLProcAddress("glGetGraphicsResetStatusKHR"));
1307 } 2034 } else if (ext.b_GL_EXT_robustness) {
1308 if (!fn.glGetGraphicsResetStatusARBFn && (ext.b_GL_EXT_robustness)) {
1309 fn.glGetGraphicsResetStatusARBFn = 2035 fn.glGetGraphicsResetStatusARBFn =
1310 reinterpret_cast<glGetGraphicsResetStatusARBProc>( 2036 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
1311 GetGLProcAddress("glGetGraphicsResetStatusEXT")); 2037 GetGLProcAddress("glGetGraphicsResetStatusEXT"));
1312 } 2038 }
1313 if (!fn.glGetGraphicsResetStatusARBFn) { 2039 DCHECK(fn.glGetGraphicsResetStatusARBFn);
1314 fn.glGetGraphicsResetStatusARBFn = 2040
1315 reinterpret_cast<glGetGraphicsResetStatusARBProc>( 2041 debug_fn.glGetInteger64i_vFn = 0;
1316 GetGLProcAddress("glGetGraphicsResetStatus")); 2042 if (((!ver->is_es &&
1317 } 2043 (ver->major_version > 3u ||
1318 2044 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
1319 fn.glGetProgramBinaryFn = 0; 2045 (ver->is_es && (ver->major_version >= 3u)))) {
2046 fn.glGetInteger64i_vFn = reinterpret_cast<glGetInteger64i_vProc>(
2047 GetGLProcAddress("glGetInteger64i_v"));
2048 }
2049 DCHECK(fn.glGetInteger64i_vFn);
2050
2051 debug_fn.glGetInteger64vFn = 0;
2052 if (((!ver->is_es &&
2053 (ver->major_version > 3u ||
2054 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
2055 (ver->is_es && (ver->major_version >= 3u)))) {
2056 fn.glGetInteger64vFn = reinterpret_cast<glGetInteger64vProc>(
2057 GetGLProcAddress("glGetInteger64v"));
2058 }
2059 DCHECK(fn.glGetInteger64vFn);
2060
2061 debug_fn.glGetIntegeri_vFn = 0;
2062 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2063 (ver->is_es && (ver->major_version >= 3u)))) {
2064 fn.glGetIntegeri_vFn = reinterpret_cast<glGetIntegeri_vProc>(
2065 GetGLProcAddress("glGetIntegeri_v"));
2066 }
2067 DCHECK(fn.glGetIntegeri_vFn);
2068
2069 debug_fn.glGetInternalformativFn = 0;
2070 if (((!ver->is_es &&
2071 (ver->major_version > 4u ||
2072 (ver->major_version == 4u && ver->minor_version >= 2u))) ||
2073 (ver->is_es && (ver->major_version >= 3u)))) {
2074 fn.glGetInternalformativFn = reinterpret_cast<glGetInternalformativProc>(
2075 GetGLProcAddress("glGetInternalformativ"));
2076 }
2077 DCHECK(fn.glGetInternalformativFn);
2078
1320 debug_fn.glGetProgramBinaryFn = 0; 2079 debug_fn.glGetProgramBinaryFn = 0;
1321 if (ext.b_GL_OES_get_program_binary) { 2080 if (((!ver->is_es &&
2081 (ver->major_version > 4u ||
2082 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
2083 (ver->is_es && (ver->major_version >= 3u))) ||
2084 ext.b_GL_ARB_get_program_binary) {
2085 fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>(
2086 GetGLProcAddress("glGetProgramBinary"));
2087 } else if (ext.b_GL_OES_get_program_binary) {
1322 fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>( 2088 fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>(
1323 GetGLProcAddress("glGetProgramBinaryOES")); 2089 GetGLProcAddress("glGetProgramBinaryOES"));
1324 } 2090 }
1325 if (!fn.glGetProgramBinaryFn) { 2091 DCHECK(fn.glGetProgramBinaryFn);
1326 fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>( 2092
1327 GetGLProcAddress("glGetProgramBinary")); 2093 debug_fn.glGetQueryivFn = 0;
1328 } 2094 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1329 2095 fn.glGetQueryivFn =
1330 fn.glGetQueryivARBFn = 0; 2096 reinterpret_cast<glGetQueryivProc>(GetGLProcAddress("glGetQueryiv"));
2097 }
2098 DCHECK(fn.glGetQueryivFn);
2099
1331 debug_fn.glGetQueryivARBFn = 0; 2100 debug_fn.glGetQueryivARBFn = 0;
1332 if (ext.b_GL_ARB_occlusion_query) { 2101 if (ext.b_GL_ARB_occlusion_query) {
1333 fn.glGetQueryivARBFn = reinterpret_cast<glGetQueryivARBProc>( 2102 fn.glGetQueryivARBFn = reinterpret_cast<glGetQueryivARBProc>(
1334 GetGLProcAddress("glGetQueryivARB")); 2103 GetGLProcAddress("glGetQueryivARB"));
1335 } 2104 } else if ((ext.b_GL_EXT_disjoint_timer_query ||
1336 if (!fn.glGetQueryivARBFn) { 2105 ext.b_GL_EXT_occlusion_query_boolean)) {
1337 fn.glGetQueryivARBFn = reinterpret_cast<glGetQueryivARBProc>( 2106 fn.glGetQueryivARBFn = reinterpret_cast<glGetQueryivARBProc>(
1338 GetGLProcAddress("glGetQueryivEXT")); 2107 GetGLProcAddress("glGetQueryivEXT"));
1339 } 2108 }
1340 2109 DCHECK(fn.glGetQueryivARBFn);
1341 fn.glGetQueryObjectivARBFn = 0; 2110
2111 debug_fn.glGetQueryObjecti64vFn = 0;
2112 if (((!ver->is_es &&
2113 (ver->major_version > 3u ||
2114 (ver->major_version == 3u && ver->minor_version >= 3u)))) ||
2115 ext.b_GL_ARB_timer_query) {
2116 fn.glGetQueryObjecti64vFn = reinterpret_cast<glGetQueryObjecti64vProc>(
2117 GetGLProcAddress("glGetQueryObjecti64v"));
2118 } else if ((ext.b_GL_EXT_timer_query || ext.b_GL_EXT_disjoint_timer_query)) {
2119 fn.glGetQueryObjecti64vFn = reinterpret_cast<glGetQueryObjecti64vProc>(
2120 GetGLProcAddress("glGetQueryObjecti64vEXT"));
2121 }
2122 DCHECK(fn.glGetQueryObjecti64vFn);
2123
2124 debug_fn.glGetQueryObjectivFn = 0;
2125 if (!ver->is_es) {
2126 fn.glGetQueryObjectivFn = reinterpret_cast<glGetQueryObjectivProc>(
2127 GetGLProcAddress("glGetQueryObjectiv"));
2128 }
2129 DCHECK(fn.glGetQueryObjectivFn);
2130
1342 debug_fn.glGetQueryObjectivARBFn = 0; 2131 debug_fn.glGetQueryObjectivARBFn = 0;
1343 if (ext.b_GL_ARB_occlusion_query) { 2132 if (ext.b_GL_ARB_occlusion_query) {
1344 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>( 2133 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>(
1345 GetGLProcAddress("glGetQueryObjectivARB")); 2134 GetGLProcAddress("glGetQueryObjectivARB"));
1346 } 2135 } else if (ext.b_GL_EXT_disjoint_timer_query) {
1347 if (!fn.glGetQueryObjectivARBFn) {
1348 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>( 2136 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>(
1349 GetGLProcAddress("glGetQueryObjectivEXT")); 2137 GetGLProcAddress("glGetQueryObjectivEXT"));
1350 } 2138 }
1351 2139 DCHECK(fn.glGetQueryObjectivARBFn);
1352 fn.glGetQueryObjectui64vFn = 0; 2140
1353 debug_fn.glGetQueryObjectui64vFn = 0; 2141 debug_fn.glGetQueryObjectui64vFn = 0;
1354 if (ext.b_GL_ARB_timer_query) { 2142 if (((!ver->is_es &&
2143 (ver->major_version > 3u ||
2144 (ver->major_version == 3u && ver->minor_version >= 3u)))) ||
2145 ext.b_GL_ARB_timer_query) {
1355 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>( 2146 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>(
1356 GetGLProcAddress("glGetQueryObjectui64v")); 2147 GetGLProcAddress("glGetQueryObjectui64v"));
1357 } 2148 } 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>( 2149 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>(
1360 GetGLProcAddress("glGetQueryObjectui64vEXT")); 2150 GetGLProcAddress("glGetQueryObjectui64vEXT"));
1361 } 2151 }
1362 2152 DCHECK(fn.glGetQueryObjectui64vFn);
1363 fn.glGetQueryObjectuivARBFn = 0; 2153
2154 debug_fn.glGetQueryObjectuivFn = 0;
2155 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
2156 fn.glGetQueryObjectuivFn = reinterpret_cast<glGetQueryObjectuivProc>(
2157 GetGLProcAddress("glGetQueryObjectuiv"));
2158 }
2159 DCHECK(fn.glGetQueryObjectuivFn);
2160
1364 debug_fn.glGetQueryObjectuivARBFn = 0; 2161 debug_fn.glGetQueryObjectuivARBFn = 0;
1365 if (ext.b_GL_ARB_occlusion_query) { 2162 if (ext.b_GL_ARB_occlusion_query) {
1366 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>( 2163 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>(
1367 GetGLProcAddress("glGetQueryObjectuivARB")); 2164 GetGLProcAddress("glGetQueryObjectuivARB"));
1368 } 2165 } else if ((ext.b_GL_EXT_disjoint_timer_query ||
1369 if (!fn.glGetQueryObjectuivARBFn) { 2166 ext.b_GL_EXT_occlusion_query_boolean)) {
1370 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>( 2167 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>(
1371 GetGLProcAddress("glGetQueryObjectuivEXT")); 2168 GetGLProcAddress("glGetQueryObjectuivEXT"));
1372 } 2169 }
1373 2170 DCHECK(fn.glGetQueryObjectuivARBFn);
1374 fn.glGetRenderbufferParameterivEXTFn = 0; 2171
1375 debug_fn.glGetRenderbufferParameterivEXTFn = 0; 2172 debug_fn.glGetSamplerParameterfvFn = 0;
1376 if (ext.b_GL_EXT_framebuffer_object) { 2173 if (((!ver->is_es &&
1377 fn.glGetRenderbufferParameterivEXTFn = 2174 (ver->major_version > 3u ||
1378 reinterpret_cast<glGetRenderbufferParameterivEXTProc>( 2175 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
1379 GetGLProcAddress("glGetRenderbufferParameterivEXT")); 2176 (ver->is_es && (ver->major_version >= 3u)))) {
1380 } 2177 fn.glGetSamplerParameterfvFn =
1381 if (!fn.glGetRenderbufferParameterivEXTFn) { 2178 reinterpret_cast<glGetSamplerParameterfvProc>(
1382 fn.glGetRenderbufferParameterivEXTFn = 2179 GetGLProcAddress("glGetSamplerParameterfv"));
1383 reinterpret_cast<glGetRenderbufferParameterivEXTProc>( 2180 }
1384 GetGLProcAddress("glGetRenderbufferParameteriv")); 2181 DCHECK(fn.glGetSamplerParameterfvFn);
1385 } 2182
1386 2183 debug_fn.glGetSamplerParameterivFn = 0;
1387 fn.glIsFramebufferEXTFn = 0; 2184 if (((!ver->is_es &&
1388 debug_fn.glIsFramebufferEXTFn = 0; 2185 (ver->major_version > 3u ||
1389 if (ext.b_GL_EXT_framebuffer_object) { 2186 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
1390 fn.glIsFramebufferEXTFn = reinterpret_cast<glIsFramebufferEXTProc>( 2187 (ver->is_es && (ver->major_version >= 3u)))) {
1391 GetGLProcAddress("glIsFramebufferEXT")); 2188 fn.glGetSamplerParameterivFn =
1392 } 2189 reinterpret_cast<glGetSamplerParameterivProc>(
1393 if (!fn.glIsFramebufferEXTFn) { 2190 GetGLProcAddress("glGetSamplerParameteriv"));
1394 fn.glIsFramebufferEXTFn = reinterpret_cast<glIsFramebufferEXTProc>( 2191 }
1395 GetGLProcAddress("glIsFramebuffer")); 2192 DCHECK(fn.glGetSamplerParameterivFn);
1396 } 2193
1397 2194 debug_fn.glGetShaderPrecisionFormatFn = 0;
1398 fn.glIsQueryARBFn = 0; 2195 if (((!ver->is_es &&
2196 (ver->major_version > 4u ||
2197 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
2198 ver->is_es)) {
2199 fn.glGetShaderPrecisionFormatFn =
2200 reinterpret_cast<glGetShaderPrecisionFormatProc>(
2201 GetGLProcAddress("glGetShaderPrecisionFormat"));
2202 }
2203 DCHECK(fn.glGetShaderPrecisionFormatFn);
2204
2205 debug_fn.glGetSyncivFn = 0;
2206 if (((!ver->is_es &&
2207 (ver->major_version > 3u ||
2208 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
2209 (ver->is_es && (ver->major_version >= 3u))) ||
2210 ext.b_GL_ARB_sync) {
2211 fn.glGetSyncivFn =
2212 reinterpret_cast<glGetSyncivProc>(GetGLProcAddress("glGetSynciv"));
2213 }
2214 DCHECK(fn.glGetSyncivFn);
2215
2216 debug_fn.glGetTexLevelParameterfvFn = 0;
2217 if ((!ver->is_es || (ver->is_es && (ver->major_version > 3u ||
2218 (ver->major_version == 3u &&
2219 ver->minor_version >= 1u))))) {
2220 fn.glGetTexLevelParameterfvFn =
2221 reinterpret_cast<glGetTexLevelParameterfvProc>(
2222 GetGLProcAddress("glGetTexLevelParameterfv"));
2223 }
2224 DCHECK(fn.glGetTexLevelParameterfvFn);
2225
2226 debug_fn.glGetTexLevelParameterivFn = 0;
2227 if ((!ver->is_es || (ver->is_es && (ver->major_version > 3u ||
2228 (ver->major_version == 3u &&
2229 ver->minor_version >= 1u))))) {
2230 fn.glGetTexLevelParameterivFn =
2231 reinterpret_cast<glGetTexLevelParameterivProc>(
2232 GetGLProcAddress("glGetTexLevelParameteriv"));
2233 }
2234 DCHECK(fn.glGetTexLevelParameterivFn);
2235
2236 debug_fn.glGetTransformFeedbackVaryingFn = 0;
2237 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2238 (ver->is_es && (ver->major_version >= 3u)))) {
2239 fn.glGetTransformFeedbackVaryingFn =
2240 reinterpret_cast<glGetTransformFeedbackVaryingProc>(
2241 GetGLProcAddress("glGetTransformFeedbackVarying"));
2242 }
2243 DCHECK(fn.glGetTransformFeedbackVaryingFn);
2244
2245 debug_fn.glGetTranslatedShaderSourceANGLEFn = 0;
2246 if (ext.b_GL_ANGLE_translated_shader_source) {
2247 fn.glGetTranslatedShaderSourceANGLEFn =
2248 reinterpret_cast<glGetTranslatedShaderSourceANGLEProc>(
2249 GetGLProcAddress("glGetTranslatedShaderSourceANGLE"));
2250 }
2251 DCHECK(fn.glGetTranslatedShaderSourceANGLEFn);
2252
2253 debug_fn.glGetUniformBlockIndexFn = 0;
2254 if (((ver->is_es && (ver->major_version >= 3u)) ||
2255 (!ver->is_es &&
2256 (ver->major_version > 3u ||
2257 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
2258 fn.glGetUniformBlockIndexFn = reinterpret_cast<glGetUniformBlockIndexProc>(
2259 GetGLProcAddress("glGetUniformBlockIndex"));
2260 }
2261 DCHECK(fn.glGetUniformBlockIndexFn);
2262
2263 debug_fn.glGetUniformIndicesFn = 0;
2264 if (((ver->is_es && (ver->major_version >= 3u)) ||
2265 (!ver->is_es &&
2266 (ver->major_version > 3u ||
2267 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
2268 fn.glGetUniformIndicesFn = reinterpret_cast<glGetUniformIndicesProc>(
2269 GetGLProcAddress("glGetUniformIndices"));
2270 }
2271 DCHECK(fn.glGetUniformIndicesFn);
2272
2273 debug_fn.glInsertEventMarkerEXTFn = 0;
2274 if (ext.b_GL_EXT_debug_marker) {
2275 fn.glInsertEventMarkerEXTFn = reinterpret_cast<glInsertEventMarkerEXTProc>(
2276 GetGLProcAddress("glInsertEventMarkerEXT"));
2277 }
2278 DCHECK(fn.glInsertEventMarkerEXTFn);
2279
2280 debug_fn.glInvalidateFramebufferFn = 0;
2281 if (((!ver->is_es &&
2282 (ver->major_version > 4u ||
2283 (ver->major_version == 4u && ver->minor_version >= 3u))) ||
2284 (ver->is_es && (ver->major_version >= 3u)))) {
2285 fn.glInvalidateFramebufferFn =
2286 reinterpret_cast<glInvalidateFramebufferProc>(
2287 GetGLProcAddress("glInvalidateFramebuffer"));
2288 }
2289 DCHECK(fn.glInvalidateFramebufferFn);
2290
2291 debug_fn.glInvalidateSubFramebufferFn = 0;
2292 if (((!ver->is_es &&
2293 (ver->major_version > 4u ||
2294 (ver->major_version == 4u && ver->minor_version >= 3u))) ||
2295 (ver->is_es && (ver->major_version >= 3u)))) {
2296 fn.glInvalidateSubFramebufferFn =
2297 reinterpret_cast<glInvalidateSubFramebufferProc>(
2298 GetGLProcAddress("glInvalidateSubFramebuffer"));
2299 }
2300 DCHECK(fn.glInvalidateSubFramebufferFn);
2301
2302 debug_fn.glIsFenceAPPLEFn = 0;
2303 if (ext.b_GL_APPLE_fence) {
2304 fn.glIsFenceAPPLEFn = reinterpret_cast<glIsFenceAPPLEProc>(
2305 GetGLProcAddress("glIsFenceAPPLE"));
2306 }
2307 DCHECK(fn.glIsFenceAPPLEFn);
2308
2309 debug_fn.glIsFenceNVFn = 0;
2310 if (ext.b_GL_NV_fence) {
2311 fn.glIsFenceNVFn =
2312 reinterpret_cast<glIsFenceNVProc>(GetGLProcAddress("glIsFenceNV"));
2313 }
2314 DCHECK(fn.glIsFenceNVFn);
2315
2316 debug_fn.glIsQueryFn = 0;
2317 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
2318 fn.glIsQueryFn =
2319 reinterpret_cast<glIsQueryProc>(GetGLProcAddress("glIsQuery"));
2320 }
2321 DCHECK(fn.glIsQueryFn);
2322
1399 debug_fn.glIsQueryARBFn = 0; 2323 debug_fn.glIsQueryARBFn = 0;
1400 if (ext.b_GL_ARB_occlusion_query) { 2324 if (ext.b_GL_ARB_occlusion_query) {
1401 fn.glIsQueryARBFn = 2325 fn.glIsQueryARBFn =
1402 reinterpret_cast<glIsQueryARBProc>(GetGLProcAddress("glIsQueryARB")); 2326 reinterpret_cast<glIsQueryARBProc>(GetGLProcAddress("glIsQueryARB"));
1403 } 2327 } else if ((ext.b_GL_EXT_disjoint_timer_query ||
1404 if (!fn.glIsQueryARBFn) { 2328 ext.b_GL_EXT_occlusion_query_boolean)) {
1405 fn.glIsQueryARBFn = 2329 fn.glIsQueryARBFn =
1406 reinterpret_cast<glIsQueryARBProc>(GetGLProcAddress("glIsQueryEXT")); 2330 reinterpret_cast<glIsQueryARBProc>(GetGLProcAddress("glIsQueryEXT"));
1407 } 2331 }
1408 2332 DCHECK(fn.glIsQueryARBFn);
1409 fn.glIsRenderbufferEXTFn = 0; 2333
1410 debug_fn.glIsRenderbufferEXTFn = 0; 2334 debug_fn.glIsSamplerFn = 0;
1411 if (ext.b_GL_EXT_framebuffer_object) { 2335 if (((!ver->is_es &&
1412 fn.glIsRenderbufferEXTFn = reinterpret_cast<glIsRenderbufferEXTProc>( 2336 (ver->major_version > 3u ||
1413 GetGLProcAddress("glIsRenderbufferEXT")); 2337 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
1414 } 2338 (ver->is_es && (ver->major_version >= 3u)))) {
1415 if (!fn.glIsRenderbufferEXTFn) { 2339 fn.glIsSamplerFn =
1416 fn.glIsRenderbufferEXTFn = reinterpret_cast<glIsRenderbufferEXTProc>( 2340 reinterpret_cast<glIsSamplerProc>(GetGLProcAddress("glIsSampler"));
1417 GetGLProcAddress("glIsRenderbuffer")); 2341 }
1418 } 2342 DCHECK(fn.glIsSamplerFn);
1419 2343
1420 fn.glIsVertexArrayOESFn = 0; 2344 debug_fn.glIsSyncFn = 0;
2345 if (((!ver->is_es &&
2346 (ver->major_version > 3u ||
2347 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
2348 (ver->is_es && (ver->major_version >= 3u))) ||
2349 ext.b_GL_ARB_sync) {
2350 fn.glIsSyncFn =
2351 reinterpret_cast<glIsSyncProc>(GetGLProcAddress("glIsSync"));
2352 }
2353 DCHECK(fn.glIsSyncFn);
2354
2355 debug_fn.glIsTransformFeedbackFn = 0;
2356 if (((ver->is_es && (ver->major_version >= 3u)) ||
2357 (!ver->is_es && (ver->major_version >= 4u)))) {
2358 fn.glIsTransformFeedbackFn = reinterpret_cast<glIsTransformFeedbackProc>(
2359 GetGLProcAddress("glIsTransformFeedback"));
2360 }
2361 DCHECK(fn.glIsTransformFeedbackFn);
2362
1421 debug_fn.glIsVertexArrayOESFn = 0; 2363 debug_fn.glIsVertexArrayOESFn = 0;
1422 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 2364 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2365 (ver->is_es && (ver->major_version >= 3u))) ||
1423 ext.b_GL_ARB_vertex_array_object) { 2366 ext.b_GL_ARB_vertex_array_object) {
1424 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>( 2367 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>(
1425 GetGLProcAddress("glIsVertexArray")); 2368 GetGLProcAddress("glIsVertexArray"));
1426 } 2369 } 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>( 2370 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>(
1429 GetGLProcAddress("glIsVertexArrayOES")); 2371 GetGLProcAddress("glIsVertexArrayOES"));
1430 } 2372 } else if (ext.b_GL_APPLE_vertex_array_object) {
1431 if (!fn.glIsVertexArrayOESFn) {
1432 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>( 2373 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>(
1433 GetGLProcAddress("glIsVertexArrayAPPLE")); 2374 GetGLProcAddress("glIsVertexArrayAPPLE"));
1434 } 2375 }
1435 2376 DCHECK(fn.glIsVertexArrayOESFn);
1436 fn.glMapBufferFn = 0; 2377
1437 debug_fn.glMapBufferFn = 0; 2378 debug_fn.glMapBufferFn = 0;
1438 if (ext.b_GL_OES_mapbuffer) { 2379 if (!ver->is_es) {
2380 fn.glMapBufferFn =
2381 reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBuffer"));
2382 } else if (ext.b_GL_OES_mapbuffer) {
1439 fn.glMapBufferFn = 2383 fn.glMapBufferFn =
1440 reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBufferOES")); 2384 reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBufferOES"));
1441 } 2385 }
1442 if (!fn.glMapBufferFn) { 2386 DCHECK(fn.glMapBufferFn);
1443 fn.glMapBufferFn = 2387
1444 reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBuffer"));
1445 }
1446
1447 fn.glMapBufferRangeFn = 0;
1448 debug_fn.glMapBufferRangeFn = 0; 2388 debug_fn.glMapBufferRangeFn = 0;
1449 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 2389 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2390 (ver->is_es && (ver->major_version >= 3u))) ||
1450 ext.b_GL_ARB_map_buffer_range) { 2391 ext.b_GL_ARB_map_buffer_range) {
1451 fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>( 2392 fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>(
1452 GetGLProcAddress("glMapBufferRange")); 2393 GetGLProcAddress("glMapBufferRange"));
1453 } 2394 } else if (ext.b_GL_EXT_map_buffer_range) {
1454 if (!fn.glMapBufferRangeFn) {
1455 fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>( 2395 fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>(
1456 GetGLProcAddress("glMapBufferRangeEXT")); 2396 GetGLProcAddress("glMapBufferRangeEXT"));
1457 } 2397 }
1458 2398 DCHECK(fn.glMapBufferRangeFn);
1459 fn.glProgramBinaryFn = 0; 2399
2400 debug_fn.glMatrixLoadfEXTFn = 0;
2401 if ((ext.b_GL_EXT_direct_state_access || ext.b_GL_NV_path_rendering)) {
2402 fn.glMatrixLoadfEXTFn = reinterpret_cast<glMatrixLoadfEXTProc>(
2403 GetGLProcAddress("glMatrixLoadfEXT"));
2404 }
2405 DCHECK(fn.glMatrixLoadfEXTFn);
2406
2407 debug_fn.glMatrixLoadIdentityEXTFn = 0;
2408 if ((ext.b_GL_EXT_direct_state_access || ext.b_GL_NV_path_rendering)) {
2409 fn.glMatrixLoadIdentityEXTFn =
2410 reinterpret_cast<glMatrixLoadIdentityEXTProc>(
2411 GetGLProcAddress("glMatrixLoadIdentityEXT"));
2412 }
2413 DCHECK(fn.glMatrixLoadIdentityEXTFn);
2414
2415 debug_fn.glPauseTransformFeedbackFn = 0;
2416 if (((ver->is_es && (ver->major_version >= 3u)) ||
2417 (!ver->is_es && (ver->major_version >= 4u)))) {
2418 fn.glPauseTransformFeedbackFn =
2419 reinterpret_cast<glPauseTransformFeedbackProc>(
2420 GetGLProcAddress("glPauseTransformFeedback"));
2421 }
2422 DCHECK(fn.glPauseTransformFeedbackFn);
2423
2424 debug_fn.glPointParameteriFn = 0;
2425 if (!ver->is_es) {
2426 fn.glPointParameteriFn = reinterpret_cast<glPointParameteriProc>(
2427 GetGLProcAddress("glPointParameteri"));
2428 }
2429 DCHECK(fn.glPointParameteriFn);
2430
2431 debug_fn.glPopGroupMarkerEXTFn = 0;
2432 if (ext.b_GL_EXT_debug_marker) {
2433 fn.glPopGroupMarkerEXTFn = reinterpret_cast<glPopGroupMarkerEXTProc>(
2434 GetGLProcAddress("glPopGroupMarkerEXT"));
2435 }
2436 DCHECK(fn.glPopGroupMarkerEXTFn);
2437
1460 debug_fn.glProgramBinaryFn = 0; 2438 debug_fn.glProgramBinaryFn = 0;
1461 if (ext.b_GL_OES_get_program_binary) { 2439 if (((!ver->is_es &&
2440 (ver->major_version > 4u ||
2441 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
2442 (ver->is_es && (ver->major_version >= 3u))) ||
2443 ext.b_GL_ARB_get_program_binary) {
2444 fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>(
2445 GetGLProcAddress("glProgramBinary"));
2446 } else if (ext.b_GL_OES_get_program_binary) {
1462 fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>( 2447 fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>(
1463 GetGLProcAddress("glProgramBinaryOES")); 2448 GetGLProcAddress("glProgramBinaryOES"));
1464 } 2449 }
1465 if (!fn.glProgramBinaryFn) { 2450 DCHECK(fn.glProgramBinaryFn);
1466 fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>( 2451
1467 GetGLProcAddress("glProgramBinary")); 2452 debug_fn.glProgramParameteriFn = 0;
1468 } 2453 if (((!ver->is_es &&
1469 2454 (ver->major_version > 4u ||
1470 fn.glQueryCounterFn = 0; 2455 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
2456 (ver->is_es && (ver->major_version >= 3u))) ||
2457 ext.b_GL_ARB_get_program_binary) {
2458 fn.glProgramParameteriFn = reinterpret_cast<glProgramParameteriProc>(
2459 GetGLProcAddress("glProgramParameteri"));
2460 }
2461 DCHECK(fn.glProgramParameteriFn);
2462
2463 debug_fn.glPushGroupMarkerEXTFn = 0;
2464 if (ext.b_GL_EXT_debug_marker) {
2465 fn.glPushGroupMarkerEXTFn = reinterpret_cast<glPushGroupMarkerEXTProc>(
2466 GetGLProcAddress("glPushGroupMarkerEXT"));
2467 }
2468 DCHECK(fn.glPushGroupMarkerEXTFn);
2469
1471 debug_fn.glQueryCounterFn = 0; 2470 debug_fn.glQueryCounterFn = 0;
1472 if (ext.b_GL_ARB_timer_query) { 2471 if (((!ver->is_es &&
2472 (ver->major_version > 3u ||
2473 (ver->major_version == 3u && ver->minor_version >= 3u)))) ||
2474 ext.b_GL_ARB_timer_query) {
1473 fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>( 2475 fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>(
1474 GetGLProcAddress("glQueryCounter")); 2476 GetGLProcAddress("glQueryCounter"));
1475 } 2477 } else if (ext.b_GL_EXT_disjoint_timer_query) {
1476 if (!fn.glQueryCounterFn) {
1477 fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>( 2478 fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>(
1478 GetGLProcAddress("glQueryCounterEXT")); 2479 GetGLProcAddress("glQueryCounterEXT"));
1479 } 2480 }
1480 2481 DCHECK(fn.glQueryCounterFn);
1481 fn.glRenderbufferStorageEXTFn = 0; 2482
1482 debug_fn.glRenderbufferStorageEXTFn = 0; 2483 debug_fn.glReadBufferFn = 0;
1483 if (ext.b_GL_EXT_framebuffer_object) { 2484 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
1484 fn.glRenderbufferStorageEXTFn = 2485 fn.glReadBufferFn =
1485 reinterpret_cast<glRenderbufferStorageEXTProc>( 2486 reinterpret_cast<glReadBufferProc>(GetGLProcAddress("glReadBuffer"));
1486 GetGLProcAddress("glRenderbufferStorageEXT")); 2487 }
1487 } 2488 DCHECK(fn.glReadBufferFn);
1488 if (!fn.glRenderbufferStorageEXTFn) { 2489
1489 fn.glRenderbufferStorageEXTFn = 2490 debug_fn.glReleaseShaderCompilerFn = 0;
1490 reinterpret_cast<glRenderbufferStorageEXTProc>( 2491 if (((!ver->is_es &&
1491 GetGLProcAddress("glRenderbufferStorage")); 2492 (ver->major_version > 4u ||
1492 } 2493 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
1493 2494 ver->is_es)) {
1494 fn.glRenderbufferStorageMultisampleANGLEFn = 0; 2495 fn.glReleaseShaderCompilerFn =
2496 reinterpret_cast<glReleaseShaderCompilerProc>(
2497 GetGLProcAddress("glReleaseShaderCompiler"));
2498 }
2499 DCHECK(fn.glReleaseShaderCompilerFn);
2500
2501 debug_fn.glRenderbufferStorageMultisampleFn = 0;
2502 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2503 (ver->is_es && (ver->major_version >= 3u)))) {
2504 fn.glRenderbufferStorageMultisampleFn =
2505 reinterpret_cast<glRenderbufferStorageMultisampleProc>(
2506 GetGLProcAddress("glRenderbufferStorageMultisample"));
2507 }
2508 DCHECK(fn.glRenderbufferStorageMultisampleFn);
2509
1495 debug_fn.glRenderbufferStorageMultisampleANGLEFn = 0; 2510 debug_fn.glRenderbufferStorageMultisampleANGLEFn = 0;
1496 if (ext.b_GL_ANGLE_framebuffer_multisample) { 2511 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2512 (ver->is_es && (ver->major_version >= 3u)))) {
2513 fn.glRenderbufferStorageMultisampleANGLEFn =
2514 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>(
2515 GetGLProcAddress("glRenderbufferStorageMultisample"));
2516 } else if (ext.b_GL_ANGLE_framebuffer_multisample) {
1497 fn.glRenderbufferStorageMultisampleANGLEFn = 2517 fn.glRenderbufferStorageMultisampleANGLEFn =
1498 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>( 2518 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>(
1499 GetGLProcAddress("glRenderbufferStorageMultisampleANGLE")); 2519 GetGLProcAddress("glRenderbufferStorageMultisampleANGLE"));
1500 } 2520 }
1501 if (!fn.glRenderbufferStorageMultisampleANGLEFn) { 2521 DCHECK(fn.glRenderbufferStorageMultisampleANGLEFn);
1502 fn.glRenderbufferStorageMultisampleANGLEFn = 2522
1503 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>( 2523 debug_fn.glRenderbufferStorageMultisampleEXTFn = 0;
2524 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2525 (ver->is_es && (ver->major_version >= 3u)))) {
2526 fn.glRenderbufferStorageMultisampleEXTFn =
2527 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>(
1504 GetGLProcAddress("glRenderbufferStorageMultisample")); 2528 GetGLProcAddress("glRenderbufferStorageMultisample"));
1505 } 2529 } else if ((ext.b_GL_EXT_multisampled_render_to_texture ||
1506 2530 ext.b_GL_EXT_framebuffer_multisample)) {
1507 fn.glRenderbufferStorageMultisampleEXTFn = 0;
1508 debug_fn.glRenderbufferStorageMultisampleEXTFn = 0;
1509 if ((ext.b_GL_EXT_framebuffer_multisample ||
1510 ext.b_GL_EXT_multisampled_render_to_texture)) {
1511 fn.glRenderbufferStorageMultisampleEXTFn = 2531 fn.glRenderbufferStorageMultisampleEXTFn =
1512 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>( 2532 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>(
1513 GetGLProcAddress("glRenderbufferStorageMultisampleEXT")); 2533 GetGLProcAddress("glRenderbufferStorageMultisampleEXT"));
1514 } 2534 }
1515 if (!fn.glRenderbufferStorageMultisampleEXTFn) { 2535 DCHECK(fn.glRenderbufferStorageMultisampleEXTFn);
1516 fn.glRenderbufferStorageMultisampleEXTFn = 2536
1517 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>( 2537 debug_fn.glRenderbufferStorageMultisampleIMGFn = 0;
1518 GetGLProcAddress("glRenderbufferStorageMultisample")); 2538 if (ext.b_GL_IMG_multisampled_render_to_texture) {
1519 } 2539 fn.glRenderbufferStorageMultisampleIMGFn =
1520 2540 reinterpret_cast<glRenderbufferStorageMultisampleIMGProc>(
1521 fn.glTexStorage2DEXTFn = 0; 2541 GetGLProcAddress("glRenderbufferStorageMultisampleIMG"));
2542 }
2543 DCHECK(fn.glRenderbufferStorageMultisampleIMGFn);
2544
2545 debug_fn.glResumeTransformFeedbackFn = 0;
2546 if (((ver->is_es && (ver->major_version >= 3u)) ||
2547 (!ver->is_es && (ver->major_version >= 4u)))) {
2548 fn.glResumeTransformFeedbackFn =
2549 reinterpret_cast<glResumeTransformFeedbackProc>(
2550 GetGLProcAddress("glResumeTransformFeedback"));
2551 }
2552 DCHECK(fn.glResumeTransformFeedbackFn);
2553
2554 debug_fn.glSamplerParameterfFn = 0;
2555 if (((!ver->is_es &&
2556 (ver->major_version > 3u ||
2557 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
2558 (ver->is_es && (ver->major_version >= 3u)))) {
2559 fn.glSamplerParameterfFn = reinterpret_cast<glSamplerParameterfProc>(
2560 GetGLProcAddress("glSamplerParameterf"));
2561 }
2562 DCHECK(fn.glSamplerParameterfFn);
2563
2564 debug_fn.glSamplerParameterfvFn = 0;
2565 if (((!ver->is_es &&
2566 (ver->major_version > 3u ||
2567 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
2568 (ver->is_es && (ver->major_version >= 3u)))) {
2569 fn.glSamplerParameterfvFn = reinterpret_cast<glSamplerParameterfvProc>(
2570 GetGLProcAddress("glSamplerParameterfv"));
2571 }
2572 DCHECK(fn.glSamplerParameterfvFn);
2573
2574 debug_fn.glSamplerParameteriFn = 0;
2575 if (((!ver->is_es &&
2576 (ver->major_version > 3u ||
2577 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
2578 (ver->is_es && (ver->major_version >= 3u)))) {
2579 fn.glSamplerParameteriFn = reinterpret_cast<glSamplerParameteriProc>(
2580 GetGLProcAddress("glSamplerParameteri"));
2581 }
2582 DCHECK(fn.glSamplerParameteriFn);
2583
2584 debug_fn.glSamplerParameterivFn = 0;
2585 if (((!ver->is_es &&
2586 (ver->major_version > 3u ||
2587 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
2588 (ver->is_es && (ver->major_version >= 3u)))) {
2589 fn.glSamplerParameterivFn = reinterpret_cast<glSamplerParameterivProc>(
2590 GetGLProcAddress("glSamplerParameteriv"));
2591 }
2592 DCHECK(fn.glSamplerParameterivFn);
2593
2594 debug_fn.glSetFenceAPPLEFn = 0;
2595 if (ext.b_GL_APPLE_fence) {
2596 fn.glSetFenceAPPLEFn = reinterpret_cast<glSetFenceAPPLEProc>(
2597 GetGLProcAddress("glSetFenceAPPLE"));
2598 }
2599 DCHECK(fn.glSetFenceAPPLEFn);
2600
2601 debug_fn.glSetFenceNVFn = 0;
2602 if (ext.b_GL_NV_fence) {
2603 fn.glSetFenceNVFn =
2604 reinterpret_cast<glSetFenceNVProc>(GetGLProcAddress("glSetFenceNV"));
2605 }
2606 DCHECK(fn.glSetFenceNVFn);
2607
2608 debug_fn.glShaderBinaryFn = 0;
2609 if (((!ver->is_es &&
2610 (ver->major_version > 4u ||
2611 (ver->major_version == 4u && ver->minor_version >= 1u))) ||
2612 ver->is_es)) {
2613 fn.glShaderBinaryFn = reinterpret_cast<glShaderBinaryProc>(
2614 GetGLProcAddress("glShaderBinary"));
2615 }
2616 DCHECK(fn.glShaderBinaryFn);
2617
2618 debug_fn.glTestFenceAPPLEFn = 0;
2619 if (ext.b_GL_APPLE_fence) {
2620 fn.glTestFenceAPPLEFn = reinterpret_cast<glTestFenceAPPLEProc>(
2621 GetGLProcAddress("glTestFenceAPPLE"));
2622 }
2623 DCHECK(fn.glTestFenceAPPLEFn);
2624
2625 debug_fn.glTestFenceNVFn = 0;
2626 if (ext.b_GL_NV_fence) {
2627 fn.glTestFenceNVFn =
2628 reinterpret_cast<glTestFenceNVProc>(GetGLProcAddress("glTestFenceNV"));
2629 }
2630 DCHECK(fn.glTestFenceNVFn);
2631
2632 debug_fn.glTexImage3DFn = 0;
2633 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
2634 fn.glTexImage3DFn =
2635 reinterpret_cast<glTexImage3DProc>(GetGLProcAddress("glTexImage3D"));
2636 }
2637 DCHECK(fn.glTexImage3DFn);
2638
1522 debug_fn.glTexStorage2DEXTFn = 0; 2639 debug_fn.glTexStorage2DEXTFn = 0;
1523 if (ver->is_es3 || ext.b_GL_ARB_texture_storage) { 2640 if (((!ver->is_es &&
2641 (ver->major_version > 4u ||
2642 (ver->major_version == 4u && ver->minor_version >= 2u))) ||
2643 (ver->is_es && (ver->major_version >= 3u))) ||
2644 ext.b_GL_ARB_texture_storage) {
1524 fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>( 2645 fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>(
1525 GetGLProcAddress("glTexStorage2D")); 2646 GetGLProcAddress("glTexStorage2D"));
1526 } 2647 } else if (ext.b_GL_EXT_texture_storage) {
1527 if (!fn.glTexStorage2DEXTFn) {
1528 fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>( 2648 fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>(
1529 GetGLProcAddress("glTexStorage2DEXT")); 2649 GetGLProcAddress("glTexStorage2DEXT"));
1530 } 2650 }
1531 2651 DCHECK(fn.glTexStorage2DEXTFn);
1532 fn.glUnmapBufferFn = 0; 2652
2653 debug_fn.glTexStorage3DFn = 0;
2654 if (((!ver->is_es &&
2655 (ver->major_version > 4u ||
2656 (ver->major_version == 4u && ver->minor_version >= 2u))) ||
2657 (ver->is_es && (ver->major_version >= 3u)))) {
2658 fn.glTexStorage3DFn = reinterpret_cast<glTexStorage3DProc>(
2659 GetGLProcAddress("glTexStorage3D"));
2660 }
2661 DCHECK(fn.glTexStorage3DFn);
2662
2663 debug_fn.glTransformFeedbackVaryingsFn = 0;
2664 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2665 (ver->is_es && (ver->major_version >= 3u)))) {
2666 fn.glTransformFeedbackVaryingsFn =
2667 reinterpret_cast<glTransformFeedbackVaryingsProc>(
2668 GetGLProcAddress("glTransformFeedbackVaryings"));
2669 }
2670 DCHECK(fn.glTransformFeedbackVaryingsFn);
2671
2672 debug_fn.glUniform1uiFn = 0;
2673 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2674 (ver->is_es && (ver->major_version >= 3u)))) {
2675 fn.glUniform1uiFn =
2676 reinterpret_cast<glUniform1uiProc>(GetGLProcAddress("glUniform1ui"));
2677 }
2678 DCHECK(fn.glUniform1uiFn);
2679
2680 debug_fn.glUniform1uivFn = 0;
2681 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2682 (ver->is_es && (ver->major_version >= 3u)))) {
2683 fn.glUniform1uivFn =
2684 reinterpret_cast<glUniform1uivProc>(GetGLProcAddress("glUniform1uiv"));
2685 }
2686 DCHECK(fn.glUniform1uivFn);
2687
2688 debug_fn.glUniform2uiFn = 0;
2689 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2690 (ver->is_es && (ver->major_version >= 3u)))) {
2691 fn.glUniform2uiFn =
2692 reinterpret_cast<glUniform2uiProc>(GetGLProcAddress("glUniform2ui"));
2693 }
2694 DCHECK(fn.glUniform2uiFn);
2695
2696 debug_fn.glUniform2uivFn = 0;
2697 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2698 (ver->is_es && (ver->major_version >= 3u)))) {
2699 fn.glUniform2uivFn =
2700 reinterpret_cast<glUniform2uivProc>(GetGLProcAddress("glUniform2uiv"));
2701 }
2702 DCHECK(fn.glUniform2uivFn);
2703
2704 debug_fn.glUniform3uiFn = 0;
2705 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2706 (ver->is_es && (ver->major_version >= 3u)))) {
2707 fn.glUniform3uiFn =
2708 reinterpret_cast<glUniform3uiProc>(GetGLProcAddress("glUniform3ui"));
2709 }
2710 DCHECK(fn.glUniform3uiFn);
2711
2712 debug_fn.glUniform3uivFn = 0;
2713 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2714 (ver->is_es && (ver->major_version >= 3u)))) {
2715 fn.glUniform3uivFn =
2716 reinterpret_cast<glUniform3uivProc>(GetGLProcAddress("glUniform3uiv"));
2717 }
2718 DCHECK(fn.glUniform3uivFn);
2719
2720 debug_fn.glUniform4uiFn = 0;
2721 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2722 (ver->is_es && (ver->major_version >= 3u)))) {
2723 fn.glUniform4uiFn =
2724 reinterpret_cast<glUniform4uiProc>(GetGLProcAddress("glUniform4ui"));
2725 }
2726 DCHECK(fn.glUniform4uiFn);
2727
2728 debug_fn.glUniform4uivFn = 0;
2729 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2730 (ver->is_es && (ver->major_version >= 3u)))) {
2731 fn.glUniform4uivFn =
2732 reinterpret_cast<glUniform4uivProc>(GetGLProcAddress("glUniform4uiv"));
2733 }
2734 DCHECK(fn.glUniform4uivFn);
2735
2736 debug_fn.glUniformBlockBindingFn = 0;
2737 if (((ver->is_es && (ver->major_version >= 3u)) ||
2738 (!ver->is_es &&
2739 (ver->major_version > 3u ||
2740 (ver->major_version == 3u && ver->minor_version >= 1u))))) {
2741 fn.glUniformBlockBindingFn = reinterpret_cast<glUniformBlockBindingProc>(
2742 GetGLProcAddress("glUniformBlockBinding"));
2743 }
2744 DCHECK(fn.glUniformBlockBindingFn);
2745
2746 debug_fn.glUniformMatrix2x3fvFn = 0;
2747 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
2748 fn.glUniformMatrix2x3fvFn = reinterpret_cast<glUniformMatrix2x3fvProc>(
2749 GetGLProcAddress("glUniformMatrix2x3fv"));
2750 }
2751 DCHECK(fn.glUniformMatrix2x3fvFn);
2752
2753 debug_fn.glUniformMatrix2x4fvFn = 0;
2754 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
2755 fn.glUniformMatrix2x4fvFn = reinterpret_cast<glUniformMatrix2x4fvProc>(
2756 GetGLProcAddress("glUniformMatrix2x4fv"));
2757 }
2758 DCHECK(fn.glUniformMatrix2x4fvFn);
2759
2760 debug_fn.glUniformMatrix3x2fvFn = 0;
2761 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
2762 fn.glUniformMatrix3x2fvFn = reinterpret_cast<glUniformMatrix3x2fvProc>(
2763 GetGLProcAddress("glUniformMatrix3x2fv"));
2764 }
2765 DCHECK(fn.glUniformMatrix3x2fvFn);
2766
2767 debug_fn.glUniformMatrix3x4fvFn = 0;
2768 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
2769 fn.glUniformMatrix3x4fvFn = reinterpret_cast<glUniformMatrix3x4fvProc>(
2770 GetGLProcAddress("glUniformMatrix3x4fv"));
2771 }
2772 DCHECK(fn.glUniformMatrix3x4fvFn);
2773
2774 debug_fn.glUniformMatrix4x2fvFn = 0;
2775 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
2776 fn.glUniformMatrix4x2fvFn = reinterpret_cast<glUniformMatrix4x2fvProc>(
2777 GetGLProcAddress("glUniformMatrix4x2fv"));
2778 }
2779 DCHECK(fn.glUniformMatrix4x2fvFn);
2780
2781 debug_fn.glUniformMatrix4x3fvFn = 0;
2782 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
2783 fn.glUniformMatrix4x3fvFn = reinterpret_cast<glUniformMatrix4x3fvProc>(
2784 GetGLProcAddress("glUniformMatrix4x3fv"));
2785 }
2786 DCHECK(fn.glUniformMatrix4x3fvFn);
2787
1533 debug_fn.glUnmapBufferFn = 0; 2788 debug_fn.glUnmapBufferFn = 0;
1534 if (ext.b_GL_OES_mapbuffer) { 2789 if ((!ver->is_es || (ver->is_es && (ver->major_version >= 3u)))) {
2790 fn.glUnmapBufferFn =
2791 reinterpret_cast<glUnmapBufferProc>(GetGLProcAddress("glUnmapBuffer"));
2792 } else if (ext.b_GL_OES_mapbuffer) {
1535 fn.glUnmapBufferFn = reinterpret_cast<glUnmapBufferProc>( 2793 fn.glUnmapBufferFn = reinterpret_cast<glUnmapBufferProc>(
1536 GetGLProcAddress("glUnmapBufferOES")); 2794 GetGLProcAddress("glUnmapBufferOES"));
1537 } 2795 }
1538 if (!fn.glUnmapBufferFn) { 2796 DCHECK(fn.glUnmapBufferFn);
1539 fn.glUnmapBufferFn = 2797
1540 reinterpret_cast<glUnmapBufferProc>(GetGLProcAddress("glUnmapBuffer"));
1541 }
1542
1543 fn.glVertexAttribDivisorANGLEFn = 0;
1544 debug_fn.glVertexAttribDivisorANGLEFn = 0; 2798 debug_fn.glVertexAttribDivisorANGLEFn = 0;
1545 if (ext.b_GL_ARB_instanced_arrays) { 2799 if (((!ver->is_es &&
2800 (ver->major_version > 3u ||
2801 (ver->major_version == 3u && ver->minor_version >= 3u))) ||
2802 (ver->is_es && (ver->major_version >= 3u)))) {
2803 fn.glVertexAttribDivisorANGLEFn =
2804 reinterpret_cast<glVertexAttribDivisorANGLEProc>(
2805 GetGLProcAddress("glVertexAttribDivisor"));
2806 } else if (ext.b_GL_ARB_instanced_arrays) {
1546 fn.glVertexAttribDivisorANGLEFn = 2807 fn.glVertexAttribDivisorANGLEFn =
1547 reinterpret_cast<glVertexAttribDivisorANGLEProc>( 2808 reinterpret_cast<glVertexAttribDivisorANGLEProc>(
1548 GetGLProcAddress("glVertexAttribDivisorARB")); 2809 GetGLProcAddress("glVertexAttribDivisorARB"));
1549 } 2810 } else if (ext.b_GL_ANGLE_instanced_arrays) {
1550 if (!fn.glVertexAttribDivisorANGLEFn && (ext.b_GL_ANGLE_instanced_arrays)) {
1551 fn.glVertexAttribDivisorANGLEFn = 2811 fn.glVertexAttribDivisorANGLEFn =
1552 reinterpret_cast<glVertexAttribDivisorANGLEProc>( 2812 reinterpret_cast<glVertexAttribDivisorANGLEProc>(
1553 GetGLProcAddress("glVertexAttribDivisorANGLE")); 2813 GetGLProcAddress("glVertexAttribDivisorANGLE"));
1554 } 2814 }
1555 if (!fn.glVertexAttribDivisorANGLEFn) { 2815 DCHECK(fn.glVertexAttribDivisorANGLEFn);
1556 fn.glVertexAttribDivisorANGLEFn = 2816
1557 reinterpret_cast<glVertexAttribDivisorANGLEProc>( 2817 debug_fn.glVertexAttribI4iFn = 0;
1558 GetGLProcAddress("glVertexAttribDivisor")); 2818 if (((!ver->is_es && (ver->major_version >= 3u)) ||
1559 } 2819 (ver->is_es && (ver->major_version >= 3u)))) {
2820 fn.glVertexAttribI4iFn = reinterpret_cast<glVertexAttribI4iProc>(
2821 GetGLProcAddress("glVertexAttribI4i"));
2822 }
2823 DCHECK(fn.glVertexAttribI4iFn);
2824
2825 debug_fn.glVertexAttribI4ivFn = 0;
2826 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2827 (ver->is_es && (ver->major_version >= 3u)))) {
2828 fn.glVertexAttribI4ivFn = reinterpret_cast<glVertexAttribI4ivProc>(
2829 GetGLProcAddress("glVertexAttribI4iv"));
2830 }
2831 DCHECK(fn.glVertexAttribI4ivFn);
2832
2833 debug_fn.glVertexAttribI4uiFn = 0;
2834 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2835 (ver->is_es && (ver->major_version >= 3u)))) {
2836 fn.glVertexAttribI4uiFn = reinterpret_cast<glVertexAttribI4uiProc>(
2837 GetGLProcAddress("glVertexAttribI4ui"));
2838 }
2839 DCHECK(fn.glVertexAttribI4uiFn);
2840
2841 debug_fn.glVertexAttribI4uivFn = 0;
2842 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2843 (ver->is_es && (ver->major_version >= 3u)))) {
2844 fn.glVertexAttribI4uivFn = reinterpret_cast<glVertexAttribI4uivProc>(
2845 GetGLProcAddress("glVertexAttribI4uiv"));
2846 }
2847 DCHECK(fn.glVertexAttribI4uivFn);
2848
2849 debug_fn.glVertexAttribIPointerFn = 0;
2850 if (((!ver->is_es && (ver->major_version >= 3u)) ||
2851 (ver->is_es && (ver->major_version >= 3u)))) {
2852 fn.glVertexAttribIPointerFn = reinterpret_cast<glVertexAttribIPointerProc>(
2853 GetGLProcAddress("glVertexAttribIPointer"));
2854 }
2855 DCHECK(fn.glVertexAttribIPointerFn);
2856
2857 debug_fn.glWaitSyncFn = 0;
2858 if (((!ver->is_es &&
2859 (ver->major_version > 3u ||
2860 (ver->major_version == 3u && ver->minor_version >= 2u))) ||
2861 (ver->is_es && (ver->major_version >= 3u))) ||
2862 ext.b_GL_ARB_sync) {
2863 fn.glWaitSyncFn =
2864 reinterpret_cast<glWaitSyncProc>(GetGLProcAddress("glWaitSync"));
2865 }
2866 DCHECK(fn.glWaitSyncFn);
1560 2867
1561 if (g_debugBindingsInitialized) 2868 if (g_debugBindingsInitialized)
1562 InitializeDebugBindings(); 2869 InitializeDebugBindings();
1563 } 2870 }
1564 2871
1565 extern "C" { 2872 extern "C" {
1566 2873
1567 static void GL_BINDING_CALL Debug_glActiveTexture(GLenum texture) { 2874 static void GL_BINDING_CALL Debug_glActiveTexture(GLenum texture) {
1568 GL_SERVICE_LOG("glActiveTexture" 2875 GL_SERVICE_LOG("glActiveTexture"
1569 << "(" << GLEnums::GetStringEnum(texture) << ")"); 2876 << "(" << GLEnums::GetStringEnum(texture) << ")");
(...skipping 9759 matching lines...) Expand 10 before | Expand all | Expand 10 after
11329 12636
11330 GLenum NoContextGLApi::glWaitSyncFn(GLsync sync, 12637 GLenum NoContextGLApi::glWaitSyncFn(GLsync sync,
11331 GLbitfield flags, 12638 GLbitfield flags,
11332 GLuint64 timeout) { 12639 GLuint64 timeout) {
11333 NOTREACHED() << "Trying to call glWaitSync() without current GL context"; 12640 NOTREACHED() << "Trying to call glWaitSync() without current GL context";
11334 LOG(ERROR) << "Trying to call glWaitSync() without current GL context"; 12641 LOG(ERROR) << "Trying to call glWaitSync() without current GL context";
11335 return static_cast<GLenum>(0); 12642 return static_cast<GLenum>(0);
11336 } 12643 }
11337 12644
11338 } // namespace gfx 12645 } // namespace gfx
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698