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

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

Powered by Google App Engine
This is Rietveld 408576698