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

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

Issue 895853003: Update from https://crrev.com/314320 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 10 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
« no previous file with comments | « ui/gl/gl_bindings_autogen_gl.h ('k') | ui/gl/gl_bindings_autogen_glx.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 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/trace_event/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 glBeginQueryARBNotBound(GLenum target, GLuint id) {
27 NOTREACHED();
28 }
29 void glBindFramebufferEXTNotBound(GLenum target, GLuint framebuffer) {
30 NOTREACHED();
31 }
32 void glBindRenderbufferEXTNotBound(GLenum target, GLuint renderbuffer) {
33 NOTREACHED();
34 }
35 void glBindVertexArrayOESNotBound(GLuint array) {
36 NOTREACHED();
37 }
38 void glBlendBarrierKHRNotBound(void) {
39 NOTREACHED();
40 }
41 void glBlitFramebufferANGLENotBound(GLint srcX0,
42 GLint srcY0,
43 GLint srcX1,
44 GLint srcY1,
45 GLint dstX0,
46 GLint dstY0,
47 GLint dstX1,
48 GLint dstY1,
49 GLbitfield mask,
50 GLenum filter) {
51 NOTREACHED();
52 }
53 void glBlitFramebufferEXTNotBound(GLint srcX0,
54 GLint srcY0,
55 GLint srcX1,
56 GLint srcY1,
57 GLint dstX0,
58 GLint dstY0,
59 GLint dstX1,
60 GLint dstY1,
61 GLbitfield mask,
62 GLenum filter) {
63 NOTREACHED();
64 }
65 GLenum glCheckFramebufferStatusEXTNotBound(GLenum target) {
66 NOTREACHED();
67 return 0;
68 }
69 void glDeleteBuffersARBNotBound(GLsizei n, const GLuint* buffers) {
70 NOTREACHED();
71 }
72 void glDeleteFramebuffersEXTNotBound(GLsizei n, const GLuint* framebuffers) {
73 NOTREACHED();
74 }
75 void glDeleteQueriesARBNotBound(GLsizei n, const GLuint* ids) {
76 NOTREACHED();
77 }
78 void glDeleteRenderbuffersEXTNotBound(GLsizei n, const GLuint* renderbuffers) {
79 NOTREACHED();
80 }
81 void glDeleteVertexArraysOESNotBound(GLsizei n, const GLuint* arrays) {
82 NOTREACHED();
83 }
84 void glDrawArraysInstancedANGLENotBound(GLenum mode,
85 GLint first,
86 GLsizei count,
87 GLsizei primcount) {
88 NOTREACHED();
89 }
90 void glDrawBuffersARBNotBound(GLsizei n, const GLenum* bufs) {
91 NOTREACHED();
92 }
93 void glDrawElementsInstancedANGLENotBound(GLenum mode,
94 GLsizei count,
95 GLenum type,
96 const void* indices,
97 GLsizei primcount) {
98 NOTREACHED();
99 }
100 void glEndQueryARBNotBound(GLenum target) {
101 NOTREACHED();
102 }
103 void glFramebufferRenderbufferEXTNotBound(GLenum target,
104 GLenum attachment,
105 GLenum renderbuffertarget,
106 GLuint renderbuffer) {
107 NOTREACHED();
108 }
109 void glFramebufferTexture2DEXTNotBound(GLenum target,
110 GLenum attachment,
111 GLenum textarget,
112 GLuint texture,
113 GLint level) {
114 NOTREACHED();
115 }
116 void glGenBuffersARBNotBound(GLsizei n, GLuint* buffers) {
117 NOTREACHED();
118 }
119 void glGenerateMipmapEXTNotBound(GLenum target) {
120 NOTREACHED();
121 }
122 void glGenFramebuffersEXTNotBound(GLsizei n, GLuint* framebuffers) {
123 NOTREACHED();
124 }
125 void glGenQueriesARBNotBound(GLsizei n, GLuint* ids) {
126 NOTREACHED();
127 }
128 void glGenRenderbuffersEXTNotBound(GLsizei n, GLuint* renderbuffers) {
129 NOTREACHED();
130 }
131 void glGenVertexArraysOESNotBound(GLsizei n, GLuint* arrays) {
132 NOTREACHED();
133 }
134 void glGetFramebufferAttachmentParameterivEXTNotBound(GLenum target,
135 GLenum attachment,
136 GLenum pname,
137 GLint* params) {
138 NOTREACHED();
139 }
140 GLenum glGetGraphicsResetStatusARBNotBound(void) {
141 NOTREACHED();
142 return 0;
143 }
144 void glGetProgramBinaryNotBound(GLuint program,
145 GLsizei bufSize,
146 GLsizei* length,
147 GLenum* binaryFormat,
148 GLvoid* binary) {
149 NOTREACHED();
150 }
151 void glGetQueryivARBNotBound(GLenum target, GLenum pname, GLint* params) {
152 NOTREACHED();
153 }
154 void glGetQueryObjectivARBNotBound(GLuint id, GLenum pname, GLint* params) {
155 NOTREACHED();
156 }
157 void glGetQueryObjectui64vNotBound(GLuint id, GLenum pname, GLuint64* params) {
158 NOTREACHED();
159 }
160 void glGetQueryObjectuivARBNotBound(GLuint id, GLenum pname, GLuint* params) {
161 NOTREACHED();
162 }
163 void glGetRenderbufferParameterivEXTNotBound(GLenum target,
164 GLenum pname,
165 GLint* params) {
166 NOTREACHED();
167 }
168 GLboolean glIsFramebufferEXTNotBound(GLuint framebuffer) {
169 NOTREACHED();
170 return 0;
171 }
172 GLboolean glIsQueryARBNotBound(GLuint query) {
173 NOTREACHED();
174 return 0;
175 }
176 GLboolean glIsRenderbufferEXTNotBound(GLuint renderbuffer) {
177 NOTREACHED();
178 return 0;
179 }
180 GLboolean glIsVertexArrayOESNotBound(GLuint array) {
181 NOTREACHED();
182 return 0;
183 }
184 void* glMapBufferNotBound(GLenum target, GLenum access) {
185 NOTREACHED();
186 return 0;
187 }
188 void* glMapBufferRangeNotBound(GLenum target,
189 GLintptr offset,
190 GLsizeiptr length,
191 GLbitfield access) {
192 NOTREACHED();
193 return 0;
194 }
195 void glProgramBinaryNotBound(GLuint program,
196 GLenum binaryFormat,
197 const GLvoid* binary,
198 GLsizei length) {
199 NOTREACHED();
200 }
201 void glQueryCounterNotBound(GLuint id, GLenum target) {
202 NOTREACHED();
203 }
204 void glRenderbufferStorageEXTNotBound(GLenum target,
205 GLenum internalformat,
206 GLsizei width,
207 GLsizei height) {
208 NOTREACHED();
209 }
210 void glRenderbufferStorageMultisampleANGLENotBound(GLenum target,
211 GLsizei samples,
212 GLenum internalformat,
213 GLsizei width,
214 GLsizei height) {
215 NOTREACHED();
216 }
217 void glRenderbufferStorageMultisampleEXTNotBound(GLenum target,
218 GLsizei samples,
219 GLenum internalformat,
220 GLsizei width,
221 GLsizei height) {
222 NOTREACHED();
223 }
224 void glTexStorage2DEXTNotBound(GLenum target,
225 GLsizei levels,
226 GLenum internalformat,
227 GLsizei width,
228 GLsizei height) {
229 NOTREACHED();
230 }
231 GLboolean glUnmapBufferNotBound(GLenum target) {
232 NOTREACHED();
233 return 0;
234 }
235 void glVertexAttribDivisorANGLENotBound(GLuint index, GLuint divisor) {
236 NOTREACHED();
237 }
238
239 void DriverGL::InitializeStaticBindings() { 26 void DriverGL::InitializeStaticBindings() {
240 fn.glActiveTextureFn = reinterpret_cast<glActiveTextureProc>( 27 fn.glActiveTextureFn = reinterpret_cast<glActiveTextureProc>(
241 GetGLProcAddress("glActiveTexture")); 28 GetGLProcAddress("glActiveTexture"));
242 fn.glAttachShaderFn = 29 fn.glAttachShaderFn =
243 reinterpret_cast<glAttachShaderProc>(GetGLProcAddress("glAttachShader")); 30 reinterpret_cast<glAttachShaderProc>(GetGLProcAddress("glAttachShader"));
244 fn.glBeginQueryFn = 31 fn.glBeginQueryFn = 0;
245 reinterpret_cast<glBeginQueryProc>(GetGLProcAddress("glBeginQuery")); 32 fn.glBeginQueryARBFn = 0;
246 fn.glBeginQueryARBFn = 33 fn.glBeginTransformFeedbackFn = 0;
247 reinterpret_cast<glBeginQueryARBProc>(glBeginQueryARBNotBound);
248 fn.glBeginTransformFeedbackFn =
249 reinterpret_cast<glBeginTransformFeedbackProc>(
250 GetGLProcAddress("glBeginTransformFeedback"));
251 fn.glBindAttribLocationFn = reinterpret_cast<glBindAttribLocationProc>( 34 fn.glBindAttribLocationFn = reinterpret_cast<glBindAttribLocationProc>(
252 GetGLProcAddress("glBindAttribLocation")); 35 GetGLProcAddress("glBindAttribLocation"));
253 fn.glBindBufferFn = 36 fn.glBindBufferFn =
254 reinterpret_cast<glBindBufferProc>(GetGLProcAddress("glBindBuffer")); 37 reinterpret_cast<glBindBufferProc>(GetGLProcAddress("glBindBuffer"));
255 fn.glBindBufferBaseFn = reinterpret_cast<glBindBufferBaseProc>( 38 fn.glBindBufferBaseFn = 0;
256 GetGLProcAddress("glBindBufferBase")); 39 fn.glBindBufferRangeFn = 0;
257 fn.glBindBufferRangeFn = reinterpret_cast<glBindBufferRangeProc>( 40 fn.glBindFragDataLocationFn = 0;
258 GetGLProcAddress("glBindBufferRange")); 41 fn.glBindFragDataLocationIndexedFn = 0;
259 fn.glBindFragDataLocationFn = reinterpret_cast<glBindFragDataLocationProc>( 42 fn.glBindFramebufferEXTFn = 0;
260 GetGLProcAddress("glBindFragDataLocation")); 43 fn.glBindRenderbufferEXTFn = 0;
261 fn.glBindFragDataLocationIndexedFn = 44 fn.glBindSamplerFn = 0;
262 reinterpret_cast<glBindFragDataLocationIndexedProc>(
263 GetGLProcAddress("glBindFragDataLocationIndexed"));
264 fn.glBindFramebufferEXTFn =
265 reinterpret_cast<glBindFramebufferEXTProc>(glBindFramebufferEXTNotBound);
266 fn.glBindRenderbufferEXTFn = reinterpret_cast<glBindRenderbufferEXTProc>(
267 glBindRenderbufferEXTNotBound);
268 fn.glBindSamplerFn =
269 reinterpret_cast<glBindSamplerProc>(GetGLProcAddress("glBindSampler"));
270 fn.glBindTextureFn = 45 fn.glBindTextureFn =
271 reinterpret_cast<glBindTextureProc>(GetGLProcAddress("glBindTexture")); 46 reinterpret_cast<glBindTextureProc>(GetGLProcAddress("glBindTexture"));
272 fn.glBindTransformFeedbackFn = reinterpret_cast<glBindTransformFeedbackProc>( 47 fn.glBindTransformFeedbackFn = 0;
273 GetGLProcAddress("glBindTransformFeedback")); 48 fn.glBindVertexArrayOESFn = 0;
274 fn.glBindVertexArrayOESFn = 49 fn.glBlendBarrierKHRFn = 0;
275 reinterpret_cast<glBindVertexArrayOESProc>(glBindVertexArrayOESNotBound);
276 fn.glBlendBarrierKHRFn =
277 reinterpret_cast<glBlendBarrierKHRProc>(glBlendBarrierKHRNotBound);
278 fn.glBlendColorFn = 50 fn.glBlendColorFn =
279 reinterpret_cast<glBlendColorProc>(GetGLProcAddress("glBlendColor")); 51 reinterpret_cast<glBlendColorProc>(GetGLProcAddress("glBlendColor"));
280 fn.glBlendEquationFn = reinterpret_cast<glBlendEquationProc>( 52 fn.glBlendEquationFn = reinterpret_cast<glBlendEquationProc>(
281 GetGLProcAddress("glBlendEquation")); 53 GetGLProcAddress("glBlendEquation"));
282 fn.glBlendEquationSeparateFn = reinterpret_cast<glBlendEquationSeparateProc>( 54 fn.glBlendEquationSeparateFn = reinterpret_cast<glBlendEquationSeparateProc>(
283 GetGLProcAddress("glBlendEquationSeparate")); 55 GetGLProcAddress("glBlendEquationSeparate"));
284 fn.glBlendFuncFn = 56 fn.glBlendFuncFn =
285 reinterpret_cast<glBlendFuncProc>(GetGLProcAddress("glBlendFunc")); 57 reinterpret_cast<glBlendFuncProc>(GetGLProcAddress("glBlendFunc"));
286 fn.glBlendFuncSeparateFn = reinterpret_cast<glBlendFuncSeparateProc>( 58 fn.glBlendFuncSeparateFn = reinterpret_cast<glBlendFuncSeparateProc>(
287 GetGLProcAddress("glBlendFuncSeparate")); 59 GetGLProcAddress("glBlendFuncSeparate"));
288 fn.glBlitFramebufferFn = reinterpret_cast<glBlitFramebufferProc>( 60 fn.glBlitFramebufferFn = 0;
289 GetGLProcAddress("glBlitFramebuffer")); 61 fn.glBlitFramebufferANGLEFn = 0;
290 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>( 62 fn.glBlitFramebufferEXTFn = 0;
291 glBlitFramebufferANGLENotBound);
292 fn.glBlitFramebufferEXTFn =
293 reinterpret_cast<glBlitFramebufferEXTProc>(glBlitFramebufferEXTNotBound);
294 fn.glBufferDataFn = 63 fn.glBufferDataFn =
295 reinterpret_cast<glBufferDataProc>(GetGLProcAddress("glBufferData")); 64 reinterpret_cast<glBufferDataProc>(GetGLProcAddress("glBufferData"));
296 fn.glBufferSubDataFn = reinterpret_cast<glBufferSubDataProc>( 65 fn.glBufferSubDataFn = reinterpret_cast<glBufferSubDataProc>(
297 GetGLProcAddress("glBufferSubData")); 66 GetGLProcAddress("glBufferSubData"));
298 fn.glCheckFramebufferStatusEXTFn = 67 fn.glCheckFramebufferStatusEXTFn = 0;
299 reinterpret_cast<glCheckFramebufferStatusEXTProc>(
300 glCheckFramebufferStatusEXTNotBound);
301 fn.glClearFn = reinterpret_cast<glClearProc>(GetGLProcAddress("glClear")); 68 fn.glClearFn = reinterpret_cast<glClearProc>(GetGLProcAddress("glClear"));
302 fn.glClearBufferfiFn = reinterpret_cast<glClearBufferfiProc>( 69 fn.glClearBufferfiFn = 0;
303 GetGLProcAddress("glClearBufferfi")); 70 fn.glClearBufferfvFn = 0;
304 fn.glClearBufferfvFn = reinterpret_cast<glClearBufferfvProc>( 71 fn.glClearBufferivFn = 0;
305 GetGLProcAddress("glClearBufferfv")); 72 fn.glClearBufferuivFn = 0;
306 fn.glClearBufferivFn = reinterpret_cast<glClearBufferivProc>(
307 GetGLProcAddress("glClearBufferiv"));
308 fn.glClearBufferuivFn = reinterpret_cast<glClearBufferuivProc>(
309 GetGLProcAddress("glClearBufferuiv"));
310 fn.glClearColorFn = 73 fn.glClearColorFn =
311 reinterpret_cast<glClearColorProc>(GetGLProcAddress("glClearColor")); 74 reinterpret_cast<glClearColorProc>(GetGLProcAddress("glClearColor"));
312 fn.glClearDepthFn = 75 fn.glClearDepthFn =
313 reinterpret_cast<glClearDepthProc>(GetGLProcAddress("glClearDepth")); 76 reinterpret_cast<glClearDepthProc>(GetGLProcAddress("glClearDepth"));
314 fn.glClearDepthfFn = 77 fn.glClearDepthfFn = 0;
315 reinterpret_cast<glClearDepthfProc>(GetGLProcAddress("glClearDepthf"));
316 fn.glClearStencilFn = 78 fn.glClearStencilFn =
317 reinterpret_cast<glClearStencilProc>(GetGLProcAddress("glClearStencil")); 79 reinterpret_cast<glClearStencilProc>(GetGLProcAddress("glClearStencil"));
318 fn.glClientWaitSyncFn = reinterpret_cast<glClientWaitSyncProc>( 80 fn.glClientWaitSyncFn = 0;
319 GetGLProcAddress("glClientWaitSync"));
320 fn.glColorMaskFn = 81 fn.glColorMaskFn =
321 reinterpret_cast<glColorMaskProc>(GetGLProcAddress("glColorMask")); 82 reinterpret_cast<glColorMaskProc>(GetGLProcAddress("glColorMask"));
322 fn.glCompileShaderFn = reinterpret_cast<glCompileShaderProc>( 83 fn.glCompileShaderFn = reinterpret_cast<glCompileShaderProc>(
323 GetGLProcAddress("glCompileShader")); 84 GetGLProcAddress("glCompileShader"));
324 fn.glCompressedTexImage2DFn = reinterpret_cast<glCompressedTexImage2DProc>( 85 fn.glCompressedTexImage2DFn = reinterpret_cast<glCompressedTexImage2DProc>(
325 GetGLProcAddress("glCompressedTexImage2D")); 86 GetGLProcAddress("glCompressedTexImage2D"));
326 fn.glCompressedTexImage3DFn = reinterpret_cast<glCompressedTexImage3DProc>( 87 fn.glCompressedTexImage3DFn = 0;
327 GetGLProcAddress("glCompressedTexImage3D"));
328 fn.glCompressedTexSubImage2DFn = 88 fn.glCompressedTexSubImage2DFn =
329 reinterpret_cast<glCompressedTexSubImage2DProc>( 89 reinterpret_cast<glCompressedTexSubImage2DProc>(
330 GetGLProcAddress("glCompressedTexSubImage2D")); 90 GetGLProcAddress("glCompressedTexSubImage2D"));
331 fn.glCopyBufferSubDataFn = reinterpret_cast<glCopyBufferSubDataProc>( 91 fn.glCopyBufferSubDataFn = 0;
332 GetGLProcAddress("glCopyBufferSubData"));
333 fn.glCopyTexImage2DFn = reinterpret_cast<glCopyTexImage2DProc>( 92 fn.glCopyTexImage2DFn = reinterpret_cast<glCopyTexImage2DProc>(
334 GetGLProcAddress("glCopyTexImage2D")); 93 GetGLProcAddress("glCopyTexImage2D"));
335 fn.glCopyTexSubImage2DFn = reinterpret_cast<glCopyTexSubImage2DProc>( 94 fn.glCopyTexSubImage2DFn = reinterpret_cast<glCopyTexSubImage2DProc>(
336 GetGLProcAddress("glCopyTexSubImage2D")); 95 GetGLProcAddress("glCopyTexSubImage2D"));
337 fn.glCopyTexSubImage3DFn = reinterpret_cast<glCopyTexSubImage3DProc>( 96 fn.glCopyTexSubImage3DFn = 0;
338 GetGLProcAddress("glCopyTexSubImage3D"));
339 fn.glCreateProgramFn = reinterpret_cast<glCreateProgramProc>( 97 fn.glCreateProgramFn = reinterpret_cast<glCreateProgramProc>(
340 GetGLProcAddress("glCreateProgram")); 98 GetGLProcAddress("glCreateProgram"));
341 fn.glCreateShaderFn = 99 fn.glCreateShaderFn =
342 reinterpret_cast<glCreateShaderProc>(GetGLProcAddress("glCreateShader")); 100 reinterpret_cast<glCreateShaderProc>(GetGLProcAddress("glCreateShader"));
343 fn.glCullFaceFn = 101 fn.glCullFaceFn =
344 reinterpret_cast<glCullFaceProc>(GetGLProcAddress("glCullFace")); 102 reinterpret_cast<glCullFaceProc>(GetGLProcAddress("glCullFace"));
345 fn.glDeleteBuffersARBFn = 103 fn.glDeleteBuffersARBFn = reinterpret_cast<glDeleteBuffersARBProc>(
346 reinterpret_cast<glDeleteBuffersARBProc>(glDeleteBuffersARBNotBound); 104 GetGLProcAddress("glDeleteBuffers"));
347 fn.glDeleteFencesAPPLEFn = reinterpret_cast<glDeleteFencesAPPLEProc>( 105 fn.glDeleteFencesAPPLEFn = 0;
348 GetGLProcAddress("glDeleteFencesAPPLE")); 106 fn.glDeleteFencesNVFn = 0;
349 fn.glDeleteFencesNVFn = reinterpret_cast<glDeleteFencesNVProc>( 107 fn.glDeleteFramebuffersEXTFn = 0;
350 GetGLProcAddress("glDeleteFencesNV"));
351 fn.glDeleteFramebuffersEXTFn = reinterpret_cast<glDeleteFramebuffersEXTProc>(
352 glDeleteFramebuffersEXTNotBound);
353 fn.glDeleteProgramFn = reinterpret_cast<glDeleteProgramProc>( 108 fn.glDeleteProgramFn = reinterpret_cast<glDeleteProgramProc>(
354 GetGLProcAddress("glDeleteProgram")); 109 GetGLProcAddress("glDeleteProgram"));
355 fn.glDeleteQueriesFn = reinterpret_cast<glDeleteQueriesProc>( 110 fn.glDeleteQueriesFn = 0;
356 GetGLProcAddress("glDeleteQueries")); 111 fn.glDeleteQueriesARBFn = 0;
357 fn.glDeleteQueriesARBFn = 112 fn.glDeleteRenderbuffersEXTFn = 0;
358 reinterpret_cast<glDeleteQueriesARBProc>(glDeleteQueriesARBNotBound); 113 fn.glDeleteSamplersFn = 0;
359 fn.glDeleteRenderbuffersEXTFn =
360 reinterpret_cast<glDeleteRenderbuffersEXTProc>(
361 glDeleteRenderbuffersEXTNotBound);
362 fn.glDeleteSamplersFn = reinterpret_cast<glDeleteSamplersProc>(
363 GetGLProcAddress("glDeleteSamplers"));
364 fn.glDeleteShaderFn = 114 fn.glDeleteShaderFn =
365 reinterpret_cast<glDeleteShaderProc>(GetGLProcAddress("glDeleteShader")); 115 reinterpret_cast<glDeleteShaderProc>(GetGLProcAddress("glDeleteShader"));
366 fn.glDeleteSyncFn = 116 fn.glDeleteSyncFn = 0;
367 reinterpret_cast<glDeleteSyncProc>(GetGLProcAddress("glDeleteSync"));
368 fn.glDeleteTexturesFn = reinterpret_cast<glDeleteTexturesProc>( 117 fn.glDeleteTexturesFn = reinterpret_cast<glDeleteTexturesProc>(
369 GetGLProcAddress("glDeleteTextures")); 118 GetGLProcAddress("glDeleteTextures"));
370 fn.glDeleteTransformFeedbacksFn = 119 fn.glDeleteTransformFeedbacksFn = 0;
371 reinterpret_cast<glDeleteTransformFeedbacksProc>( 120 fn.glDeleteVertexArraysOESFn = 0;
372 GetGLProcAddress("glDeleteTransformFeedbacks"));
373 fn.glDeleteVertexArraysOESFn = reinterpret_cast<glDeleteVertexArraysOESProc>(
374 glDeleteVertexArraysOESNotBound);
375 fn.glDepthFuncFn = 121 fn.glDepthFuncFn =
376 reinterpret_cast<glDepthFuncProc>(GetGLProcAddress("glDepthFunc")); 122 reinterpret_cast<glDepthFuncProc>(GetGLProcAddress("glDepthFunc"));
377 fn.glDepthMaskFn = 123 fn.glDepthMaskFn =
378 reinterpret_cast<glDepthMaskProc>(GetGLProcAddress("glDepthMask")); 124 reinterpret_cast<glDepthMaskProc>(GetGLProcAddress("glDepthMask"));
379 fn.glDepthRangeFn = 125 fn.glDepthRangeFn =
380 reinterpret_cast<glDepthRangeProc>(GetGLProcAddress("glDepthRange")); 126 reinterpret_cast<glDepthRangeProc>(GetGLProcAddress("glDepthRange"));
381 fn.glDepthRangefFn = 127 fn.glDepthRangefFn = 0;
382 reinterpret_cast<glDepthRangefProc>(GetGLProcAddress("glDepthRangef"));
383 fn.glDetachShaderFn = 128 fn.glDetachShaderFn =
384 reinterpret_cast<glDetachShaderProc>(GetGLProcAddress("glDetachShader")); 129 reinterpret_cast<glDetachShaderProc>(GetGLProcAddress("glDetachShader"));
385 fn.glDisableFn = 130 fn.glDisableFn =
386 reinterpret_cast<glDisableProc>(GetGLProcAddress("glDisable")); 131 reinterpret_cast<glDisableProc>(GetGLProcAddress("glDisable"));
387 fn.glDisableVertexAttribArrayFn = 132 fn.glDisableVertexAttribArrayFn =
388 reinterpret_cast<glDisableVertexAttribArrayProc>( 133 reinterpret_cast<glDisableVertexAttribArrayProc>(
389 GetGLProcAddress("glDisableVertexAttribArray")); 134 GetGLProcAddress("glDisableVertexAttribArray"));
390 fn.glDiscardFramebufferEXTFn = reinterpret_cast<glDiscardFramebufferEXTProc>( 135 fn.glDiscardFramebufferEXTFn = 0;
391 GetGLProcAddress("glDiscardFramebufferEXT"));
392 fn.glDrawArraysFn = 136 fn.glDrawArraysFn =
393 reinterpret_cast<glDrawArraysProc>(GetGLProcAddress("glDrawArrays")); 137 reinterpret_cast<glDrawArraysProc>(GetGLProcAddress("glDrawArrays"));
394 fn.glDrawArraysInstancedANGLEFn = 138 fn.glDrawArraysInstancedANGLEFn = 0;
395 reinterpret_cast<glDrawArraysInstancedANGLEProc>( 139 fn.glDrawBufferFn = 0;
396 glDrawArraysInstancedANGLENotBound); 140 fn.glDrawBuffersARBFn = 0;
397 fn.glDrawBufferFn =
398 reinterpret_cast<glDrawBufferProc>(GetGLProcAddress("glDrawBuffer"));
399 fn.glDrawBuffersARBFn =
400 reinterpret_cast<glDrawBuffersARBProc>(glDrawBuffersARBNotBound);
401 fn.glDrawElementsFn = 141 fn.glDrawElementsFn =
402 reinterpret_cast<glDrawElementsProc>(GetGLProcAddress("glDrawElements")); 142 reinterpret_cast<glDrawElementsProc>(GetGLProcAddress("glDrawElements"));
403 fn.glDrawElementsInstancedANGLEFn = 143 fn.glDrawElementsInstancedANGLEFn = 0;
404 reinterpret_cast<glDrawElementsInstancedANGLEProc>( 144 fn.glDrawRangeElementsFn = 0;
405 glDrawElementsInstancedANGLENotBound); 145 fn.glEGLImageTargetRenderbufferStorageOESFn = 0;
406 fn.glDrawRangeElementsFn = reinterpret_cast<glDrawRangeElementsProc>( 146 fn.glEGLImageTargetTexture2DOESFn = 0;
407 GetGLProcAddress("glDrawRangeElements"));
408 fn.glEGLImageTargetRenderbufferStorageOESFn =
409 reinterpret_cast<glEGLImageTargetRenderbufferStorageOESProc>(
410 GetGLProcAddress("glEGLImageTargetRenderbufferStorageOES"));
411 fn.glEGLImageTargetTexture2DOESFn =
412 reinterpret_cast<glEGLImageTargetTexture2DOESProc>(
413 GetGLProcAddress("glEGLImageTargetTexture2DOES"));
414 fn.glEnableFn = reinterpret_cast<glEnableProc>(GetGLProcAddress("glEnable")); 147 fn.glEnableFn = reinterpret_cast<glEnableProc>(GetGLProcAddress("glEnable"));
415 fn.glEnableVertexAttribArrayFn = 148 fn.glEnableVertexAttribArrayFn =
416 reinterpret_cast<glEnableVertexAttribArrayProc>( 149 reinterpret_cast<glEnableVertexAttribArrayProc>(
417 GetGLProcAddress("glEnableVertexAttribArray")); 150 GetGLProcAddress("glEnableVertexAttribArray"));
418 fn.glEndQueryFn = 151 fn.glEndQueryFn = 0;
419 reinterpret_cast<glEndQueryProc>(GetGLProcAddress("glEndQuery")); 152 fn.glEndQueryARBFn = 0;
420 fn.glEndQueryARBFn = 153 fn.glEndTransformFeedbackFn = 0;
421 reinterpret_cast<glEndQueryARBProc>(glEndQueryARBNotBound); 154 fn.glFenceSyncFn = 0;
422 fn.glEndTransformFeedbackFn = reinterpret_cast<glEndTransformFeedbackProc>(
423 GetGLProcAddress("glEndTransformFeedback"));
424 fn.glFenceSyncFn =
425 reinterpret_cast<glFenceSyncProc>(GetGLProcAddress("glFenceSync"));
426 fn.glFinishFn = reinterpret_cast<glFinishProc>(GetGLProcAddress("glFinish")); 155 fn.glFinishFn = reinterpret_cast<glFinishProc>(GetGLProcAddress("glFinish"));
427 fn.glFinishFenceAPPLEFn = reinterpret_cast<glFinishFenceAPPLEProc>( 156 fn.glFinishFenceAPPLEFn = 0;
428 GetGLProcAddress("glFinishFenceAPPLE")); 157 fn.glFinishFenceNVFn = 0;
429 fn.glFinishFenceNVFn = reinterpret_cast<glFinishFenceNVProc>(
430 GetGLProcAddress("glFinishFenceNV"));
431 fn.glFlushFn = reinterpret_cast<glFlushProc>(GetGLProcAddress("glFlush")); 158 fn.glFlushFn = reinterpret_cast<glFlushProc>(GetGLProcAddress("glFlush"));
432 fn.glFlushMappedBufferRangeFn = 159 fn.glFlushMappedBufferRangeFn = 0;
433 reinterpret_cast<glFlushMappedBufferRangeProc>( 160 fn.glFramebufferRenderbufferEXTFn = 0;
434 GetGLProcAddress("glFlushMappedBufferRange")); 161 fn.glFramebufferTexture2DEXTFn = 0;
435 fn.glFramebufferRenderbufferEXTFn = 162 fn.glFramebufferTexture2DMultisampleEXTFn = 0;
436 reinterpret_cast<glFramebufferRenderbufferEXTProc>( 163 fn.glFramebufferTexture2DMultisampleIMGFn = 0;
437 glFramebufferRenderbufferEXTNotBound); 164 fn.glFramebufferTextureLayerFn = 0;
438 fn.glFramebufferTexture2DEXTFn =
439 reinterpret_cast<glFramebufferTexture2DEXTProc>(
440 glFramebufferTexture2DEXTNotBound);
441 fn.glFramebufferTexture2DMultisampleEXTFn =
442 reinterpret_cast<glFramebufferTexture2DMultisampleEXTProc>(
443 GetGLProcAddress("glFramebufferTexture2DMultisampleEXT"));
444 fn.glFramebufferTexture2DMultisampleIMGFn =
445 reinterpret_cast<glFramebufferTexture2DMultisampleIMGProc>(
446 GetGLProcAddress("glFramebufferTexture2DMultisampleIMG"));
447 fn.glFramebufferTextureLayerFn =
448 reinterpret_cast<glFramebufferTextureLayerProc>(
449 GetGLProcAddress("glFramebufferTextureLayer"));
450 fn.glFrontFaceFn = 165 fn.glFrontFaceFn =
451 reinterpret_cast<glFrontFaceProc>(GetGLProcAddress("glFrontFace")); 166 reinterpret_cast<glFrontFaceProc>(GetGLProcAddress("glFrontFace"));
452 fn.glGenBuffersARBFn = 167 fn.glGenBuffersARBFn =
453 reinterpret_cast<glGenBuffersARBProc>(glGenBuffersARBNotBound); 168 reinterpret_cast<glGenBuffersARBProc>(GetGLProcAddress("glGenBuffers"));
454 fn.glGenerateMipmapEXTFn = 169 fn.glGenerateMipmapEXTFn = 0;
455 reinterpret_cast<glGenerateMipmapEXTProc>(glGenerateMipmapEXTNotBound); 170 fn.glGenFencesAPPLEFn = 0;
456 fn.glGenFencesAPPLEFn = reinterpret_cast<glGenFencesAPPLEProc>( 171 fn.glGenFencesNVFn = 0;
457 GetGLProcAddress("glGenFencesAPPLE")); 172 fn.glGenFramebuffersEXTFn = 0;
458 fn.glGenFencesNVFn = 173 fn.glGenQueriesFn = 0;
459 reinterpret_cast<glGenFencesNVProc>(GetGLProcAddress("glGenFencesNV")); 174 fn.glGenQueriesARBFn = 0;
460 fn.glGenFramebuffersEXTFn = 175 fn.glGenRenderbuffersEXTFn = 0;
461 reinterpret_cast<glGenFramebuffersEXTProc>(glGenFramebuffersEXTNotBound); 176 fn.glGenSamplersFn = 0;
462 fn.glGenQueriesFn =
463 reinterpret_cast<glGenQueriesProc>(GetGLProcAddress("glGenQueries"));
464 fn.glGenQueriesARBFn =
465 reinterpret_cast<glGenQueriesARBProc>(glGenQueriesARBNotBound);
466 fn.glGenRenderbuffersEXTFn = reinterpret_cast<glGenRenderbuffersEXTProc>(
467 glGenRenderbuffersEXTNotBound);
468 fn.glGenSamplersFn =
469 reinterpret_cast<glGenSamplersProc>(GetGLProcAddress("glGenSamplers"));
470 fn.glGenTexturesFn = 177 fn.glGenTexturesFn =
471 reinterpret_cast<glGenTexturesProc>(GetGLProcAddress("glGenTextures")); 178 reinterpret_cast<glGenTexturesProc>(GetGLProcAddress("glGenTextures"));
472 fn.glGenTransformFeedbacksFn = reinterpret_cast<glGenTransformFeedbacksProc>( 179 fn.glGenTransformFeedbacksFn = 0;
473 GetGLProcAddress("glGenTransformFeedbacks")); 180 fn.glGenVertexArraysOESFn = 0;
474 fn.glGenVertexArraysOESFn =
475 reinterpret_cast<glGenVertexArraysOESProc>(glGenVertexArraysOESNotBound);
476 fn.glGetActiveAttribFn = reinterpret_cast<glGetActiveAttribProc>( 181 fn.glGetActiveAttribFn = reinterpret_cast<glGetActiveAttribProc>(
477 GetGLProcAddress("glGetActiveAttrib")); 182 GetGLProcAddress("glGetActiveAttrib"));
478 fn.glGetActiveUniformFn = reinterpret_cast<glGetActiveUniformProc>( 183 fn.glGetActiveUniformFn = reinterpret_cast<glGetActiveUniformProc>(
479 GetGLProcAddress("glGetActiveUniform")); 184 GetGLProcAddress("glGetActiveUniform"));
480 fn.glGetActiveUniformBlockivFn = 185 fn.glGetActiveUniformBlockivFn = 0;
481 reinterpret_cast<glGetActiveUniformBlockivProc>( 186 fn.glGetActiveUniformBlockNameFn = 0;
482 GetGLProcAddress("glGetActiveUniformBlockiv")); 187 fn.glGetActiveUniformsivFn = 0;
483 fn.glGetActiveUniformBlockNameFn =
484 reinterpret_cast<glGetActiveUniformBlockNameProc>(
485 GetGLProcAddress("glGetActiveUniformBlockName"));
486 fn.glGetActiveUniformsivFn = reinterpret_cast<glGetActiveUniformsivProc>(
487 GetGLProcAddress("glGetActiveUniformsiv"));
488 fn.glGetAttachedShadersFn = reinterpret_cast<glGetAttachedShadersProc>( 188 fn.glGetAttachedShadersFn = reinterpret_cast<glGetAttachedShadersProc>(
489 GetGLProcAddress("glGetAttachedShaders")); 189 GetGLProcAddress("glGetAttachedShaders"));
490 fn.glGetAttribLocationFn = reinterpret_cast<glGetAttribLocationProc>( 190 fn.glGetAttribLocationFn = reinterpret_cast<glGetAttribLocationProc>(
491 GetGLProcAddress("glGetAttribLocation")); 191 GetGLProcAddress("glGetAttribLocation"));
492 fn.glGetBooleanvFn = 192 fn.glGetBooleanvFn =
493 reinterpret_cast<glGetBooleanvProc>(GetGLProcAddress("glGetBooleanv")); 193 reinterpret_cast<glGetBooleanvProc>(GetGLProcAddress("glGetBooleanv"));
494 fn.glGetBufferParameterivFn = reinterpret_cast<glGetBufferParameterivProc>( 194 fn.glGetBufferParameterivFn = reinterpret_cast<glGetBufferParameterivProc>(
495 GetGLProcAddress("glGetBufferParameteriv")); 195 GetGLProcAddress("glGetBufferParameteriv"));
496 fn.glGetErrorFn = 196 fn.glGetErrorFn =
497 reinterpret_cast<glGetErrorProc>(GetGLProcAddress("glGetError")); 197 reinterpret_cast<glGetErrorProc>(GetGLProcAddress("glGetError"));
498 fn.glGetFenceivNVFn = 198 fn.glGetFenceivNVFn = 0;
499 reinterpret_cast<glGetFenceivNVProc>(GetGLProcAddress("glGetFenceivNV"));
500 fn.glGetFloatvFn = 199 fn.glGetFloatvFn =
501 reinterpret_cast<glGetFloatvProc>(GetGLProcAddress("glGetFloatv")); 200 reinterpret_cast<glGetFloatvProc>(GetGLProcAddress("glGetFloatv"));
502 fn.glGetFragDataLocationFn = reinterpret_cast<glGetFragDataLocationProc>( 201 fn.glGetFragDataLocationFn = 0;
503 GetGLProcAddress("glGetFragDataLocation")); 202 fn.glGetFramebufferAttachmentParameterivEXTFn = 0;
504 fn.glGetFramebufferAttachmentParameterivEXTFn = 203 fn.glGetGraphicsResetStatusARBFn = 0;
505 reinterpret_cast<glGetFramebufferAttachmentParameterivEXTProc>( 204 fn.glGetInteger64i_vFn = 0;
506 glGetFramebufferAttachmentParameterivEXTNotBound); 205 fn.glGetInteger64vFn = 0;
507 fn.glGetGraphicsResetStatusARBFn = 206 fn.glGetIntegeri_vFn = 0;
508 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
509 glGetGraphicsResetStatusARBNotBound);
510 fn.glGetInteger64i_vFn = reinterpret_cast<glGetInteger64i_vProc>(
511 GetGLProcAddress("glGetInteger64i_v"));
512 fn.glGetInteger64vFn = reinterpret_cast<glGetInteger64vProc>(
513 GetGLProcAddress("glGetInteger64v"));
514 fn.glGetIntegeri_vFn = reinterpret_cast<glGetIntegeri_vProc>(
515 GetGLProcAddress("glGetIntegeri_v"));
516 fn.glGetIntegervFn = 207 fn.glGetIntegervFn =
517 reinterpret_cast<glGetIntegervProc>(GetGLProcAddress("glGetIntegerv")); 208 reinterpret_cast<glGetIntegervProc>(GetGLProcAddress("glGetIntegerv"));
518 fn.glGetInternalformativFn = reinterpret_cast<glGetInternalformativProc>( 209 fn.glGetInternalformativFn = 0;
519 GetGLProcAddress("glGetInternalformativ")); 210 fn.glGetProgramBinaryFn = 0;
520 fn.glGetProgramBinaryFn =
521 reinterpret_cast<glGetProgramBinaryProc>(glGetProgramBinaryNotBound);
522 fn.glGetProgramInfoLogFn = reinterpret_cast<glGetProgramInfoLogProc>( 211 fn.glGetProgramInfoLogFn = reinterpret_cast<glGetProgramInfoLogProc>(
523 GetGLProcAddress("glGetProgramInfoLog")); 212 GetGLProcAddress("glGetProgramInfoLog"));
524 fn.glGetProgramivFn = 213 fn.glGetProgramivFn =
525 reinterpret_cast<glGetProgramivProc>(GetGLProcAddress("glGetProgramiv")); 214 reinterpret_cast<glGetProgramivProc>(GetGLProcAddress("glGetProgramiv"));
526 fn.glGetQueryivFn = 215 fn.glGetQueryivFn = 0;
527 reinterpret_cast<glGetQueryivProc>(GetGLProcAddress("glGetQueryiv")); 216 fn.glGetQueryivARBFn = 0;
528 fn.glGetQueryivARBFn = 217 fn.glGetQueryObjecti64vFn = 0;
529 reinterpret_cast<glGetQueryivARBProc>(glGetQueryivARBNotBound); 218 fn.glGetQueryObjectivFn = 0;
530 fn.glGetQueryObjecti64vFn = reinterpret_cast<glGetQueryObjecti64vProc>( 219 fn.glGetQueryObjectivARBFn = 0;
531 GetGLProcAddress("glGetQueryObjecti64v")); 220 fn.glGetQueryObjectui64vFn = 0;
532 fn.glGetQueryObjectivFn = reinterpret_cast<glGetQueryObjectivProc>( 221 fn.glGetQueryObjectuivFn = 0;
533 GetGLProcAddress("glGetQueryObjectiv")); 222 fn.glGetQueryObjectuivARBFn = 0;
534 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>( 223 fn.glGetRenderbufferParameterivEXTFn = 0;
535 glGetQueryObjectivARBNotBound); 224 fn.glGetSamplerParameterfvFn = 0;
536 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>( 225 fn.glGetSamplerParameterivFn = 0;
537 glGetQueryObjectui64vNotBound);
538 fn.glGetQueryObjectuivFn = reinterpret_cast<glGetQueryObjectuivProc>(
539 GetGLProcAddress("glGetQueryObjectuiv"));
540 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>(
541 glGetQueryObjectuivARBNotBound);
542 fn.glGetRenderbufferParameterivEXTFn =
543 reinterpret_cast<glGetRenderbufferParameterivEXTProc>(
544 glGetRenderbufferParameterivEXTNotBound);
545 fn.glGetSamplerParameterfvFn = reinterpret_cast<glGetSamplerParameterfvProc>(
546 GetGLProcAddress("glGetSamplerParameterfv"));
547 fn.glGetSamplerParameterivFn = reinterpret_cast<glGetSamplerParameterivProc>(
548 GetGLProcAddress("glGetSamplerParameteriv"));
549 fn.glGetShaderInfoLogFn = reinterpret_cast<glGetShaderInfoLogProc>( 226 fn.glGetShaderInfoLogFn = reinterpret_cast<glGetShaderInfoLogProc>(
550 GetGLProcAddress("glGetShaderInfoLog")); 227 GetGLProcAddress("glGetShaderInfoLog"));
551 fn.glGetShaderivFn = 228 fn.glGetShaderivFn =
552 reinterpret_cast<glGetShaderivProc>(GetGLProcAddress("glGetShaderiv")); 229 reinterpret_cast<glGetShaderivProc>(GetGLProcAddress("glGetShaderiv"));
553 fn.glGetShaderPrecisionFormatFn = 230 fn.glGetShaderPrecisionFormatFn = 0;
554 reinterpret_cast<glGetShaderPrecisionFormatProc>(
555 GetGLProcAddress("glGetShaderPrecisionFormat"));
556 fn.glGetShaderSourceFn = reinterpret_cast<glGetShaderSourceProc>( 231 fn.glGetShaderSourceFn = reinterpret_cast<glGetShaderSourceProc>(
557 GetGLProcAddress("glGetShaderSource")); 232 GetGLProcAddress("glGetShaderSource"));
558 fn.glGetStringFn = 233 fn.glGetStringFn =
559 reinterpret_cast<glGetStringProc>(GetGLProcAddress("glGetString")); 234 reinterpret_cast<glGetStringProc>(GetGLProcAddress("glGetString"));
560 fn.glGetSyncivFn = 235 fn.glGetSyncivFn = 0;
561 reinterpret_cast<glGetSyncivProc>(GetGLProcAddress("glGetSynciv")); 236 fn.glGetTexLevelParameterfvFn = 0;
562 fn.glGetTexLevelParameterfvFn = 237 fn.glGetTexLevelParameterivFn = 0;
563 reinterpret_cast<glGetTexLevelParameterfvProc>(
564 GetGLProcAddress("glGetTexLevelParameterfv"));
565 fn.glGetTexLevelParameterivFn =
566 reinterpret_cast<glGetTexLevelParameterivProc>(
567 GetGLProcAddress("glGetTexLevelParameteriv"));
568 fn.glGetTexParameterfvFn = reinterpret_cast<glGetTexParameterfvProc>( 238 fn.glGetTexParameterfvFn = reinterpret_cast<glGetTexParameterfvProc>(
569 GetGLProcAddress("glGetTexParameterfv")); 239 GetGLProcAddress("glGetTexParameterfv"));
570 fn.glGetTexParameterivFn = reinterpret_cast<glGetTexParameterivProc>( 240 fn.glGetTexParameterivFn = reinterpret_cast<glGetTexParameterivProc>(
571 GetGLProcAddress("glGetTexParameteriv")); 241 GetGLProcAddress("glGetTexParameteriv"));
572 fn.glGetTransformFeedbackVaryingFn = 242 fn.glGetTransformFeedbackVaryingFn = 0;
573 reinterpret_cast<glGetTransformFeedbackVaryingProc>( 243 fn.glGetTranslatedShaderSourceANGLEFn = 0;
574 GetGLProcAddress("glGetTransformFeedbackVarying")); 244 fn.glGetUniformBlockIndexFn = 0;
575 fn.glGetTranslatedShaderSourceANGLEFn =
576 reinterpret_cast<glGetTranslatedShaderSourceANGLEProc>(
577 GetGLProcAddress("glGetTranslatedShaderSourceANGLE"));
578 fn.glGetUniformBlockIndexFn = reinterpret_cast<glGetUniformBlockIndexProc>(
579 GetGLProcAddress("glGetUniformBlockIndex"));
580 fn.glGetUniformfvFn = 245 fn.glGetUniformfvFn =
581 reinterpret_cast<glGetUniformfvProc>(GetGLProcAddress("glGetUniformfv")); 246 reinterpret_cast<glGetUniformfvProc>(GetGLProcAddress("glGetUniformfv"));
582 fn.glGetUniformIndicesFn = reinterpret_cast<glGetUniformIndicesProc>( 247 fn.glGetUniformIndicesFn = 0;
583 GetGLProcAddress("glGetUniformIndices"));
584 fn.glGetUniformivFn = 248 fn.glGetUniformivFn =
585 reinterpret_cast<glGetUniformivProc>(GetGLProcAddress("glGetUniformiv")); 249 reinterpret_cast<glGetUniformivProc>(GetGLProcAddress("glGetUniformiv"));
586 fn.glGetUniformLocationFn = reinterpret_cast<glGetUniformLocationProc>( 250 fn.glGetUniformLocationFn = reinterpret_cast<glGetUniformLocationProc>(
587 GetGLProcAddress("glGetUniformLocation")); 251 GetGLProcAddress("glGetUniformLocation"));
588 fn.glGetVertexAttribfvFn = reinterpret_cast<glGetVertexAttribfvProc>( 252 fn.glGetVertexAttribfvFn = reinterpret_cast<glGetVertexAttribfvProc>(
589 GetGLProcAddress("glGetVertexAttribfv")); 253 GetGLProcAddress("glGetVertexAttribfv"));
590 fn.glGetVertexAttribivFn = reinterpret_cast<glGetVertexAttribivProc>( 254 fn.glGetVertexAttribivFn = reinterpret_cast<glGetVertexAttribivProc>(
591 GetGLProcAddress("glGetVertexAttribiv")); 255 GetGLProcAddress("glGetVertexAttribiv"));
592 fn.glGetVertexAttribPointervFn = 256 fn.glGetVertexAttribPointervFn =
593 reinterpret_cast<glGetVertexAttribPointervProc>( 257 reinterpret_cast<glGetVertexAttribPointervProc>(
594 GetGLProcAddress("glGetVertexAttribPointerv")); 258 GetGLProcAddress("glGetVertexAttribPointerv"));
595 fn.glHintFn = reinterpret_cast<glHintProc>(GetGLProcAddress("glHint")); 259 fn.glHintFn = reinterpret_cast<glHintProc>(GetGLProcAddress("glHint"));
596 fn.glInsertEventMarkerEXTFn = reinterpret_cast<glInsertEventMarkerEXTProc>( 260 fn.glInsertEventMarkerEXTFn = 0;
597 GetGLProcAddress("glInsertEventMarkerEXT")); 261 fn.glInvalidateFramebufferFn = 0;
598 fn.glInvalidateFramebufferFn = reinterpret_cast<glInvalidateFramebufferProc>( 262 fn.glInvalidateSubFramebufferFn = 0;
599 GetGLProcAddress("glInvalidateFramebuffer"));
600 fn.glInvalidateSubFramebufferFn =
601 reinterpret_cast<glInvalidateSubFramebufferProc>(
602 GetGLProcAddress("glInvalidateSubFramebuffer"));
603 fn.glIsBufferFn = 263 fn.glIsBufferFn =
604 reinterpret_cast<glIsBufferProc>(GetGLProcAddress("glIsBuffer")); 264 reinterpret_cast<glIsBufferProc>(GetGLProcAddress("glIsBuffer"));
605 fn.glIsEnabledFn = 265 fn.glIsEnabledFn =
606 reinterpret_cast<glIsEnabledProc>(GetGLProcAddress("glIsEnabled")); 266 reinterpret_cast<glIsEnabledProc>(GetGLProcAddress("glIsEnabled"));
607 fn.glIsFenceAPPLEFn = 267 fn.glIsFenceAPPLEFn = 0;
608 reinterpret_cast<glIsFenceAPPLEProc>(GetGLProcAddress("glIsFenceAPPLE")); 268 fn.glIsFenceNVFn = 0;
609 fn.glIsFenceNVFn = 269 fn.glIsFramebufferEXTFn = 0;
610 reinterpret_cast<glIsFenceNVProc>(GetGLProcAddress("glIsFenceNV"));
611 fn.glIsFramebufferEXTFn =
612 reinterpret_cast<glIsFramebufferEXTProc>(glIsFramebufferEXTNotBound);
613 fn.glIsProgramFn = 270 fn.glIsProgramFn =
614 reinterpret_cast<glIsProgramProc>(GetGLProcAddress("glIsProgram")); 271 reinterpret_cast<glIsProgramProc>(GetGLProcAddress("glIsProgram"));
615 fn.glIsQueryFn = 272 fn.glIsQueryFn = 0;
616 reinterpret_cast<glIsQueryProc>(GetGLProcAddress("glIsQuery")); 273 fn.glIsQueryARBFn = 0;
617 fn.glIsQueryARBFn = reinterpret_cast<glIsQueryARBProc>(glIsQueryARBNotBound); 274 fn.glIsRenderbufferEXTFn = 0;
618 fn.glIsRenderbufferEXTFn = 275 fn.glIsSamplerFn = 0;
619 reinterpret_cast<glIsRenderbufferEXTProc>(glIsRenderbufferEXTNotBound);
620 fn.glIsSamplerFn =
621 reinterpret_cast<glIsSamplerProc>(GetGLProcAddress("glIsSampler"));
622 fn.glIsShaderFn = 276 fn.glIsShaderFn =
623 reinterpret_cast<glIsShaderProc>(GetGLProcAddress("glIsShader")); 277 reinterpret_cast<glIsShaderProc>(GetGLProcAddress("glIsShader"));
624 fn.glIsSyncFn = reinterpret_cast<glIsSyncProc>(GetGLProcAddress("glIsSync")); 278 fn.glIsSyncFn = 0;
625 fn.glIsTextureFn = 279 fn.glIsTextureFn =
626 reinterpret_cast<glIsTextureProc>(GetGLProcAddress("glIsTexture")); 280 reinterpret_cast<glIsTextureProc>(GetGLProcAddress("glIsTexture"));
627 fn.glIsTransformFeedbackFn = reinterpret_cast<glIsTransformFeedbackProc>( 281 fn.glIsTransformFeedbackFn = 0;
628 GetGLProcAddress("glIsTransformFeedback")); 282 fn.glIsVertexArrayOESFn = 0;
629 fn.glIsVertexArrayOESFn =
630 reinterpret_cast<glIsVertexArrayOESProc>(glIsVertexArrayOESNotBound);
631 fn.glLineWidthFn = 283 fn.glLineWidthFn =
632 reinterpret_cast<glLineWidthProc>(GetGLProcAddress("glLineWidth")); 284 reinterpret_cast<glLineWidthProc>(GetGLProcAddress("glLineWidth"));
633 fn.glLinkProgramFn = 285 fn.glLinkProgramFn =
634 reinterpret_cast<glLinkProgramProc>(GetGLProcAddress("glLinkProgram")); 286 reinterpret_cast<glLinkProgramProc>(GetGLProcAddress("glLinkProgram"));
635 fn.glMapBufferFn = reinterpret_cast<glMapBufferProc>(glMapBufferNotBound); 287 fn.glMapBufferFn = 0;
636 fn.glMapBufferRangeFn = 288 fn.glMapBufferRangeFn = 0;
637 reinterpret_cast<glMapBufferRangeProc>(glMapBufferRangeNotBound); 289 fn.glMatrixLoadfEXTFn = 0;
638 fn.glMatrixLoadfEXTFn = reinterpret_cast<glMatrixLoadfEXTProc>( 290 fn.glMatrixLoadIdentityEXTFn = 0;
639 GetGLProcAddress("glMatrixLoadfEXT")); 291 fn.glPauseTransformFeedbackFn = 0;
640 fn.glMatrixLoadIdentityEXTFn = reinterpret_cast<glMatrixLoadIdentityEXTProc>(
641 GetGLProcAddress("glMatrixLoadIdentityEXT"));
642 fn.glPauseTransformFeedbackFn =
643 reinterpret_cast<glPauseTransformFeedbackProc>(
644 GetGLProcAddress("glPauseTransformFeedback"));
645 fn.glPixelStoreiFn = 292 fn.glPixelStoreiFn =
646 reinterpret_cast<glPixelStoreiProc>(GetGLProcAddress("glPixelStorei")); 293 reinterpret_cast<glPixelStoreiProc>(GetGLProcAddress("glPixelStorei"));
647 fn.glPointParameteriFn = reinterpret_cast<glPointParameteriProc>( 294 fn.glPointParameteriFn = 0;
648 GetGLProcAddress("glPointParameteri"));
649 fn.glPolygonOffsetFn = reinterpret_cast<glPolygonOffsetProc>( 295 fn.glPolygonOffsetFn = reinterpret_cast<glPolygonOffsetProc>(
650 GetGLProcAddress("glPolygonOffset")); 296 GetGLProcAddress("glPolygonOffset"));
651 fn.glPopGroupMarkerEXTFn = reinterpret_cast<glPopGroupMarkerEXTProc>( 297 fn.glPopGroupMarkerEXTFn = 0;
652 GetGLProcAddress("glPopGroupMarkerEXT")); 298 fn.glProgramBinaryFn = 0;
653 fn.glProgramBinaryFn = 299 fn.glProgramParameteriFn = 0;
654 reinterpret_cast<glProgramBinaryProc>(glProgramBinaryNotBound); 300 fn.glPushGroupMarkerEXTFn = 0;
655 fn.glProgramParameteriFn = reinterpret_cast<glProgramParameteriProc>( 301 fn.glQueryCounterFn = 0;
656 GetGLProcAddress("glProgramParameteri")); 302 fn.glReadBufferFn = 0;
657 fn.glPushGroupMarkerEXTFn = reinterpret_cast<glPushGroupMarkerEXTProc>(
658 GetGLProcAddress("glPushGroupMarkerEXT"));
659 fn.glQueryCounterFn =
660 reinterpret_cast<glQueryCounterProc>(glQueryCounterNotBound);
661 fn.glReadBufferFn =
662 reinterpret_cast<glReadBufferProc>(GetGLProcAddress("glReadBuffer"));
663 fn.glReadPixelsFn = 303 fn.glReadPixelsFn =
664 reinterpret_cast<glReadPixelsProc>(GetGLProcAddress("glReadPixels")); 304 reinterpret_cast<glReadPixelsProc>(GetGLProcAddress("glReadPixels"));
665 fn.glReleaseShaderCompilerFn = reinterpret_cast<glReleaseShaderCompilerProc>( 305 fn.glReleaseShaderCompilerFn = 0;
666 GetGLProcAddress("glReleaseShaderCompiler")); 306 fn.glRenderbufferStorageEXTFn = 0;
667 fn.glRenderbufferStorageEXTFn = 307 fn.glRenderbufferStorageMultisampleFn = 0;
668 reinterpret_cast<glRenderbufferStorageEXTProc>( 308 fn.glRenderbufferStorageMultisampleANGLEFn = 0;
669 glRenderbufferStorageEXTNotBound); 309 fn.glRenderbufferStorageMultisampleEXTFn = 0;
670 fn.glRenderbufferStorageMultisampleFn = 310 fn.glRenderbufferStorageMultisampleIMGFn = 0;
671 reinterpret_cast<glRenderbufferStorageMultisampleProc>( 311 fn.glResumeTransformFeedbackFn = 0;
672 GetGLProcAddress("glRenderbufferStorageMultisample"));
673 fn.glRenderbufferStorageMultisampleANGLEFn =
674 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>(
675 glRenderbufferStorageMultisampleANGLENotBound);
676 fn.glRenderbufferStorageMultisampleEXTFn =
677 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>(
678 glRenderbufferStorageMultisampleEXTNotBound);
679 fn.glRenderbufferStorageMultisampleIMGFn =
680 reinterpret_cast<glRenderbufferStorageMultisampleIMGProc>(
681 GetGLProcAddress("glRenderbufferStorageMultisampleIMG"));
682 fn.glResumeTransformFeedbackFn =
683 reinterpret_cast<glResumeTransformFeedbackProc>(
684 GetGLProcAddress("glResumeTransformFeedback"));
685 fn.glSampleCoverageFn = reinterpret_cast<glSampleCoverageProc>( 312 fn.glSampleCoverageFn = reinterpret_cast<glSampleCoverageProc>(
686 GetGLProcAddress("glSampleCoverage")); 313 GetGLProcAddress("glSampleCoverage"));
687 fn.glSamplerParameterfFn = reinterpret_cast<glSamplerParameterfProc>( 314 fn.glSamplerParameterfFn = 0;
688 GetGLProcAddress("glSamplerParameterf")); 315 fn.glSamplerParameterfvFn = 0;
689 fn.glSamplerParameterfvFn = reinterpret_cast<glSamplerParameterfvProc>( 316 fn.glSamplerParameteriFn = 0;
690 GetGLProcAddress("glSamplerParameterfv")); 317 fn.glSamplerParameterivFn = 0;
691 fn.glSamplerParameteriFn = reinterpret_cast<glSamplerParameteriProc>(
692 GetGLProcAddress("glSamplerParameteri"));
693 fn.glSamplerParameterivFn = reinterpret_cast<glSamplerParameterivProc>(
694 GetGLProcAddress("glSamplerParameteriv"));
695 fn.glScissorFn = 318 fn.glScissorFn =
696 reinterpret_cast<glScissorProc>(GetGLProcAddress("glScissor")); 319 reinterpret_cast<glScissorProc>(GetGLProcAddress("glScissor"));
697 fn.glSetFenceAPPLEFn = reinterpret_cast<glSetFenceAPPLEProc>( 320 fn.glSetFenceAPPLEFn = 0;
698 GetGLProcAddress("glSetFenceAPPLE")); 321 fn.glSetFenceNVFn = 0;
699 fn.glSetFenceNVFn = 322 fn.glShaderBinaryFn = 0;
700 reinterpret_cast<glSetFenceNVProc>(GetGLProcAddress("glSetFenceNV"));
701 fn.glShaderBinaryFn =
702 reinterpret_cast<glShaderBinaryProc>(GetGLProcAddress("glShaderBinary"));
703 fn.glShaderSourceFn = 323 fn.glShaderSourceFn =
704 reinterpret_cast<glShaderSourceProc>(GetGLProcAddress("glShaderSource")); 324 reinterpret_cast<glShaderSourceProc>(GetGLProcAddress("glShaderSource"));
705 fn.glStencilFuncFn = 325 fn.glStencilFuncFn =
706 reinterpret_cast<glStencilFuncProc>(GetGLProcAddress("glStencilFunc")); 326 reinterpret_cast<glStencilFuncProc>(GetGLProcAddress("glStencilFunc"));
707 fn.glStencilFuncSeparateFn = reinterpret_cast<glStencilFuncSeparateProc>( 327 fn.glStencilFuncSeparateFn = reinterpret_cast<glStencilFuncSeparateProc>(
708 GetGLProcAddress("glStencilFuncSeparate")); 328 GetGLProcAddress("glStencilFuncSeparate"));
709 fn.glStencilMaskFn = 329 fn.glStencilMaskFn =
710 reinterpret_cast<glStencilMaskProc>(GetGLProcAddress("glStencilMask")); 330 reinterpret_cast<glStencilMaskProc>(GetGLProcAddress("glStencilMask"));
711 fn.glStencilMaskSeparateFn = reinterpret_cast<glStencilMaskSeparateProc>( 331 fn.glStencilMaskSeparateFn = reinterpret_cast<glStencilMaskSeparateProc>(
712 GetGLProcAddress("glStencilMaskSeparate")); 332 GetGLProcAddress("glStencilMaskSeparate"));
713 fn.glStencilOpFn = 333 fn.glStencilOpFn =
714 reinterpret_cast<glStencilOpProc>(GetGLProcAddress("glStencilOp")); 334 reinterpret_cast<glStencilOpProc>(GetGLProcAddress("glStencilOp"));
715 fn.glStencilOpSeparateFn = reinterpret_cast<glStencilOpSeparateProc>( 335 fn.glStencilOpSeparateFn = reinterpret_cast<glStencilOpSeparateProc>(
716 GetGLProcAddress("glStencilOpSeparate")); 336 GetGLProcAddress("glStencilOpSeparate"));
717 fn.glTestFenceAPPLEFn = reinterpret_cast<glTestFenceAPPLEProc>( 337 fn.glTestFenceAPPLEFn = 0;
718 GetGLProcAddress("glTestFenceAPPLE")); 338 fn.glTestFenceNVFn = 0;
719 fn.glTestFenceNVFn =
720 reinterpret_cast<glTestFenceNVProc>(GetGLProcAddress("glTestFenceNV"));
721 fn.glTexImage2DFn = 339 fn.glTexImage2DFn =
722 reinterpret_cast<glTexImage2DProc>(GetGLProcAddress("glTexImage2D")); 340 reinterpret_cast<glTexImage2DProc>(GetGLProcAddress("glTexImage2D"));
723 fn.glTexImage3DFn = 341 fn.glTexImage3DFn = 0;
724 reinterpret_cast<glTexImage3DProc>(GetGLProcAddress("glTexImage3D"));
725 fn.glTexParameterfFn = reinterpret_cast<glTexParameterfProc>( 342 fn.glTexParameterfFn = reinterpret_cast<glTexParameterfProc>(
726 GetGLProcAddress("glTexParameterf")); 343 GetGLProcAddress("glTexParameterf"));
727 fn.glTexParameterfvFn = reinterpret_cast<glTexParameterfvProc>( 344 fn.glTexParameterfvFn = reinterpret_cast<glTexParameterfvProc>(
728 GetGLProcAddress("glTexParameterfv")); 345 GetGLProcAddress("glTexParameterfv"));
729 fn.glTexParameteriFn = reinterpret_cast<glTexParameteriProc>( 346 fn.glTexParameteriFn = reinterpret_cast<glTexParameteriProc>(
730 GetGLProcAddress("glTexParameteri")); 347 GetGLProcAddress("glTexParameteri"));
731 fn.glTexParameterivFn = reinterpret_cast<glTexParameterivProc>( 348 fn.glTexParameterivFn = reinterpret_cast<glTexParameterivProc>(
732 GetGLProcAddress("glTexParameteriv")); 349 GetGLProcAddress("glTexParameteriv"));
733 fn.glTexStorage2DEXTFn = 350 fn.glTexStorage2DEXTFn = 0;
734 reinterpret_cast<glTexStorage2DEXTProc>(glTexStorage2DEXTNotBound); 351 fn.glTexStorage3DFn = 0;
735 fn.glTexStorage3DFn =
736 reinterpret_cast<glTexStorage3DProc>(GetGLProcAddress("glTexStorage3D"));
737 fn.glTexSubImage2DFn = reinterpret_cast<glTexSubImage2DProc>( 352 fn.glTexSubImage2DFn = reinterpret_cast<glTexSubImage2DProc>(
738 GetGLProcAddress("glTexSubImage2D")); 353 GetGLProcAddress("glTexSubImage2D"));
739 fn.glTransformFeedbackVaryingsFn = 354 fn.glTransformFeedbackVaryingsFn = 0;
740 reinterpret_cast<glTransformFeedbackVaryingsProc>(
741 GetGLProcAddress("glTransformFeedbackVaryings"));
742 fn.glUniform1fFn = 355 fn.glUniform1fFn =
743 reinterpret_cast<glUniform1fProc>(GetGLProcAddress("glUniform1f")); 356 reinterpret_cast<glUniform1fProc>(GetGLProcAddress("glUniform1f"));
744 fn.glUniform1fvFn = 357 fn.glUniform1fvFn =
745 reinterpret_cast<glUniform1fvProc>(GetGLProcAddress("glUniform1fv")); 358 reinterpret_cast<glUniform1fvProc>(GetGLProcAddress("glUniform1fv"));
746 fn.glUniform1iFn = 359 fn.glUniform1iFn =
747 reinterpret_cast<glUniform1iProc>(GetGLProcAddress("glUniform1i")); 360 reinterpret_cast<glUniform1iProc>(GetGLProcAddress("glUniform1i"));
748 fn.glUniform1ivFn = 361 fn.glUniform1ivFn =
749 reinterpret_cast<glUniform1ivProc>(GetGLProcAddress("glUniform1iv")); 362 reinterpret_cast<glUniform1ivProc>(GetGLProcAddress("glUniform1iv"));
750 fn.glUniform1uiFn = 363 fn.glUniform1uiFn = 0;
751 reinterpret_cast<glUniform1uiProc>(GetGLProcAddress("glUniform1ui")); 364 fn.glUniform1uivFn = 0;
752 fn.glUniform1uivFn =
753 reinterpret_cast<glUniform1uivProc>(GetGLProcAddress("glUniform1uiv"));
754 fn.glUniform2fFn = 365 fn.glUniform2fFn =
755 reinterpret_cast<glUniform2fProc>(GetGLProcAddress("glUniform2f")); 366 reinterpret_cast<glUniform2fProc>(GetGLProcAddress("glUniform2f"));
756 fn.glUniform2fvFn = 367 fn.glUniform2fvFn =
757 reinterpret_cast<glUniform2fvProc>(GetGLProcAddress("glUniform2fv")); 368 reinterpret_cast<glUniform2fvProc>(GetGLProcAddress("glUniform2fv"));
758 fn.glUniform2iFn = 369 fn.glUniform2iFn =
759 reinterpret_cast<glUniform2iProc>(GetGLProcAddress("glUniform2i")); 370 reinterpret_cast<glUniform2iProc>(GetGLProcAddress("glUniform2i"));
760 fn.glUniform2ivFn = 371 fn.glUniform2ivFn =
761 reinterpret_cast<glUniform2ivProc>(GetGLProcAddress("glUniform2iv")); 372 reinterpret_cast<glUniform2ivProc>(GetGLProcAddress("glUniform2iv"));
762 fn.glUniform2uiFn = 373 fn.glUniform2uiFn = 0;
763 reinterpret_cast<glUniform2uiProc>(GetGLProcAddress("glUniform2ui")); 374 fn.glUniform2uivFn = 0;
764 fn.glUniform2uivFn =
765 reinterpret_cast<glUniform2uivProc>(GetGLProcAddress("glUniform2uiv"));
766 fn.glUniform3fFn = 375 fn.glUniform3fFn =
767 reinterpret_cast<glUniform3fProc>(GetGLProcAddress("glUniform3f")); 376 reinterpret_cast<glUniform3fProc>(GetGLProcAddress("glUniform3f"));
768 fn.glUniform3fvFn = 377 fn.glUniform3fvFn =
769 reinterpret_cast<glUniform3fvProc>(GetGLProcAddress("glUniform3fv")); 378 reinterpret_cast<glUniform3fvProc>(GetGLProcAddress("glUniform3fv"));
770 fn.glUniform3iFn = 379 fn.glUniform3iFn =
771 reinterpret_cast<glUniform3iProc>(GetGLProcAddress("glUniform3i")); 380 reinterpret_cast<glUniform3iProc>(GetGLProcAddress("glUniform3i"));
772 fn.glUniform3ivFn = 381 fn.glUniform3ivFn =
773 reinterpret_cast<glUniform3ivProc>(GetGLProcAddress("glUniform3iv")); 382 reinterpret_cast<glUniform3ivProc>(GetGLProcAddress("glUniform3iv"));
774 fn.glUniform3uiFn = 383 fn.glUniform3uiFn = 0;
775 reinterpret_cast<glUniform3uiProc>(GetGLProcAddress("glUniform3ui")); 384 fn.glUniform3uivFn = 0;
776 fn.glUniform3uivFn =
777 reinterpret_cast<glUniform3uivProc>(GetGLProcAddress("glUniform3uiv"));
778 fn.glUniform4fFn = 385 fn.glUniform4fFn =
779 reinterpret_cast<glUniform4fProc>(GetGLProcAddress("glUniform4f")); 386 reinterpret_cast<glUniform4fProc>(GetGLProcAddress("glUniform4f"));
780 fn.glUniform4fvFn = 387 fn.glUniform4fvFn =
781 reinterpret_cast<glUniform4fvProc>(GetGLProcAddress("glUniform4fv")); 388 reinterpret_cast<glUniform4fvProc>(GetGLProcAddress("glUniform4fv"));
782 fn.glUniform4iFn = 389 fn.glUniform4iFn =
783 reinterpret_cast<glUniform4iProc>(GetGLProcAddress("glUniform4i")); 390 reinterpret_cast<glUniform4iProc>(GetGLProcAddress("glUniform4i"));
784 fn.glUniform4ivFn = 391 fn.glUniform4ivFn =
785 reinterpret_cast<glUniform4ivProc>(GetGLProcAddress("glUniform4iv")); 392 reinterpret_cast<glUniform4ivProc>(GetGLProcAddress("glUniform4iv"));
786 fn.glUniform4uiFn = 393 fn.glUniform4uiFn = 0;
787 reinterpret_cast<glUniform4uiProc>(GetGLProcAddress("glUniform4ui")); 394 fn.glUniform4uivFn = 0;
788 fn.glUniform4uivFn = 395 fn.glUniformBlockBindingFn = 0;
789 reinterpret_cast<glUniform4uivProc>(GetGLProcAddress("glUniform4uiv"));
790 fn.glUniformBlockBindingFn = reinterpret_cast<glUniformBlockBindingProc>(
791 GetGLProcAddress("glUniformBlockBinding"));
792 fn.glUniformMatrix2fvFn = reinterpret_cast<glUniformMatrix2fvProc>( 396 fn.glUniformMatrix2fvFn = reinterpret_cast<glUniformMatrix2fvProc>(
793 GetGLProcAddress("glUniformMatrix2fv")); 397 GetGLProcAddress("glUniformMatrix2fv"));
794 fn.glUniformMatrix2x3fvFn = reinterpret_cast<glUniformMatrix2x3fvProc>( 398 fn.glUniformMatrix2x3fvFn = 0;
795 GetGLProcAddress("glUniformMatrix2x3fv")); 399 fn.glUniformMatrix2x4fvFn = 0;
796 fn.glUniformMatrix2x4fvFn = reinterpret_cast<glUniformMatrix2x4fvProc>(
797 GetGLProcAddress("glUniformMatrix2x4fv"));
798 fn.glUniformMatrix3fvFn = reinterpret_cast<glUniformMatrix3fvProc>( 400 fn.glUniformMatrix3fvFn = reinterpret_cast<glUniformMatrix3fvProc>(
799 GetGLProcAddress("glUniformMatrix3fv")); 401 GetGLProcAddress("glUniformMatrix3fv"));
800 fn.glUniformMatrix3x2fvFn = reinterpret_cast<glUniformMatrix3x2fvProc>( 402 fn.glUniformMatrix3x2fvFn = 0;
801 GetGLProcAddress("glUniformMatrix3x2fv")); 403 fn.glUniformMatrix3x4fvFn = 0;
802 fn.glUniformMatrix3x4fvFn = reinterpret_cast<glUniformMatrix3x4fvProc>(
803 GetGLProcAddress("glUniformMatrix3x4fv"));
804 fn.glUniformMatrix4fvFn = reinterpret_cast<glUniformMatrix4fvProc>( 404 fn.glUniformMatrix4fvFn = reinterpret_cast<glUniformMatrix4fvProc>(
805 GetGLProcAddress("glUniformMatrix4fv")); 405 GetGLProcAddress("glUniformMatrix4fv"));
806 fn.glUniformMatrix4x2fvFn = reinterpret_cast<glUniformMatrix4x2fvProc>( 406 fn.glUniformMatrix4x2fvFn = 0;
807 GetGLProcAddress("glUniformMatrix4x2fv")); 407 fn.glUniformMatrix4x3fvFn = 0;
808 fn.glUniformMatrix4x3fvFn = reinterpret_cast<glUniformMatrix4x3fvProc>( 408 fn.glUnmapBufferFn = 0;
809 GetGLProcAddress("glUniformMatrix4x3fv"));
810 fn.glUnmapBufferFn =
811 reinterpret_cast<glUnmapBufferProc>(glUnmapBufferNotBound);
812 fn.glUseProgramFn = 409 fn.glUseProgramFn =
813 reinterpret_cast<glUseProgramProc>(GetGLProcAddress("glUseProgram")); 410 reinterpret_cast<glUseProgramProc>(GetGLProcAddress("glUseProgram"));
814 fn.glValidateProgramFn = reinterpret_cast<glValidateProgramProc>( 411 fn.glValidateProgramFn = reinterpret_cast<glValidateProgramProc>(
815 GetGLProcAddress("glValidateProgram")); 412 GetGLProcAddress("glValidateProgram"));
816 fn.glVertexAttrib1fFn = reinterpret_cast<glVertexAttrib1fProc>( 413 fn.glVertexAttrib1fFn = reinterpret_cast<glVertexAttrib1fProc>(
817 GetGLProcAddress("glVertexAttrib1f")); 414 GetGLProcAddress("glVertexAttrib1f"));
818 fn.glVertexAttrib1fvFn = reinterpret_cast<glVertexAttrib1fvProc>( 415 fn.glVertexAttrib1fvFn = reinterpret_cast<glVertexAttrib1fvProc>(
819 GetGLProcAddress("glVertexAttrib1fv")); 416 GetGLProcAddress("glVertexAttrib1fv"));
820 fn.glVertexAttrib2fFn = reinterpret_cast<glVertexAttrib2fProc>( 417 fn.glVertexAttrib2fFn = reinterpret_cast<glVertexAttrib2fProc>(
821 GetGLProcAddress("glVertexAttrib2f")); 418 GetGLProcAddress("glVertexAttrib2f"));
822 fn.glVertexAttrib2fvFn = reinterpret_cast<glVertexAttrib2fvProc>( 419 fn.glVertexAttrib2fvFn = reinterpret_cast<glVertexAttrib2fvProc>(
823 GetGLProcAddress("glVertexAttrib2fv")); 420 GetGLProcAddress("glVertexAttrib2fv"));
824 fn.glVertexAttrib3fFn = reinterpret_cast<glVertexAttrib3fProc>( 421 fn.glVertexAttrib3fFn = reinterpret_cast<glVertexAttrib3fProc>(
825 GetGLProcAddress("glVertexAttrib3f")); 422 GetGLProcAddress("glVertexAttrib3f"));
826 fn.glVertexAttrib3fvFn = reinterpret_cast<glVertexAttrib3fvProc>( 423 fn.glVertexAttrib3fvFn = reinterpret_cast<glVertexAttrib3fvProc>(
827 GetGLProcAddress("glVertexAttrib3fv")); 424 GetGLProcAddress("glVertexAttrib3fv"));
828 fn.glVertexAttrib4fFn = reinterpret_cast<glVertexAttrib4fProc>( 425 fn.glVertexAttrib4fFn = reinterpret_cast<glVertexAttrib4fProc>(
829 GetGLProcAddress("glVertexAttrib4f")); 426 GetGLProcAddress("glVertexAttrib4f"));
830 fn.glVertexAttrib4fvFn = reinterpret_cast<glVertexAttrib4fvProc>( 427 fn.glVertexAttrib4fvFn = reinterpret_cast<glVertexAttrib4fvProc>(
831 GetGLProcAddress("glVertexAttrib4fv")); 428 GetGLProcAddress("glVertexAttrib4fv"));
832 fn.glVertexAttribDivisorANGLEFn = 429 fn.glVertexAttribDivisorANGLEFn = 0;
833 reinterpret_cast<glVertexAttribDivisorANGLEProc>( 430 fn.glVertexAttribI4iFn = 0;
834 glVertexAttribDivisorANGLENotBound); 431 fn.glVertexAttribI4ivFn = 0;
835 fn.glVertexAttribI4iFn = reinterpret_cast<glVertexAttribI4iProc>( 432 fn.glVertexAttribI4uiFn = 0;
836 GetGLProcAddress("glVertexAttribI4i")); 433 fn.glVertexAttribI4uivFn = 0;
837 fn.glVertexAttribI4ivFn = reinterpret_cast<glVertexAttribI4ivProc>( 434 fn.glVertexAttribIPointerFn = 0;
838 GetGLProcAddress("glVertexAttribI4iv"));
839 fn.glVertexAttribI4uiFn = reinterpret_cast<glVertexAttribI4uiProc>(
840 GetGLProcAddress("glVertexAttribI4ui"));
841 fn.glVertexAttribI4uivFn = reinterpret_cast<glVertexAttribI4uivProc>(
842 GetGLProcAddress("glVertexAttribI4uiv"));
843 fn.glVertexAttribIPointerFn = reinterpret_cast<glVertexAttribIPointerProc>(
844 GetGLProcAddress("glVertexAttribIPointer"));
845 fn.glVertexAttribPointerFn = reinterpret_cast<glVertexAttribPointerProc>( 435 fn.glVertexAttribPointerFn = reinterpret_cast<glVertexAttribPointerProc>(
846 GetGLProcAddress("glVertexAttribPointer")); 436 GetGLProcAddress("glVertexAttribPointer"));
847 fn.glViewportFn = 437 fn.glViewportFn =
848 reinterpret_cast<glViewportProc>(GetGLProcAddress("glViewport")); 438 reinterpret_cast<glViewportProc>(GetGLProcAddress("glViewport"));
849 fn.glWaitSyncFn = 439 fn.glWaitSyncFn = 0;
850 reinterpret_cast<glWaitSyncProc>(GetGLProcAddress("glWaitSync"));
851 } 440 }
852 441
853 void DriverGL::InitializeDynamicBindings(GLContext* context) { 442 void DriverGL::InitializeDynamicBindings(GLContext* context) {
854 DCHECK(context && context->IsCurrent(NULL)); 443 DCHECK(context && context->IsCurrent(NULL));
855 const GLVersionInfo* ver = context->GetVersionInfo(); 444 const GLVersionInfo* ver = context->GetVersionInfo();
856 ALLOW_UNUSED_LOCAL(ver); 445 ALLOW_UNUSED_LOCAL(ver);
857 std::string extensions = context->GetExtensions() + " "; 446 std::string extensions = context->GetExtensions() + " ";
858 ALLOW_UNUSED_LOCAL(extensions); 447 ALLOW_UNUSED_LOCAL(extensions);
859 448
860 ext.b_GL_ANGLE_framebuffer_blit = 449 ext.b_GL_ANGLE_framebuffer_blit =
861 extensions.find("GL_ANGLE_framebuffer_blit ") != std::string::npos; 450 extensions.find("GL_ANGLE_framebuffer_blit ") != std::string::npos;
862 ext.b_GL_ANGLE_framebuffer_multisample = 451 ext.b_GL_ANGLE_framebuffer_multisample =
863 extensions.find("GL_ANGLE_framebuffer_multisample ") != std::string::npos; 452 extensions.find("GL_ANGLE_framebuffer_multisample ") != std::string::npos;
864 ext.b_GL_ANGLE_instanced_arrays = 453 ext.b_GL_ANGLE_instanced_arrays =
865 extensions.find("GL_ANGLE_instanced_arrays ") != std::string::npos; 454 extensions.find("GL_ANGLE_instanced_arrays ") != std::string::npos;
866 ext.b_GL_ANGLE_translated_shader_source = 455 ext.b_GL_ANGLE_translated_shader_source =
867 extensions.find("GL_ANGLE_translated_shader_source ") != 456 extensions.find("GL_ANGLE_translated_shader_source ") !=
868 std::string::npos; 457 std::string::npos;
869 ext.b_GL_APPLE_fence = 458 ext.b_GL_APPLE_fence =
870 extensions.find("GL_APPLE_fence ") != std::string::npos; 459 extensions.find("GL_APPLE_fence ") != std::string::npos;
871 ext.b_GL_APPLE_vertex_array_object = 460 ext.b_GL_APPLE_vertex_array_object =
872 extensions.find("GL_APPLE_vertex_array_object ") != std::string::npos; 461 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 = 462 ext.b_GL_ARB_draw_buffers =
880 extensions.find("GL_ARB_draw_buffers ") != std::string::npos; 463 extensions.find("GL_ARB_draw_buffers ") != std::string::npos;
881 ext.b_GL_ARB_draw_instanced = 464 ext.b_GL_ARB_draw_instanced =
882 extensions.find("GL_ARB_draw_instanced ") != std::string::npos; 465 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 = 466 ext.b_GL_ARB_get_program_binary =
886 extensions.find("GL_ARB_get_program_binary ") != std::string::npos; 467 extensions.find("GL_ARB_get_program_binary ") != std::string::npos;
887 ext.b_GL_ARB_instanced_arrays = 468 ext.b_GL_ARB_instanced_arrays =
888 extensions.find("GL_ARB_instanced_arrays ") != std::string::npos; 469 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 = 470 ext.b_GL_ARB_map_buffer_range =
894 extensions.find("GL_ARB_map_buffer_range ") != std::string::npos; 471 extensions.find("GL_ARB_map_buffer_range ") != std::string::npos;
895 ext.b_GL_ARB_occlusion_query = 472 ext.b_GL_ARB_occlusion_query =
896 extensions.find("GL_ARB_occlusion_query ") != std::string::npos; 473 extensions.find("GL_ARB_occlusion_query ") != std::string::npos;
897 ext.b_GL_ARB_robustness = 474 ext.b_GL_ARB_robustness =
898 extensions.find("GL_ARB_robustness ") != std::string::npos; 475 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; 476 ext.b_GL_ARB_sync = extensions.find("GL_ARB_sync ") != std::string::npos;
902 ext.b_GL_ARB_texture_storage = 477 ext.b_GL_ARB_texture_storage =
903 extensions.find("GL_ARB_texture_storage ") != std::string::npos; 478 extensions.find("GL_ARB_texture_storage ") != std::string::npos;
904 ext.b_GL_ARB_timer_query = 479 ext.b_GL_ARB_timer_query =
905 extensions.find("GL_ARB_timer_query ") != std::string::npos; 480 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 = 481 ext.b_GL_ARB_vertex_array_object =
911 extensions.find("GL_ARB_vertex_array_object ") != std::string::npos; 482 extensions.find("GL_ARB_vertex_array_object ") != std::string::npos;
912 ext.b_GL_ARB_vertex_buffer_object = 483 ext.b_GL_CHROMIUM_gles_depth_binding_hack =
913 extensions.find("GL_ARB_vertex_buffer_object ") != std::string::npos; 484 extensions.find("GL_CHROMIUM_gles_depth_binding_hack ") !=
485 std::string::npos;
914 ext.b_GL_EXT_debug_marker = 486 ext.b_GL_EXT_debug_marker =
915 extensions.find("GL_EXT_debug_marker ") != std::string::npos; 487 extensions.find("GL_EXT_debug_marker ") != std::string::npos;
916 ext.b_GL_EXT_direct_state_access = 488 ext.b_GL_EXT_direct_state_access =
917 extensions.find("GL_EXT_direct_state_access ") != std::string::npos; 489 extensions.find("GL_EXT_direct_state_access ") != std::string::npos;
918 ext.b_GL_EXT_discard_framebuffer = 490 ext.b_GL_EXT_discard_framebuffer =
919 extensions.find("GL_EXT_discard_framebuffer ") != std::string::npos; 491 extensions.find("GL_EXT_discard_framebuffer ") != std::string::npos;
920 ext.b_GL_EXT_disjoint_timer_query = 492 ext.b_GL_EXT_disjoint_timer_query =
921 extensions.find("GL_EXT_disjoint_timer_query ") != std::string::npos; 493 extensions.find("GL_EXT_disjoint_timer_query ") != std::string::npos;
922 ext.b_GL_EXT_draw_buffers = 494 ext.b_GL_EXT_draw_buffers =
923 extensions.find("GL_EXT_draw_buffers ") != std::string::npos; 495 extensions.find("GL_EXT_draw_buffers ") != std::string::npos;
924 ext.b_GL_EXT_framebuffer_blit = 496 ext.b_GL_EXT_framebuffer_blit =
925 extensions.find("GL_EXT_framebuffer_blit ") != std::string::npos; 497 extensions.find("GL_EXT_framebuffer_blit ") != std::string::npos;
926 ext.b_GL_EXT_framebuffer_multisample = 498 ext.b_GL_EXT_framebuffer_multisample =
927 extensions.find("GL_EXT_framebuffer_multisample ") != std::string::npos; 499 extensions.find("GL_EXT_framebuffer_multisample ") != std::string::npos;
928 ext.b_GL_EXT_framebuffer_object = 500 ext.b_GL_EXT_framebuffer_object =
929 extensions.find("GL_EXT_framebuffer_object ") != std::string::npos; 501 extensions.find("GL_EXT_framebuffer_object ") != std::string::npos;
930 ext.b_GL_EXT_map_buffer_range = 502 ext.b_GL_EXT_map_buffer_range =
931 extensions.find("GL_EXT_map_buffer_range ") != std::string::npos; 503 extensions.find("GL_EXT_map_buffer_range ") != std::string::npos;
932 ext.b_GL_EXT_multisampled_render_to_texture = 504 ext.b_GL_EXT_multisampled_render_to_texture =
933 extensions.find("GL_EXT_multisampled_render_to_texture ") != 505 extensions.find("GL_EXT_multisampled_render_to_texture ") !=
934 std::string::npos; 506 std::string::npos;
507 ext.b_GL_EXT_occlusion_query_boolean =
508 extensions.find("GL_EXT_occlusion_query_boolean ") != std::string::npos;
935 ext.b_GL_EXT_robustness = 509 ext.b_GL_EXT_robustness =
936 extensions.find("GL_EXT_robustness ") != std::string::npos; 510 extensions.find("GL_EXT_robustness ") != std::string::npos;
937 ext.b_GL_EXT_texture_storage = 511 ext.b_GL_EXT_texture_storage =
938 extensions.find("GL_EXT_texture_storage ") != std::string::npos; 512 extensions.find("GL_EXT_texture_storage ") != std::string::npos;
939 ext.b_GL_EXT_timer_query = 513 ext.b_GL_EXT_timer_query =
940 extensions.find("GL_EXT_timer_query ") != std::string::npos; 514 extensions.find("GL_EXT_timer_query ") != std::string::npos;
941 ext.b_GL_IMG_multisampled_render_to_texture = 515 ext.b_GL_IMG_multisampled_render_to_texture =
942 extensions.find("GL_IMG_multisampled_render_to_texture ") != 516 extensions.find("GL_IMG_multisampled_render_to_texture ") !=
943 std::string::npos; 517 std::string::npos;
944 ext.b_GL_KHR_blend_equation_advanced = 518 ext.b_GL_KHR_blend_equation_advanced =
945 extensions.find("GL_KHR_blend_equation_advanced ") != std::string::npos; 519 extensions.find("GL_KHR_blend_equation_advanced ") != std::string::npos;
946 ext.b_GL_KHR_robustness = 520 ext.b_GL_KHR_robustness =
947 extensions.find("GL_KHR_robustness ") != std::string::npos; 521 extensions.find("GL_KHR_robustness ") != std::string::npos;
948 ext.b_GL_NV_blend_equation_advanced = 522 ext.b_GL_NV_blend_equation_advanced =
949 extensions.find("GL_NV_blend_equation_advanced ") != std::string::npos; 523 extensions.find("GL_NV_blend_equation_advanced ") != std::string::npos;
950 ext.b_GL_NV_fence = extensions.find("GL_NV_fence ") != std::string::npos; 524 ext.b_GL_NV_fence = extensions.find("GL_NV_fence ") != std::string::npos;
951 ext.b_GL_NV_path_rendering = 525 ext.b_GL_NV_path_rendering =
952 extensions.find("GL_NV_path_rendering ") != std::string::npos; 526 extensions.find("GL_NV_path_rendering ") != std::string::npos;
953 ext.b_GL_OES_EGL_image = 527 ext.b_GL_OES_EGL_image =
954 extensions.find("GL_OES_EGL_image ") != std::string::npos; 528 extensions.find("GL_OES_EGL_image ") != std::string::npos;
955 ext.b_GL_OES_get_program_binary = 529 ext.b_GL_OES_get_program_binary =
956 extensions.find("GL_OES_get_program_binary ") != std::string::npos; 530 extensions.find("GL_OES_get_program_binary ") != std::string::npos;
957 ext.b_GL_OES_mapbuffer = 531 ext.b_GL_OES_mapbuffer =
958 extensions.find("GL_OES_mapbuffer ") != std::string::npos; 532 extensions.find("GL_OES_mapbuffer ") != std::string::npos;
959 ext.b_GL_OES_vertex_array_object = 533 ext.b_GL_OES_vertex_array_object =
960 extensions.find("GL_OES_vertex_array_object ") != std::string::npos; 534 extensions.find("GL_OES_vertex_array_object ") != std::string::npos;
961 535
962 fn.glBeginQueryARBFn = 0; 536 debug_fn.glBeginQueryFn = 0;
537 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
538 fn.glBeginQueryFn =
539 reinterpret_cast<glBeginQueryProc>(GetGLProcAddress("glBeginQuery"));
540 DCHECK(fn.glBeginQueryFn);
541 }
542
963 debug_fn.glBeginQueryARBFn = 0; 543 debug_fn.glBeginQueryARBFn = 0;
964 if (ext.b_GL_ARB_occlusion_query) { 544 if (ext.b_GL_ARB_occlusion_query) {
965 fn.glBeginQueryARBFn = reinterpret_cast<glBeginQueryARBProc>( 545 fn.glBeginQueryARBFn = reinterpret_cast<glBeginQueryARBProc>(
966 GetGLProcAddress("glBeginQueryARB")); 546 GetGLProcAddress("glBeginQueryARB"));
967 } 547 DCHECK(fn.glBeginQueryARBFn);
968 if (!fn.glBeginQueryARBFn) { 548 } else if (ext.b_GL_EXT_disjoint_timer_query ||
549 ext.b_GL_EXT_occlusion_query_boolean) {
969 fn.glBeginQueryARBFn = reinterpret_cast<glBeginQueryARBProc>( 550 fn.glBeginQueryARBFn = reinterpret_cast<glBeginQueryARBProc>(
970 GetGLProcAddress("glBeginQueryEXT")); 551 GetGLProcAddress("glBeginQueryEXT"));
971 } 552 DCHECK(fn.glBeginQueryARBFn);
972 553 }
973 fn.glBindFramebufferEXTFn = 0; 554
555 debug_fn.glBeginTransformFeedbackFn = 0;
556 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
557 fn.glBeginTransformFeedbackFn =
558 reinterpret_cast<glBeginTransformFeedbackProc>(
559 GetGLProcAddress("glBeginTransformFeedback"));
560 DCHECK(fn.glBeginTransformFeedbackFn);
561 }
562
563 debug_fn.glBindBufferBaseFn = 0;
564 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
565 fn.glBindBufferBaseFn = reinterpret_cast<glBindBufferBaseProc>(
566 GetGLProcAddress("glBindBufferBase"));
567 DCHECK(fn.glBindBufferBaseFn);
568 }
569
570 debug_fn.glBindBufferRangeFn = 0;
571 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
572 fn.glBindBufferRangeFn = reinterpret_cast<glBindBufferRangeProc>(
573 GetGLProcAddress("glBindBufferRange"));
574 DCHECK(fn.glBindBufferRangeFn);
575 }
576
577 debug_fn.glBindFragDataLocationFn = 0;
578 if (ver->IsAtLeastGL(3u, 0u)) {
579 fn.glBindFragDataLocationFn = reinterpret_cast<glBindFragDataLocationProc>(
580 GetGLProcAddress("glBindFragDataLocation"));
581 DCHECK(fn.glBindFragDataLocationFn);
582 }
583
584 debug_fn.glBindFragDataLocationIndexedFn = 0;
585 if (ver->IsAtLeastGL(3u, 3u)) {
586 fn.glBindFragDataLocationIndexedFn =
587 reinterpret_cast<glBindFragDataLocationIndexedProc>(
588 GetGLProcAddress("glBindFragDataLocationIndexed"));
589 DCHECK(fn.glBindFragDataLocationIndexedFn);
590 }
591
974 debug_fn.glBindFramebufferEXTFn = 0; 592 debug_fn.glBindFramebufferEXTFn = 0;
975 if (ext.b_GL_EXT_framebuffer_object) { 593 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
594 fn.glBindFramebufferEXTFn = reinterpret_cast<glBindFramebufferEXTProc>(
595 GetGLProcAddress("glBindFramebuffer"));
596 DCHECK(fn.glBindFramebufferEXTFn);
597 } else if (ext.b_GL_EXT_framebuffer_object) {
976 fn.glBindFramebufferEXTFn = reinterpret_cast<glBindFramebufferEXTProc>( 598 fn.glBindFramebufferEXTFn = reinterpret_cast<glBindFramebufferEXTProc>(
977 GetGLProcAddress("glBindFramebufferEXT")); 599 GetGLProcAddress("glBindFramebufferEXT"));
978 } 600 DCHECK(fn.glBindFramebufferEXTFn);
979 if (!fn.glBindFramebufferEXTFn) { 601 }
980 fn.glBindFramebufferEXTFn = reinterpret_cast<glBindFramebufferEXTProc>( 602
981 GetGLProcAddress("glBindFramebuffer"));
982 }
983
984 fn.glBindRenderbufferEXTFn = 0;
985 debug_fn.glBindRenderbufferEXTFn = 0; 603 debug_fn.glBindRenderbufferEXTFn = 0;
986 if (ext.b_GL_EXT_framebuffer_object) { 604 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
605 fn.glBindRenderbufferEXTFn = reinterpret_cast<glBindRenderbufferEXTProc>(
606 GetGLProcAddress("glBindRenderbuffer"));
607 DCHECK(fn.glBindRenderbufferEXTFn);
608 } else if (ext.b_GL_EXT_framebuffer_object) {
987 fn.glBindRenderbufferEXTFn = reinterpret_cast<glBindRenderbufferEXTProc>( 609 fn.glBindRenderbufferEXTFn = reinterpret_cast<glBindRenderbufferEXTProc>(
988 GetGLProcAddress("glBindRenderbufferEXT")); 610 GetGLProcAddress("glBindRenderbufferEXT"));
989 } 611 DCHECK(fn.glBindRenderbufferEXTFn);
990 if (!fn.glBindRenderbufferEXTFn) { 612 }
991 fn.glBindRenderbufferEXTFn = reinterpret_cast<glBindRenderbufferEXTProc>( 613
992 GetGLProcAddress("glBindRenderbuffer")); 614 debug_fn.glBindSamplerFn = 0;
993 } 615 if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
994 616 fn.glBindSamplerFn =
995 fn.glBindVertexArrayOESFn = 0; 617 reinterpret_cast<glBindSamplerProc>(GetGLProcAddress("glBindSampler"));
618 DCHECK(fn.glBindSamplerFn);
619 }
620
621 debug_fn.glBindTransformFeedbackFn = 0;
622 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u)) {
623 fn.glBindTransformFeedbackFn =
624 reinterpret_cast<glBindTransformFeedbackProc>(
625 GetGLProcAddress("glBindTransformFeedback"));
626 DCHECK(fn.glBindTransformFeedbackFn);
627 }
628
996 debug_fn.glBindVertexArrayOESFn = 0; 629 debug_fn.glBindVertexArrayOESFn = 0;
997 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 630 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
998 ext.b_GL_ARB_vertex_array_object) { 631 ext.b_GL_ARB_vertex_array_object) {
999 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>( 632 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>(
1000 GetGLProcAddress("glBindVertexArray")); 633 GetGLProcAddress("glBindVertexArray"));
1001 } 634 DCHECK(fn.glBindVertexArrayOESFn);
1002 if (!fn.glBindVertexArrayOESFn && (ext.b_GL_OES_vertex_array_object)) { 635 } else if (ext.b_GL_OES_vertex_array_object) {
1003 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>( 636 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>(
1004 GetGLProcAddress("glBindVertexArrayOES")); 637 GetGLProcAddress("glBindVertexArrayOES"));
1005 } 638 DCHECK(fn.glBindVertexArrayOESFn);
1006 if (!fn.glBindVertexArrayOESFn) { 639 } else if (ext.b_GL_APPLE_vertex_array_object) {
1007 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>( 640 fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>(
1008 GetGLProcAddress("glBindVertexArrayAPPLE")); 641 GetGLProcAddress("glBindVertexArrayAPPLE"));
1009 } 642 DCHECK(fn.glBindVertexArrayOESFn);
1010 643 }
1011 fn.glBlendBarrierKHRFn = 0; 644
1012 debug_fn.glBlendBarrierKHRFn = 0; 645 debug_fn.glBlendBarrierKHRFn = 0;
1013 if (ext.b_GL_NV_blend_equation_advanced) { 646 if (ext.b_GL_NV_blend_equation_advanced) {
1014 fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>( 647 fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>(
1015 GetGLProcAddress("glBlendBarrierNV")); 648 GetGLProcAddress("glBlendBarrierNV"));
1016 } 649 DCHECK(fn.glBlendBarrierKHRFn);
1017 if (!fn.glBlendBarrierKHRFn) { 650 } else if (ext.b_GL_KHR_blend_equation_advanced) {
1018 fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>( 651 fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>(
1019 GetGLProcAddress("glBlendBarrierKHR")); 652 GetGLProcAddress("glBlendBarrierKHR"));
1020 } 653 DCHECK(fn.glBlendBarrierKHRFn);
1021 654 }
1022 fn.glBlitFramebufferANGLEFn = 0; 655
656 debug_fn.glBlitFramebufferFn = 0;
657 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
658 fn.glBlitFramebufferFn = reinterpret_cast<glBlitFramebufferProc>(
659 GetGLProcAddress("glBlitFramebuffer"));
660 DCHECK(fn.glBlitFramebufferFn);
661 }
662
1023 debug_fn.glBlitFramebufferANGLEFn = 0; 663 debug_fn.glBlitFramebufferANGLEFn = 0;
1024 if (ext.b_GL_ANGLE_framebuffer_blit) { 664 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
665 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>(
666 GetGLProcAddress("glBlitFramebuffer"));
667 DCHECK(fn.glBlitFramebufferANGLEFn);
668 } else if (ext.b_GL_ANGLE_framebuffer_blit) {
1025 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>( 669 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>(
1026 GetGLProcAddress("glBlitFramebufferANGLE")); 670 GetGLProcAddress("glBlitFramebufferANGLE"));
1027 } 671 DCHECK(fn.glBlitFramebufferANGLEFn);
1028 if (!fn.glBlitFramebufferANGLEFn) { 672 }
1029 fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>( 673
674 debug_fn.glBlitFramebufferEXTFn = 0;
675 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
676 fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>(
1030 GetGLProcAddress("glBlitFramebuffer")); 677 GetGLProcAddress("glBlitFramebuffer"));
1031 } 678 DCHECK(fn.glBlitFramebufferEXTFn);
1032 679 } else if (ext.b_GL_EXT_framebuffer_blit) {
1033 fn.glBlitFramebufferEXTFn = 0;
1034 debug_fn.glBlitFramebufferEXTFn = 0;
1035 if (ext.b_GL_EXT_framebuffer_blit) {
1036 fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>( 680 fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>(
1037 GetGLProcAddress("glBlitFramebufferEXT")); 681 GetGLProcAddress("glBlitFramebufferEXT"));
1038 } 682 DCHECK(fn.glBlitFramebufferEXTFn);
1039 if (!fn.glBlitFramebufferEXTFn) { 683 }
1040 fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>( 684
1041 GetGLProcAddress("glBlitFramebuffer"));
1042 }
1043
1044 fn.glCheckFramebufferStatusEXTFn = 0;
1045 debug_fn.glCheckFramebufferStatusEXTFn = 0; 685 debug_fn.glCheckFramebufferStatusEXTFn = 0;
1046 if (ext.b_GL_EXT_framebuffer_object) { 686 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
687 fn.glCheckFramebufferStatusEXTFn =
688 reinterpret_cast<glCheckFramebufferStatusEXTProc>(
689 GetGLProcAddress("glCheckFramebufferStatus"));
690 DCHECK(fn.glCheckFramebufferStatusEXTFn);
691 } else if (ext.b_GL_EXT_framebuffer_object) {
1047 fn.glCheckFramebufferStatusEXTFn = 692 fn.glCheckFramebufferStatusEXTFn =
1048 reinterpret_cast<glCheckFramebufferStatusEXTProc>( 693 reinterpret_cast<glCheckFramebufferStatusEXTProc>(
1049 GetGLProcAddress("glCheckFramebufferStatusEXT")); 694 GetGLProcAddress("glCheckFramebufferStatusEXT"));
1050 } 695 DCHECK(fn.glCheckFramebufferStatusEXTFn);
1051 if (!fn.glCheckFramebufferStatusEXTFn) { 696 }
1052 fn.glCheckFramebufferStatusEXTFn = 697
1053 reinterpret_cast<glCheckFramebufferStatusEXTProc>( 698 debug_fn.glClearBufferfiFn = 0;
1054 GetGLProcAddress("glCheckFramebufferStatus")); 699 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1055 } 700 fn.glClearBufferfiFn = reinterpret_cast<glClearBufferfiProc>(
1056 701 GetGLProcAddress("glClearBufferfi"));
1057 fn.glDeleteBuffersARBFn = 0; 702 DCHECK(fn.glClearBufferfiFn);
1058 debug_fn.glDeleteBuffersARBFn = 0; 703 }
1059 if (ext.b_GL_ARB_vertex_buffer_object) { 704
1060 fn.glDeleteBuffersARBFn = reinterpret_cast<glDeleteBuffersARBProc>( 705 debug_fn.glClearBufferfvFn = 0;
1061 GetGLProcAddress("glDeleteBuffersARB")); 706 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1062 } 707 fn.glClearBufferfvFn = reinterpret_cast<glClearBufferfvProc>(
1063 if (!fn.glDeleteBuffersARBFn) { 708 GetGLProcAddress("glClearBufferfv"));
1064 fn.glDeleteBuffersARBFn = reinterpret_cast<glDeleteBuffersARBProc>( 709 DCHECK(fn.glClearBufferfvFn);
1065 GetGLProcAddress("glDeleteBuffers")); 710 }
1066 } 711
1067 712 debug_fn.glClearBufferivFn = 0;
1068 fn.glDeleteFramebuffersEXTFn = 0; 713 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
714 fn.glClearBufferivFn = reinterpret_cast<glClearBufferivProc>(
715 GetGLProcAddress("glClearBufferiv"));
716 DCHECK(fn.glClearBufferivFn);
717 }
718
719 debug_fn.glClearBufferuivFn = 0;
720 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
721 fn.glClearBufferuivFn = reinterpret_cast<glClearBufferuivProc>(
722 GetGLProcAddress("glClearBufferuiv"));
723 DCHECK(fn.glClearBufferuivFn);
724 }
725
726 debug_fn.glClearDepthfFn = 0;
727 if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
728 fn.glClearDepthfFn =
729 reinterpret_cast<glClearDepthfProc>(GetGLProcAddress("glClearDepthf"));
730 DCHECK(fn.glClearDepthfFn);
731 }
732
733 debug_fn.glClientWaitSyncFn = 0;
734 if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
735 ext.b_GL_ARB_sync) {
736 fn.glClientWaitSyncFn = reinterpret_cast<glClientWaitSyncProc>(
737 GetGLProcAddress("glClientWaitSync"));
738 DCHECK(fn.glClientWaitSyncFn);
739 }
740
741 debug_fn.glCompressedTexImage3DFn = 0;
742 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
743 fn.glCompressedTexImage3DFn = reinterpret_cast<glCompressedTexImage3DProc>(
744 GetGLProcAddress("glCompressedTexImage3D"));
745 DCHECK(fn.glCompressedTexImage3DFn);
746 }
747
748 debug_fn.glCopyBufferSubDataFn = 0;
749 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
750 fn.glCopyBufferSubDataFn = reinterpret_cast<glCopyBufferSubDataProc>(
751 GetGLProcAddress("glCopyBufferSubData"));
752 DCHECK(fn.glCopyBufferSubDataFn);
753 }
754
755 debug_fn.glCopyTexSubImage3DFn = 0;
756 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
757 fn.glCopyTexSubImage3DFn = reinterpret_cast<glCopyTexSubImage3DProc>(
758 GetGLProcAddress("glCopyTexSubImage3D"));
759 DCHECK(fn.glCopyTexSubImage3DFn);
760 }
761
762 debug_fn.glDeleteFencesAPPLEFn = 0;
763 if (ext.b_GL_APPLE_fence) {
764 fn.glDeleteFencesAPPLEFn = reinterpret_cast<glDeleteFencesAPPLEProc>(
765 GetGLProcAddress("glDeleteFencesAPPLE"));
766 DCHECK(fn.glDeleteFencesAPPLEFn);
767 }
768
769 debug_fn.glDeleteFencesNVFn = 0;
770 if (ext.b_GL_NV_fence) {
771 fn.glDeleteFencesNVFn = reinterpret_cast<glDeleteFencesNVProc>(
772 GetGLProcAddress("glDeleteFencesNV"));
773 DCHECK(fn.glDeleteFencesNVFn);
774 }
775
1069 debug_fn.glDeleteFramebuffersEXTFn = 0; 776 debug_fn.glDeleteFramebuffersEXTFn = 0;
1070 if (ext.b_GL_EXT_framebuffer_object) { 777 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
778 fn.glDeleteFramebuffersEXTFn =
779 reinterpret_cast<glDeleteFramebuffersEXTProc>(
780 GetGLProcAddress("glDeleteFramebuffers"));
781 DCHECK(fn.glDeleteFramebuffersEXTFn);
782 } else if (ext.b_GL_EXT_framebuffer_object) {
1071 fn.glDeleteFramebuffersEXTFn = 783 fn.glDeleteFramebuffersEXTFn =
1072 reinterpret_cast<glDeleteFramebuffersEXTProc>( 784 reinterpret_cast<glDeleteFramebuffersEXTProc>(
1073 GetGLProcAddress("glDeleteFramebuffersEXT")); 785 GetGLProcAddress("glDeleteFramebuffersEXT"));
1074 } 786 DCHECK(fn.glDeleteFramebuffersEXTFn);
1075 if (!fn.glDeleteFramebuffersEXTFn) { 787 }
1076 fn.glDeleteFramebuffersEXTFn = 788
1077 reinterpret_cast<glDeleteFramebuffersEXTProc>( 789 debug_fn.glDeleteQueriesFn = 0;
1078 GetGLProcAddress("glDeleteFramebuffers")); 790 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1079 } 791 fn.glDeleteQueriesFn = reinterpret_cast<glDeleteQueriesProc>(
1080 792 GetGLProcAddress("glDeleteQueries"));
1081 fn.glDeleteQueriesARBFn = 0; 793 DCHECK(fn.glDeleteQueriesFn);
794 }
795
1082 debug_fn.glDeleteQueriesARBFn = 0; 796 debug_fn.glDeleteQueriesARBFn = 0;
1083 if (ext.b_GL_ARB_occlusion_query) { 797 if (ext.b_GL_ARB_occlusion_query) {
1084 fn.glDeleteQueriesARBFn = reinterpret_cast<glDeleteQueriesARBProc>( 798 fn.glDeleteQueriesARBFn = reinterpret_cast<glDeleteQueriesARBProc>(
1085 GetGLProcAddress("glDeleteQueriesARB")); 799 GetGLProcAddress("glDeleteQueriesARB"));
1086 } 800 DCHECK(fn.glDeleteQueriesARBFn);
1087 if (!fn.glDeleteQueriesARBFn) { 801 } else if (ext.b_GL_EXT_disjoint_timer_query ||
802 ext.b_GL_EXT_occlusion_query_boolean) {
1088 fn.glDeleteQueriesARBFn = reinterpret_cast<glDeleteQueriesARBProc>( 803 fn.glDeleteQueriesARBFn = reinterpret_cast<glDeleteQueriesARBProc>(
1089 GetGLProcAddress("glDeleteQueriesEXT")); 804 GetGLProcAddress("glDeleteQueriesEXT"));
1090 } 805 DCHECK(fn.glDeleteQueriesARBFn);
1091 806 }
1092 fn.glDeleteRenderbuffersEXTFn = 0; 807
1093 debug_fn.glDeleteRenderbuffersEXTFn = 0; 808 debug_fn.glDeleteRenderbuffersEXTFn = 0;
1094 if (ext.b_GL_EXT_framebuffer_object) { 809 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
810 fn.glDeleteRenderbuffersEXTFn =
811 reinterpret_cast<glDeleteRenderbuffersEXTProc>(
812 GetGLProcAddress("glDeleteRenderbuffers"));
813 DCHECK(fn.glDeleteRenderbuffersEXTFn);
814 } else if (ext.b_GL_EXT_framebuffer_object) {
1095 fn.glDeleteRenderbuffersEXTFn = 815 fn.glDeleteRenderbuffersEXTFn =
1096 reinterpret_cast<glDeleteRenderbuffersEXTProc>( 816 reinterpret_cast<glDeleteRenderbuffersEXTProc>(
1097 GetGLProcAddress("glDeleteRenderbuffersEXT")); 817 GetGLProcAddress("glDeleteRenderbuffersEXT"));
1098 } 818 DCHECK(fn.glDeleteRenderbuffersEXTFn);
1099 if (!fn.glDeleteRenderbuffersEXTFn) { 819 }
1100 fn.glDeleteRenderbuffersEXTFn = 820
1101 reinterpret_cast<glDeleteRenderbuffersEXTProc>( 821 debug_fn.glDeleteSamplersFn = 0;
1102 GetGLProcAddress("glDeleteRenderbuffers")); 822 if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
1103 } 823 fn.glDeleteSamplersFn = reinterpret_cast<glDeleteSamplersProc>(
1104 824 GetGLProcAddress("glDeleteSamplers"));
1105 fn.glDeleteVertexArraysOESFn = 0; 825 DCHECK(fn.glDeleteSamplersFn);
826 }
827
828 debug_fn.glDeleteSyncFn = 0;
829 if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
830 ext.b_GL_ARB_sync) {
831 fn.glDeleteSyncFn =
832 reinterpret_cast<glDeleteSyncProc>(GetGLProcAddress("glDeleteSync"));
833 DCHECK(fn.glDeleteSyncFn);
834 }
835
836 debug_fn.glDeleteTransformFeedbacksFn = 0;
837 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u)) {
838 fn.glDeleteTransformFeedbacksFn =
839 reinterpret_cast<glDeleteTransformFeedbacksProc>(
840 GetGLProcAddress("glDeleteTransformFeedbacks"));
841 DCHECK(fn.glDeleteTransformFeedbacksFn);
842 }
843
1106 debug_fn.glDeleteVertexArraysOESFn = 0; 844 debug_fn.glDeleteVertexArraysOESFn = 0;
1107 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 845 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
1108 ext.b_GL_ARB_vertex_array_object) { 846 ext.b_GL_ARB_vertex_array_object) {
1109 fn.glDeleteVertexArraysOESFn = 847 fn.glDeleteVertexArraysOESFn =
1110 reinterpret_cast<glDeleteVertexArraysOESProc>( 848 reinterpret_cast<glDeleteVertexArraysOESProc>(
1111 GetGLProcAddress("glDeleteVertexArrays")); 849 GetGLProcAddress("glDeleteVertexArrays"));
1112 } 850 DCHECK(fn.glDeleteVertexArraysOESFn);
1113 if (!fn.glDeleteVertexArraysOESFn && (ext.b_GL_OES_vertex_array_object)) { 851 } else if (ext.b_GL_OES_vertex_array_object) {
1114 fn.glDeleteVertexArraysOESFn = 852 fn.glDeleteVertexArraysOESFn =
1115 reinterpret_cast<glDeleteVertexArraysOESProc>( 853 reinterpret_cast<glDeleteVertexArraysOESProc>(
1116 GetGLProcAddress("glDeleteVertexArraysOES")); 854 GetGLProcAddress("glDeleteVertexArraysOES"));
1117 } 855 DCHECK(fn.glDeleteVertexArraysOESFn);
1118 if (!fn.glDeleteVertexArraysOESFn) { 856 } else if (ext.b_GL_APPLE_vertex_array_object) {
1119 fn.glDeleteVertexArraysOESFn = 857 fn.glDeleteVertexArraysOESFn =
1120 reinterpret_cast<glDeleteVertexArraysOESProc>( 858 reinterpret_cast<glDeleteVertexArraysOESProc>(
1121 GetGLProcAddress("glDeleteVertexArraysAPPLE")); 859 GetGLProcAddress("glDeleteVertexArraysAPPLE"));
1122 } 860 DCHECK(fn.glDeleteVertexArraysOESFn);
1123 861 }
1124 fn.glDrawArraysInstancedANGLEFn = 0; 862
863 debug_fn.glDepthRangefFn = 0;
864 if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
865 fn.glDepthRangefFn =
866 reinterpret_cast<glDepthRangefProc>(GetGLProcAddress("glDepthRangef"));
867 DCHECK(fn.glDepthRangefFn);
868 }
869
870 debug_fn.glDiscardFramebufferEXTFn = 0;
871 if (ext.b_GL_EXT_discard_framebuffer) {
872 fn.glDiscardFramebufferEXTFn =
873 reinterpret_cast<glDiscardFramebufferEXTProc>(
874 GetGLProcAddress("glDiscardFramebufferEXT"));
875 DCHECK(fn.glDiscardFramebufferEXTFn);
876 }
877
1125 debug_fn.glDrawArraysInstancedANGLEFn = 0; 878 debug_fn.glDrawArraysInstancedANGLEFn = 0;
1126 if (ext.b_GL_ARB_draw_instanced) { 879 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
880 fn.glDrawArraysInstancedANGLEFn =
881 reinterpret_cast<glDrawArraysInstancedANGLEProc>(
882 GetGLProcAddress("glDrawArraysInstanced"));
883 DCHECK(fn.glDrawArraysInstancedANGLEFn);
884 } else if (ext.b_GL_ARB_draw_instanced) {
1127 fn.glDrawArraysInstancedANGLEFn = 885 fn.glDrawArraysInstancedANGLEFn =
1128 reinterpret_cast<glDrawArraysInstancedANGLEProc>( 886 reinterpret_cast<glDrawArraysInstancedANGLEProc>(
1129 GetGLProcAddress("glDrawArraysInstancedARB")); 887 GetGLProcAddress("glDrawArraysInstancedARB"));
1130 } 888 DCHECK(fn.glDrawArraysInstancedANGLEFn);
1131 if (!fn.glDrawArraysInstancedANGLEFn && (ext.b_GL_ANGLE_instanced_arrays)) { 889 } else if (ext.b_GL_ANGLE_instanced_arrays) {
1132 fn.glDrawArraysInstancedANGLEFn = 890 fn.glDrawArraysInstancedANGLEFn =
1133 reinterpret_cast<glDrawArraysInstancedANGLEProc>( 891 reinterpret_cast<glDrawArraysInstancedANGLEProc>(
1134 GetGLProcAddress("glDrawArraysInstancedANGLE")); 892 GetGLProcAddress("glDrawArraysInstancedANGLE"));
1135 } 893 DCHECK(fn.glDrawArraysInstancedANGLEFn);
1136 if (!fn.glDrawArraysInstancedANGLEFn) { 894 }
1137 fn.glDrawArraysInstancedANGLEFn = 895
1138 reinterpret_cast<glDrawArraysInstancedANGLEProc>( 896 debug_fn.glDrawBufferFn = 0;
1139 GetGLProcAddress("glDrawArraysInstanced")); 897 if (!ver->is_es) {
1140 } 898 fn.glDrawBufferFn =
1141 899 reinterpret_cast<glDrawBufferProc>(GetGLProcAddress("glDrawBuffer"));
1142 fn.glDrawBuffersARBFn = 0; 900 DCHECK(fn.glDrawBufferFn);
901 }
902
1143 debug_fn.glDrawBuffersARBFn = 0; 903 debug_fn.glDrawBuffersARBFn = 0;
1144 if (ext.b_GL_ARB_draw_buffers) { 904 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
905 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>(
906 GetGLProcAddress("glDrawBuffers"));
907 DCHECK(fn.glDrawBuffersARBFn);
908 } else if (ext.b_GL_ARB_draw_buffers) {
1145 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>( 909 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>(
1146 GetGLProcAddress("glDrawBuffersARB")); 910 GetGLProcAddress("glDrawBuffersARB"));
1147 } 911 DCHECK(fn.glDrawBuffersARBFn);
1148 if (!fn.glDrawBuffersARBFn && (ext.b_GL_EXT_draw_buffers)) { 912 } else if (ext.b_GL_EXT_draw_buffers) {
1149 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>( 913 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>(
1150 GetGLProcAddress("glDrawBuffersEXT")); 914 GetGLProcAddress("glDrawBuffersEXT"));
1151 } 915 DCHECK(fn.glDrawBuffersARBFn);
1152 if (!fn.glDrawBuffersARBFn) { 916 }
1153 fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>( 917
1154 GetGLProcAddress("glDrawBuffers"));
1155 }
1156
1157 fn.glDrawElementsInstancedANGLEFn = 0;
1158 debug_fn.glDrawElementsInstancedANGLEFn = 0; 918 debug_fn.glDrawElementsInstancedANGLEFn = 0;
1159 if (ext.b_GL_ARB_draw_instanced) { 919 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
920 fn.glDrawElementsInstancedANGLEFn =
921 reinterpret_cast<glDrawElementsInstancedANGLEProc>(
922 GetGLProcAddress("glDrawElementsInstanced"));
923 DCHECK(fn.glDrawElementsInstancedANGLEFn);
924 } else if (ext.b_GL_ARB_draw_instanced) {
1160 fn.glDrawElementsInstancedANGLEFn = 925 fn.glDrawElementsInstancedANGLEFn =
1161 reinterpret_cast<glDrawElementsInstancedANGLEProc>( 926 reinterpret_cast<glDrawElementsInstancedANGLEProc>(
1162 GetGLProcAddress("glDrawElementsInstancedARB")); 927 GetGLProcAddress("glDrawElementsInstancedARB"));
1163 } 928 DCHECK(fn.glDrawElementsInstancedANGLEFn);
1164 if (!fn.glDrawElementsInstancedANGLEFn && (ext.b_GL_ANGLE_instanced_arrays)) { 929 } else if (ext.b_GL_ANGLE_instanced_arrays) {
1165 fn.glDrawElementsInstancedANGLEFn = 930 fn.glDrawElementsInstancedANGLEFn =
1166 reinterpret_cast<glDrawElementsInstancedANGLEProc>( 931 reinterpret_cast<glDrawElementsInstancedANGLEProc>(
1167 GetGLProcAddress("glDrawElementsInstancedANGLE")); 932 GetGLProcAddress("glDrawElementsInstancedANGLE"));
1168 } 933 DCHECK(fn.glDrawElementsInstancedANGLEFn);
1169 if (!fn.glDrawElementsInstancedANGLEFn) { 934 }
1170 fn.glDrawElementsInstancedANGLEFn = 935
1171 reinterpret_cast<glDrawElementsInstancedANGLEProc>( 936 debug_fn.glDrawRangeElementsFn = 0;
1172 GetGLProcAddress("glDrawElementsInstanced")); 937 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1173 } 938 fn.glDrawRangeElementsFn = reinterpret_cast<glDrawRangeElementsProc>(
1174 939 GetGLProcAddress("glDrawRangeElements"));
1175 fn.glEndQueryARBFn = 0; 940 DCHECK(fn.glDrawRangeElementsFn);
941 }
942
943 debug_fn.glEGLImageTargetRenderbufferStorageOESFn = 0;
944 if (ext.b_GL_OES_EGL_image) {
945 fn.glEGLImageTargetRenderbufferStorageOESFn =
946 reinterpret_cast<glEGLImageTargetRenderbufferStorageOESProc>(
947 GetGLProcAddress("glEGLImageTargetRenderbufferStorageOES"));
948 DCHECK(fn.glEGLImageTargetRenderbufferStorageOESFn);
949 }
950
951 debug_fn.glEGLImageTargetTexture2DOESFn = 0;
952 if (ext.b_GL_OES_EGL_image) {
953 fn.glEGLImageTargetTexture2DOESFn =
954 reinterpret_cast<glEGLImageTargetTexture2DOESProc>(
955 GetGLProcAddress("glEGLImageTargetTexture2DOES"));
956 DCHECK(fn.glEGLImageTargetTexture2DOESFn);
957 }
958
959 debug_fn.glEndQueryFn = 0;
960 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
961 fn.glEndQueryFn =
962 reinterpret_cast<glEndQueryProc>(GetGLProcAddress("glEndQuery"));
963 DCHECK(fn.glEndQueryFn);
964 }
965
1176 debug_fn.glEndQueryARBFn = 0; 966 debug_fn.glEndQueryARBFn = 0;
1177 if (ext.b_GL_ARB_occlusion_query) { 967 if (ext.b_GL_ARB_occlusion_query) {
1178 fn.glEndQueryARBFn = 968 fn.glEndQueryARBFn =
1179 reinterpret_cast<glEndQueryARBProc>(GetGLProcAddress("glEndQueryARB")); 969 reinterpret_cast<glEndQueryARBProc>(GetGLProcAddress("glEndQueryARB"));
1180 } 970 DCHECK(fn.glEndQueryARBFn);
1181 if (!fn.glEndQueryARBFn) { 971 } else if (ext.b_GL_EXT_disjoint_timer_query ||
972 ext.b_GL_EXT_occlusion_query_boolean) {
1182 fn.glEndQueryARBFn = 973 fn.glEndQueryARBFn =
1183 reinterpret_cast<glEndQueryARBProc>(GetGLProcAddress("glEndQueryEXT")); 974 reinterpret_cast<glEndQueryARBProc>(GetGLProcAddress("glEndQueryEXT"));
1184 } 975 DCHECK(fn.glEndQueryARBFn);
1185 976 }
1186 fn.glFramebufferRenderbufferEXTFn = 0; 977
978 debug_fn.glEndTransformFeedbackFn = 0;
979 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
980 fn.glEndTransformFeedbackFn = reinterpret_cast<glEndTransformFeedbackProc>(
981 GetGLProcAddress("glEndTransformFeedback"));
982 DCHECK(fn.glEndTransformFeedbackFn);
983 }
984
985 debug_fn.glFenceSyncFn = 0;
986 if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
987 ext.b_GL_ARB_sync) {
988 fn.glFenceSyncFn =
989 reinterpret_cast<glFenceSyncProc>(GetGLProcAddress("glFenceSync"));
990 DCHECK(fn.glFenceSyncFn);
991 }
992
993 debug_fn.glFinishFenceAPPLEFn = 0;
994 if (ext.b_GL_APPLE_fence) {
995 fn.glFinishFenceAPPLEFn = reinterpret_cast<glFinishFenceAPPLEProc>(
996 GetGLProcAddress("glFinishFenceAPPLE"));
997 DCHECK(fn.glFinishFenceAPPLEFn);
998 }
999
1000 debug_fn.glFinishFenceNVFn = 0;
1001 if (ext.b_GL_NV_fence) {
1002 fn.glFinishFenceNVFn = reinterpret_cast<glFinishFenceNVProc>(
1003 GetGLProcAddress("glFinishFenceNV"));
1004 DCHECK(fn.glFinishFenceNVFn);
1005 }
1006
1007 debug_fn.glFlushMappedBufferRangeFn = 0;
1008 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1009 fn.glFlushMappedBufferRangeFn =
1010 reinterpret_cast<glFlushMappedBufferRangeProc>(
1011 GetGLProcAddress("glFlushMappedBufferRange"));
1012 DCHECK(fn.glFlushMappedBufferRangeFn);
1013 }
1014
1187 debug_fn.glFramebufferRenderbufferEXTFn = 0; 1015 debug_fn.glFramebufferRenderbufferEXTFn = 0;
1188 if (ext.b_GL_EXT_framebuffer_object) { 1016 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
1017 fn.glFramebufferRenderbufferEXTFn =
1018 reinterpret_cast<glFramebufferRenderbufferEXTProc>(
1019 GetGLProcAddress("glFramebufferRenderbuffer"));
1020 DCHECK(fn.glFramebufferRenderbufferEXTFn);
1021 } else if (ext.b_GL_EXT_framebuffer_object) {
1189 fn.glFramebufferRenderbufferEXTFn = 1022 fn.glFramebufferRenderbufferEXTFn =
1190 reinterpret_cast<glFramebufferRenderbufferEXTProc>( 1023 reinterpret_cast<glFramebufferRenderbufferEXTProc>(
1191 GetGLProcAddress("glFramebufferRenderbufferEXT")); 1024 GetGLProcAddress("glFramebufferRenderbufferEXT"));
1192 } 1025 DCHECK(fn.glFramebufferRenderbufferEXTFn);
1193 if (!fn.glFramebufferRenderbufferEXTFn) { 1026 }
1194 fn.glFramebufferRenderbufferEXTFn = 1027
1195 reinterpret_cast<glFramebufferRenderbufferEXTProc>(
1196 GetGLProcAddress("glFramebufferRenderbuffer"));
1197 }
1198
1199 fn.glFramebufferTexture2DEXTFn = 0;
1200 debug_fn.glFramebufferTexture2DEXTFn = 0; 1028 debug_fn.glFramebufferTexture2DEXTFn = 0;
1201 if (ext.b_GL_EXT_framebuffer_object) { 1029 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
1030 fn.glFramebufferTexture2DEXTFn =
1031 reinterpret_cast<glFramebufferTexture2DEXTProc>(
1032 GetGLProcAddress("glFramebufferTexture2D"));
1033 DCHECK(fn.glFramebufferTexture2DEXTFn);
1034 } else if (ext.b_GL_EXT_framebuffer_object) {
1202 fn.glFramebufferTexture2DEXTFn = 1035 fn.glFramebufferTexture2DEXTFn =
1203 reinterpret_cast<glFramebufferTexture2DEXTProc>( 1036 reinterpret_cast<glFramebufferTexture2DEXTProc>(
1204 GetGLProcAddress("glFramebufferTexture2DEXT")); 1037 GetGLProcAddress("glFramebufferTexture2DEXT"));
1205 } 1038 DCHECK(fn.glFramebufferTexture2DEXTFn);
1206 if (!fn.glFramebufferTexture2DEXTFn) { 1039 }
1207 fn.glFramebufferTexture2DEXTFn = 1040
1208 reinterpret_cast<glFramebufferTexture2DEXTProc>( 1041 debug_fn.glFramebufferTexture2DMultisampleEXTFn = 0;
1209 GetGLProcAddress("glFramebufferTexture2D")); 1042 if (ext.b_GL_EXT_multisampled_render_to_texture) {
1210 } 1043 fn.glFramebufferTexture2DMultisampleEXTFn =
1211 1044 reinterpret_cast<glFramebufferTexture2DMultisampleEXTProc>(
1212 fn.glGenBuffersARBFn = 0; 1045 GetGLProcAddress("glFramebufferTexture2DMultisampleEXT"));
1213 debug_fn.glGenBuffersARBFn = 0; 1046 DCHECK(fn.glFramebufferTexture2DMultisampleEXTFn);
1214 if (ext.b_GL_ARB_vertex_buffer_object) { 1047 }
1215 fn.glGenBuffersARBFn = reinterpret_cast<glGenBuffersARBProc>( 1048
1216 GetGLProcAddress("glGenBuffersARB")); 1049 debug_fn.glFramebufferTexture2DMultisampleIMGFn = 0;
1217 } 1050 if (ext.b_GL_IMG_multisampled_render_to_texture) {
1218 if (!fn.glGenBuffersARBFn) { 1051 fn.glFramebufferTexture2DMultisampleIMGFn =
1219 fn.glGenBuffersARBFn = 1052 reinterpret_cast<glFramebufferTexture2DMultisampleIMGProc>(
1220 reinterpret_cast<glGenBuffersARBProc>(GetGLProcAddress("glGenBuffers")); 1053 GetGLProcAddress("glFramebufferTexture2DMultisampleIMG"));
1221 } 1054 DCHECK(fn.glFramebufferTexture2DMultisampleIMGFn);
1222 1055 }
1223 fn.glGenerateMipmapEXTFn = 0; 1056
1057 debug_fn.glFramebufferTextureLayerFn = 0;
1058 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1059 fn.glFramebufferTextureLayerFn =
1060 reinterpret_cast<glFramebufferTextureLayerProc>(
1061 GetGLProcAddress("glFramebufferTextureLayer"));
1062 DCHECK(fn.glFramebufferTextureLayerFn);
1063 }
1064
1224 debug_fn.glGenerateMipmapEXTFn = 0; 1065 debug_fn.glGenerateMipmapEXTFn = 0;
1225 if (ext.b_GL_EXT_framebuffer_object) { 1066 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
1067 fn.glGenerateMipmapEXTFn = reinterpret_cast<glGenerateMipmapEXTProc>(
1068 GetGLProcAddress("glGenerateMipmap"));
1069 DCHECK(fn.glGenerateMipmapEXTFn);
1070 } else if (ext.b_GL_EXT_framebuffer_object) {
1226 fn.glGenerateMipmapEXTFn = reinterpret_cast<glGenerateMipmapEXTProc>( 1071 fn.glGenerateMipmapEXTFn = reinterpret_cast<glGenerateMipmapEXTProc>(
1227 GetGLProcAddress("glGenerateMipmapEXT")); 1072 GetGLProcAddress("glGenerateMipmapEXT"));
1228 } 1073 DCHECK(fn.glGenerateMipmapEXTFn);
1229 if (!fn.glGenerateMipmapEXTFn) { 1074 }
1230 fn.glGenerateMipmapEXTFn = reinterpret_cast<glGenerateMipmapEXTProc>( 1075
1231 GetGLProcAddress("glGenerateMipmap")); 1076 debug_fn.glGenFencesAPPLEFn = 0;
1232 } 1077 if (ext.b_GL_APPLE_fence) {
1233 1078 fn.glGenFencesAPPLEFn = reinterpret_cast<glGenFencesAPPLEProc>(
1234 fn.glGenFramebuffersEXTFn = 0; 1079 GetGLProcAddress("glGenFencesAPPLE"));
1080 DCHECK(fn.glGenFencesAPPLEFn);
1081 }
1082
1083 debug_fn.glGenFencesNVFn = 0;
1084 if (ext.b_GL_NV_fence) {
1085 fn.glGenFencesNVFn =
1086 reinterpret_cast<glGenFencesNVProc>(GetGLProcAddress("glGenFencesNV"));
1087 DCHECK(fn.glGenFencesNVFn);
1088 }
1089
1235 debug_fn.glGenFramebuffersEXTFn = 0; 1090 debug_fn.glGenFramebuffersEXTFn = 0;
1236 if (ext.b_GL_EXT_framebuffer_object) { 1091 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
1092 fn.glGenFramebuffersEXTFn = reinterpret_cast<glGenFramebuffersEXTProc>(
1093 GetGLProcAddress("glGenFramebuffers"));
1094 DCHECK(fn.glGenFramebuffersEXTFn);
1095 } else if (ext.b_GL_EXT_framebuffer_object) {
1237 fn.glGenFramebuffersEXTFn = reinterpret_cast<glGenFramebuffersEXTProc>( 1096 fn.glGenFramebuffersEXTFn = reinterpret_cast<glGenFramebuffersEXTProc>(
1238 GetGLProcAddress("glGenFramebuffersEXT")); 1097 GetGLProcAddress("glGenFramebuffersEXT"));
1239 } 1098 DCHECK(fn.glGenFramebuffersEXTFn);
1240 if (!fn.glGenFramebuffersEXTFn) { 1099 }
1241 fn.glGenFramebuffersEXTFn = reinterpret_cast<glGenFramebuffersEXTProc>( 1100
1242 GetGLProcAddress("glGenFramebuffers")); 1101 debug_fn.glGenQueriesFn = 0;
1243 } 1102 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1244 1103 fn.glGenQueriesFn =
1245 fn.glGenQueriesARBFn = 0; 1104 reinterpret_cast<glGenQueriesProc>(GetGLProcAddress("glGenQueries"));
1105 DCHECK(fn.glGenQueriesFn);
1106 }
1107
1246 debug_fn.glGenQueriesARBFn = 0; 1108 debug_fn.glGenQueriesARBFn = 0;
1247 if (ext.b_GL_ARB_occlusion_query) { 1109 if (ext.b_GL_ARB_occlusion_query) {
1248 fn.glGenQueriesARBFn = reinterpret_cast<glGenQueriesARBProc>( 1110 fn.glGenQueriesARBFn = reinterpret_cast<glGenQueriesARBProc>(
1249 GetGLProcAddress("glGenQueriesARB")); 1111 GetGLProcAddress("glGenQueriesARB"));
1250 } 1112 DCHECK(fn.glGenQueriesARBFn);
1251 if (!fn.glGenQueriesARBFn) { 1113 } else if (ext.b_GL_EXT_disjoint_timer_query ||
1114 ext.b_GL_EXT_occlusion_query_boolean) {
1252 fn.glGenQueriesARBFn = reinterpret_cast<glGenQueriesARBProc>( 1115 fn.glGenQueriesARBFn = reinterpret_cast<glGenQueriesARBProc>(
1253 GetGLProcAddress("glGenQueriesEXT")); 1116 GetGLProcAddress("glGenQueriesEXT"));
1254 } 1117 DCHECK(fn.glGenQueriesARBFn);
1255 1118 }
1256 fn.glGenRenderbuffersEXTFn = 0; 1119
1257 debug_fn.glGenRenderbuffersEXTFn = 0; 1120 debug_fn.glGenRenderbuffersEXTFn = 0;
1258 if (ext.b_GL_EXT_framebuffer_object) { 1121 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
1122 fn.glGenRenderbuffersEXTFn = reinterpret_cast<glGenRenderbuffersEXTProc>(
1123 GetGLProcAddress("glGenRenderbuffers"));
1124 DCHECK(fn.glGenRenderbuffersEXTFn);
1125 } else if (ext.b_GL_EXT_framebuffer_object) {
1259 fn.glGenRenderbuffersEXTFn = reinterpret_cast<glGenRenderbuffersEXTProc>( 1126 fn.glGenRenderbuffersEXTFn = reinterpret_cast<glGenRenderbuffersEXTProc>(
1260 GetGLProcAddress("glGenRenderbuffersEXT")); 1127 GetGLProcAddress("glGenRenderbuffersEXT"));
1261 } 1128 DCHECK(fn.glGenRenderbuffersEXTFn);
1262 if (!fn.glGenRenderbuffersEXTFn) { 1129 }
1263 fn.glGenRenderbuffersEXTFn = reinterpret_cast<glGenRenderbuffersEXTProc>( 1130
1264 GetGLProcAddress("glGenRenderbuffers")); 1131 debug_fn.glGenSamplersFn = 0;
1265 } 1132 if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
1266 1133 fn.glGenSamplersFn =
1267 fn.glGenVertexArraysOESFn = 0; 1134 reinterpret_cast<glGenSamplersProc>(GetGLProcAddress("glGenSamplers"));
1135 DCHECK(fn.glGenSamplersFn);
1136 }
1137
1138 debug_fn.glGenTransformFeedbacksFn = 0;
1139 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u)) {
1140 fn.glGenTransformFeedbacksFn =
1141 reinterpret_cast<glGenTransformFeedbacksProc>(
1142 GetGLProcAddress("glGenTransformFeedbacks"));
1143 DCHECK(fn.glGenTransformFeedbacksFn);
1144 }
1145
1268 debug_fn.glGenVertexArraysOESFn = 0; 1146 debug_fn.glGenVertexArraysOESFn = 0;
1269 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 1147 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
1270 ext.b_GL_ARB_vertex_array_object) { 1148 ext.b_GL_ARB_vertex_array_object) {
1271 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>( 1149 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>(
1272 GetGLProcAddress("glGenVertexArrays")); 1150 GetGLProcAddress("glGenVertexArrays"));
1273 } 1151 DCHECK(fn.glGenVertexArraysOESFn);
1274 if (!fn.glGenVertexArraysOESFn && (ext.b_GL_OES_vertex_array_object)) { 1152 } else if (ext.b_GL_OES_vertex_array_object) {
1275 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>( 1153 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>(
1276 GetGLProcAddress("glGenVertexArraysOES")); 1154 GetGLProcAddress("glGenVertexArraysOES"));
1277 } 1155 DCHECK(fn.glGenVertexArraysOESFn);
1278 if (!fn.glGenVertexArraysOESFn) { 1156 } else if (ext.b_GL_APPLE_vertex_array_object) {
1279 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>( 1157 fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>(
1280 GetGLProcAddress("glGenVertexArraysAPPLE")); 1158 GetGLProcAddress("glGenVertexArraysAPPLE"));
1281 } 1159 DCHECK(fn.glGenVertexArraysOESFn);
1282 1160 }
1283 fn.glGetFramebufferAttachmentParameterivEXTFn = 0; 1161
1162 debug_fn.glGetActiveUniformBlockivFn = 0;
1163 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
1164 fn.glGetActiveUniformBlockivFn =
1165 reinterpret_cast<glGetActiveUniformBlockivProc>(
1166 GetGLProcAddress("glGetActiveUniformBlockiv"));
1167 DCHECK(fn.glGetActiveUniformBlockivFn);
1168 }
1169
1170 debug_fn.glGetActiveUniformBlockNameFn = 0;
1171 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
1172 fn.glGetActiveUniformBlockNameFn =
1173 reinterpret_cast<glGetActiveUniformBlockNameProc>(
1174 GetGLProcAddress("glGetActiveUniformBlockName"));
1175 DCHECK(fn.glGetActiveUniformBlockNameFn);
1176 }
1177
1178 debug_fn.glGetActiveUniformsivFn = 0;
1179 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
1180 fn.glGetActiveUniformsivFn = reinterpret_cast<glGetActiveUniformsivProc>(
1181 GetGLProcAddress("glGetActiveUniformsiv"));
1182 DCHECK(fn.glGetActiveUniformsivFn);
1183 }
1184
1185 debug_fn.glGetFenceivNVFn = 0;
1186 if (ext.b_GL_NV_fence) {
1187 fn.glGetFenceivNVFn = reinterpret_cast<glGetFenceivNVProc>(
1188 GetGLProcAddress("glGetFenceivNV"));
1189 DCHECK(fn.glGetFenceivNVFn);
1190 }
1191
1192 debug_fn.glGetFragDataLocationFn = 0;
1193 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1194 fn.glGetFragDataLocationFn = reinterpret_cast<glGetFragDataLocationProc>(
1195 GetGLProcAddress("glGetFragDataLocation"));
1196 DCHECK(fn.glGetFragDataLocationFn);
1197 }
1198
1284 debug_fn.glGetFramebufferAttachmentParameterivEXTFn = 0; 1199 debug_fn.glGetFramebufferAttachmentParameterivEXTFn = 0;
1285 if (ext.b_GL_EXT_framebuffer_object) { 1200 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
1201 fn.glGetFramebufferAttachmentParameterivEXTFn =
1202 reinterpret_cast<glGetFramebufferAttachmentParameterivEXTProc>(
1203 GetGLProcAddress("glGetFramebufferAttachmentParameteriv"));
1204 DCHECK(fn.glGetFramebufferAttachmentParameterivEXTFn);
1205 } else if (ext.b_GL_EXT_framebuffer_object) {
1286 fn.glGetFramebufferAttachmentParameterivEXTFn = 1206 fn.glGetFramebufferAttachmentParameterivEXTFn =
1287 reinterpret_cast<glGetFramebufferAttachmentParameterivEXTProc>( 1207 reinterpret_cast<glGetFramebufferAttachmentParameterivEXTProc>(
1288 GetGLProcAddress("glGetFramebufferAttachmentParameterivEXT")); 1208 GetGLProcAddress("glGetFramebufferAttachmentParameterivEXT"));
1289 } 1209 DCHECK(fn.glGetFramebufferAttachmentParameterivEXTFn);
1290 if (!fn.glGetFramebufferAttachmentParameterivEXTFn) { 1210 }
1291 fn.glGetFramebufferAttachmentParameterivEXTFn = 1211
1292 reinterpret_cast<glGetFramebufferAttachmentParameterivEXTProc>(
1293 GetGLProcAddress("glGetFramebufferAttachmentParameteriv"));
1294 }
1295
1296 fn.glGetGraphicsResetStatusARBFn = 0;
1297 debug_fn.glGetGraphicsResetStatusARBFn = 0; 1212 debug_fn.glGetGraphicsResetStatusARBFn = 0;
1298 if (ext.b_GL_ARB_robustness) { 1213 if (ver->IsAtLeastGL(4u, 5u)) {
1214 fn.glGetGraphicsResetStatusARBFn =
1215 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
1216 GetGLProcAddress("glGetGraphicsResetStatus"));
1217 DCHECK(fn.glGetGraphicsResetStatusARBFn);
1218 } else if (ext.b_GL_ARB_robustness) {
1299 fn.glGetGraphicsResetStatusARBFn = 1219 fn.glGetGraphicsResetStatusARBFn =
1300 reinterpret_cast<glGetGraphicsResetStatusARBProc>( 1220 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
1301 GetGLProcAddress("glGetGraphicsResetStatusARB")); 1221 GetGLProcAddress("glGetGraphicsResetStatusARB"));
1302 } 1222 DCHECK(fn.glGetGraphicsResetStatusARBFn);
1303 if (!fn.glGetGraphicsResetStatusARBFn && (ext.b_GL_KHR_robustness)) { 1223 } else if (ext.b_GL_KHR_robustness) {
1304 fn.glGetGraphicsResetStatusARBFn = 1224 fn.glGetGraphicsResetStatusARBFn =
1305 reinterpret_cast<glGetGraphicsResetStatusARBProc>( 1225 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
1306 GetGLProcAddress("glGetGraphicsResetStatusKHR")); 1226 GetGLProcAddress("glGetGraphicsResetStatusKHR"));
1307 } 1227 DCHECK(fn.glGetGraphicsResetStatusARBFn);
1308 if (!fn.glGetGraphicsResetStatusARBFn && (ext.b_GL_EXT_robustness)) { 1228 } else if (ext.b_GL_EXT_robustness) {
1309 fn.glGetGraphicsResetStatusARBFn = 1229 fn.glGetGraphicsResetStatusARBFn =
1310 reinterpret_cast<glGetGraphicsResetStatusARBProc>( 1230 reinterpret_cast<glGetGraphicsResetStatusARBProc>(
1311 GetGLProcAddress("glGetGraphicsResetStatusEXT")); 1231 GetGLProcAddress("glGetGraphicsResetStatusEXT"));
1312 } 1232 DCHECK(fn.glGetGraphicsResetStatusARBFn);
1313 if (!fn.glGetGraphicsResetStatusARBFn) { 1233 }
1314 fn.glGetGraphicsResetStatusARBFn = 1234
1315 reinterpret_cast<glGetGraphicsResetStatusARBProc>( 1235 debug_fn.glGetInteger64i_vFn = 0;
1316 GetGLProcAddress("glGetGraphicsResetStatus")); 1236 if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u)) {
1317 } 1237 fn.glGetInteger64i_vFn = reinterpret_cast<glGetInteger64i_vProc>(
1318 1238 GetGLProcAddress("glGetInteger64i_v"));
1319 fn.glGetProgramBinaryFn = 0; 1239 DCHECK(fn.glGetInteger64i_vFn);
1240 }
1241
1242 debug_fn.glGetInteger64vFn = 0;
1243 if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u)) {
1244 fn.glGetInteger64vFn = reinterpret_cast<glGetInteger64vProc>(
1245 GetGLProcAddress("glGetInteger64v"));
1246 DCHECK(fn.glGetInteger64vFn);
1247 }
1248
1249 debug_fn.glGetIntegeri_vFn = 0;
1250 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1251 fn.glGetIntegeri_vFn = reinterpret_cast<glGetIntegeri_vProc>(
1252 GetGLProcAddress("glGetIntegeri_v"));
1253 DCHECK(fn.glGetIntegeri_vFn);
1254 }
1255
1256 debug_fn.glGetInternalformativFn = 0;
1257 if (ver->IsAtLeastGL(4u, 2u) || ver->IsAtLeastGLES(3u, 0u)) {
1258 fn.glGetInternalformativFn = reinterpret_cast<glGetInternalformativProc>(
1259 GetGLProcAddress("glGetInternalformativ"));
1260 DCHECK(fn.glGetInternalformativFn);
1261 }
1262
1320 debug_fn.glGetProgramBinaryFn = 0; 1263 debug_fn.glGetProgramBinaryFn = 0;
1321 if (ext.b_GL_OES_get_program_binary) { 1264 if (ver->IsAtLeastGL(4u, 1u) || ver->IsAtLeastGLES(3u, 0u) ||
1265 ext.b_GL_ARB_get_program_binary) {
1266 fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>(
1267 GetGLProcAddress("glGetProgramBinary"));
1268 DCHECK(fn.glGetProgramBinaryFn);
1269 } else if (ext.b_GL_OES_get_program_binary) {
1322 fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>( 1270 fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>(
1323 GetGLProcAddress("glGetProgramBinaryOES")); 1271 GetGLProcAddress("glGetProgramBinaryOES"));
1324 } 1272 DCHECK(fn.glGetProgramBinaryFn);
1325 if (!fn.glGetProgramBinaryFn) { 1273 }
1326 fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>( 1274
1327 GetGLProcAddress("glGetProgramBinary")); 1275 debug_fn.glGetQueryivFn = 0;
1328 } 1276 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1329 1277 fn.glGetQueryivFn =
1330 fn.glGetQueryivARBFn = 0; 1278 reinterpret_cast<glGetQueryivProc>(GetGLProcAddress("glGetQueryiv"));
1279 DCHECK(fn.glGetQueryivFn);
1280 }
1281
1331 debug_fn.glGetQueryivARBFn = 0; 1282 debug_fn.glGetQueryivARBFn = 0;
1332 if (ext.b_GL_ARB_occlusion_query) { 1283 if (ext.b_GL_ARB_occlusion_query) {
1333 fn.glGetQueryivARBFn = reinterpret_cast<glGetQueryivARBProc>( 1284 fn.glGetQueryivARBFn = reinterpret_cast<glGetQueryivARBProc>(
1334 GetGLProcAddress("glGetQueryivARB")); 1285 GetGLProcAddress("glGetQueryivARB"));
1335 } 1286 DCHECK(fn.glGetQueryivARBFn);
1336 if (!fn.glGetQueryivARBFn) { 1287 } else if (ext.b_GL_EXT_disjoint_timer_query ||
1288 ext.b_GL_EXT_occlusion_query_boolean) {
1337 fn.glGetQueryivARBFn = reinterpret_cast<glGetQueryivARBProc>( 1289 fn.glGetQueryivARBFn = reinterpret_cast<glGetQueryivARBProc>(
1338 GetGLProcAddress("glGetQueryivEXT")); 1290 GetGLProcAddress("glGetQueryivEXT"));
1339 } 1291 DCHECK(fn.glGetQueryivARBFn);
1340 1292 }
1341 fn.glGetQueryObjectivARBFn = 0; 1293
1294 debug_fn.glGetQueryObjecti64vFn = 0;
1295 if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_timer_query) {
1296 fn.glGetQueryObjecti64vFn = reinterpret_cast<glGetQueryObjecti64vProc>(
1297 GetGLProcAddress("glGetQueryObjecti64v"));
1298 DCHECK(fn.glGetQueryObjecti64vFn);
1299 } else if (ext.b_GL_EXT_timer_query || ext.b_GL_EXT_disjoint_timer_query) {
1300 fn.glGetQueryObjecti64vFn = reinterpret_cast<glGetQueryObjecti64vProc>(
1301 GetGLProcAddress("glGetQueryObjecti64vEXT"));
1302 DCHECK(fn.glGetQueryObjecti64vFn);
1303 }
1304
1305 debug_fn.glGetQueryObjectivFn = 0;
1306 if (!ver->is_es) {
1307 fn.glGetQueryObjectivFn = reinterpret_cast<glGetQueryObjectivProc>(
1308 GetGLProcAddress("glGetQueryObjectiv"));
1309 DCHECK(fn.glGetQueryObjectivFn);
1310 }
1311
1342 debug_fn.glGetQueryObjectivARBFn = 0; 1312 debug_fn.glGetQueryObjectivARBFn = 0;
1343 if (ext.b_GL_ARB_occlusion_query) { 1313 if (ext.b_GL_ARB_occlusion_query) {
1344 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>( 1314 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>(
1345 GetGLProcAddress("glGetQueryObjectivARB")); 1315 GetGLProcAddress("glGetQueryObjectivARB"));
1346 } 1316 DCHECK(fn.glGetQueryObjectivARBFn);
1347 if (!fn.glGetQueryObjectivARBFn) { 1317 } else if (ext.b_GL_EXT_disjoint_timer_query) {
1348 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>( 1318 fn.glGetQueryObjectivARBFn = reinterpret_cast<glGetQueryObjectivARBProc>(
1349 GetGLProcAddress("glGetQueryObjectivEXT")); 1319 GetGLProcAddress("glGetQueryObjectivEXT"));
1350 } 1320 DCHECK(fn.glGetQueryObjectivARBFn);
1351 1321 }
1352 fn.glGetQueryObjectui64vFn = 0; 1322
1353 debug_fn.glGetQueryObjectui64vFn = 0; 1323 debug_fn.glGetQueryObjectui64vFn = 0;
1354 if (ext.b_GL_ARB_timer_query) { 1324 if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_timer_query) {
1355 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>( 1325 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>(
1356 GetGLProcAddress("glGetQueryObjectui64v")); 1326 GetGLProcAddress("glGetQueryObjectui64v"));
1357 } 1327 DCHECK(fn.glGetQueryObjectui64vFn);
1358 if (!fn.glGetQueryObjectui64vFn) { 1328 } else if (ext.b_GL_EXT_timer_query || ext.b_GL_EXT_disjoint_timer_query) {
1359 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>( 1329 fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>(
1360 GetGLProcAddress("glGetQueryObjectui64vEXT")); 1330 GetGLProcAddress("glGetQueryObjectui64vEXT"));
1361 } 1331 DCHECK(fn.glGetQueryObjectui64vFn);
1362 1332 }
1363 fn.glGetQueryObjectuivARBFn = 0; 1333
1334 debug_fn.glGetQueryObjectuivFn = 0;
1335 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1336 fn.glGetQueryObjectuivFn = reinterpret_cast<glGetQueryObjectuivProc>(
1337 GetGLProcAddress("glGetQueryObjectuiv"));
1338 DCHECK(fn.glGetQueryObjectuivFn);
1339 }
1340
1364 debug_fn.glGetQueryObjectuivARBFn = 0; 1341 debug_fn.glGetQueryObjectuivARBFn = 0;
1365 if (ext.b_GL_ARB_occlusion_query) { 1342 if (ext.b_GL_ARB_occlusion_query) {
1366 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>( 1343 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>(
1367 GetGLProcAddress("glGetQueryObjectuivARB")); 1344 GetGLProcAddress("glGetQueryObjectuivARB"));
1368 } 1345 DCHECK(fn.glGetQueryObjectuivARBFn);
1369 if (!fn.glGetQueryObjectuivARBFn) { 1346 } else if (ext.b_GL_EXT_disjoint_timer_query ||
1347 ext.b_GL_EXT_occlusion_query_boolean) {
1370 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>( 1348 fn.glGetQueryObjectuivARBFn = reinterpret_cast<glGetQueryObjectuivARBProc>(
1371 GetGLProcAddress("glGetQueryObjectuivEXT")); 1349 GetGLProcAddress("glGetQueryObjectuivEXT"));
1372 } 1350 DCHECK(fn.glGetQueryObjectuivARBFn);
1373 1351 }
1374 fn.glGetRenderbufferParameterivEXTFn = 0; 1352
1375 debug_fn.glGetRenderbufferParameterivEXTFn = 0; 1353 debug_fn.glGetRenderbufferParameterivEXTFn = 0;
1376 if (ext.b_GL_EXT_framebuffer_object) { 1354 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
1355 fn.glGetRenderbufferParameterivEXTFn =
1356 reinterpret_cast<glGetRenderbufferParameterivEXTProc>(
1357 GetGLProcAddress("glGetRenderbufferParameteriv"));
1358 DCHECK(fn.glGetRenderbufferParameterivEXTFn);
1359 } else if (ext.b_GL_EXT_framebuffer_object) {
1377 fn.glGetRenderbufferParameterivEXTFn = 1360 fn.glGetRenderbufferParameterivEXTFn =
1378 reinterpret_cast<glGetRenderbufferParameterivEXTProc>( 1361 reinterpret_cast<glGetRenderbufferParameterivEXTProc>(
1379 GetGLProcAddress("glGetRenderbufferParameterivEXT")); 1362 GetGLProcAddress("glGetRenderbufferParameterivEXT"));
1380 } 1363 DCHECK(fn.glGetRenderbufferParameterivEXTFn);
1381 if (!fn.glGetRenderbufferParameterivEXTFn) { 1364 }
1382 fn.glGetRenderbufferParameterivEXTFn = 1365
1383 reinterpret_cast<glGetRenderbufferParameterivEXTProc>( 1366 debug_fn.glGetSamplerParameterfvFn = 0;
1384 GetGLProcAddress("glGetRenderbufferParameteriv")); 1367 if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
1385 } 1368 fn.glGetSamplerParameterfvFn =
1386 1369 reinterpret_cast<glGetSamplerParameterfvProc>(
1387 fn.glIsFramebufferEXTFn = 0; 1370 GetGLProcAddress("glGetSamplerParameterfv"));
1371 DCHECK(fn.glGetSamplerParameterfvFn);
1372 }
1373
1374 debug_fn.glGetSamplerParameterivFn = 0;
1375 if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
1376 fn.glGetSamplerParameterivFn =
1377 reinterpret_cast<glGetSamplerParameterivProc>(
1378 GetGLProcAddress("glGetSamplerParameteriv"));
1379 DCHECK(fn.glGetSamplerParameterivFn);
1380 }
1381
1382 debug_fn.glGetShaderPrecisionFormatFn = 0;
1383 if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
1384 fn.glGetShaderPrecisionFormatFn =
1385 reinterpret_cast<glGetShaderPrecisionFormatProc>(
1386 GetGLProcAddress("glGetShaderPrecisionFormat"));
1387 DCHECK(fn.glGetShaderPrecisionFormatFn);
1388 }
1389
1390 debug_fn.glGetSyncivFn = 0;
1391 if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
1392 ext.b_GL_ARB_sync) {
1393 fn.glGetSyncivFn =
1394 reinterpret_cast<glGetSyncivProc>(GetGLProcAddress("glGetSynciv"));
1395 DCHECK(fn.glGetSyncivFn);
1396 }
1397
1398 debug_fn.glGetTexLevelParameterfvFn = 0;
1399 if (!ver->is_es || ver->IsAtLeastGLES(3u, 1u)) {
1400 fn.glGetTexLevelParameterfvFn =
1401 reinterpret_cast<glGetTexLevelParameterfvProc>(
1402 GetGLProcAddress("glGetTexLevelParameterfv"));
1403 DCHECK(fn.glGetTexLevelParameterfvFn);
1404 }
1405
1406 debug_fn.glGetTexLevelParameterivFn = 0;
1407 if (!ver->is_es || ver->IsAtLeastGLES(3u, 1u)) {
1408 fn.glGetTexLevelParameterivFn =
1409 reinterpret_cast<glGetTexLevelParameterivProc>(
1410 GetGLProcAddress("glGetTexLevelParameteriv"));
1411 DCHECK(fn.glGetTexLevelParameterivFn);
1412 }
1413
1414 debug_fn.glGetTransformFeedbackVaryingFn = 0;
1415 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1416 fn.glGetTransformFeedbackVaryingFn =
1417 reinterpret_cast<glGetTransformFeedbackVaryingProc>(
1418 GetGLProcAddress("glGetTransformFeedbackVarying"));
1419 DCHECK(fn.glGetTransformFeedbackVaryingFn);
1420 }
1421
1422 debug_fn.glGetTranslatedShaderSourceANGLEFn = 0;
1423 if (ext.b_GL_ANGLE_translated_shader_source) {
1424 fn.glGetTranslatedShaderSourceANGLEFn =
1425 reinterpret_cast<glGetTranslatedShaderSourceANGLEProc>(
1426 GetGLProcAddress("glGetTranslatedShaderSourceANGLE"));
1427 DCHECK(fn.glGetTranslatedShaderSourceANGLEFn);
1428 }
1429
1430 debug_fn.glGetUniformBlockIndexFn = 0;
1431 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
1432 fn.glGetUniformBlockIndexFn = reinterpret_cast<glGetUniformBlockIndexProc>(
1433 GetGLProcAddress("glGetUniformBlockIndex"));
1434 DCHECK(fn.glGetUniformBlockIndexFn);
1435 }
1436
1437 debug_fn.glGetUniformIndicesFn = 0;
1438 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
1439 fn.glGetUniformIndicesFn = reinterpret_cast<glGetUniformIndicesProc>(
1440 GetGLProcAddress("glGetUniformIndices"));
1441 DCHECK(fn.glGetUniformIndicesFn);
1442 }
1443
1444 debug_fn.glInsertEventMarkerEXTFn = 0;
1445 if (ext.b_GL_EXT_debug_marker) {
1446 fn.glInsertEventMarkerEXTFn = reinterpret_cast<glInsertEventMarkerEXTProc>(
1447 GetGLProcAddress("glInsertEventMarkerEXT"));
1448 DCHECK(fn.glInsertEventMarkerEXTFn);
1449 }
1450
1451 debug_fn.glInvalidateFramebufferFn = 0;
1452 if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
1453 fn.glInvalidateFramebufferFn =
1454 reinterpret_cast<glInvalidateFramebufferProc>(
1455 GetGLProcAddress("glInvalidateFramebuffer"));
1456 DCHECK(fn.glInvalidateFramebufferFn);
1457 }
1458
1459 debug_fn.glInvalidateSubFramebufferFn = 0;
1460 if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
1461 fn.glInvalidateSubFramebufferFn =
1462 reinterpret_cast<glInvalidateSubFramebufferProc>(
1463 GetGLProcAddress("glInvalidateSubFramebuffer"));
1464 DCHECK(fn.glInvalidateSubFramebufferFn);
1465 }
1466
1467 debug_fn.glIsFenceAPPLEFn = 0;
1468 if (ext.b_GL_APPLE_fence) {
1469 fn.glIsFenceAPPLEFn = reinterpret_cast<glIsFenceAPPLEProc>(
1470 GetGLProcAddress("glIsFenceAPPLE"));
1471 DCHECK(fn.glIsFenceAPPLEFn);
1472 }
1473
1474 debug_fn.glIsFenceNVFn = 0;
1475 if (ext.b_GL_NV_fence) {
1476 fn.glIsFenceNVFn =
1477 reinterpret_cast<glIsFenceNVProc>(GetGLProcAddress("glIsFenceNV"));
1478 DCHECK(fn.glIsFenceNVFn);
1479 }
1480
1388 debug_fn.glIsFramebufferEXTFn = 0; 1481 debug_fn.glIsFramebufferEXTFn = 0;
1389 if (ext.b_GL_EXT_framebuffer_object) { 1482 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
1483 fn.glIsFramebufferEXTFn = reinterpret_cast<glIsFramebufferEXTProc>(
1484 GetGLProcAddress("glIsFramebuffer"));
1485 DCHECK(fn.glIsFramebufferEXTFn);
1486 } else if (ext.b_GL_EXT_framebuffer_object) {
1390 fn.glIsFramebufferEXTFn = reinterpret_cast<glIsFramebufferEXTProc>( 1487 fn.glIsFramebufferEXTFn = reinterpret_cast<glIsFramebufferEXTProc>(
1391 GetGLProcAddress("glIsFramebufferEXT")); 1488 GetGLProcAddress("glIsFramebufferEXT"));
1392 } 1489 DCHECK(fn.glIsFramebufferEXTFn);
1393 if (!fn.glIsFramebufferEXTFn) { 1490 }
1394 fn.glIsFramebufferEXTFn = reinterpret_cast<glIsFramebufferEXTProc>( 1491
1395 GetGLProcAddress("glIsFramebuffer")); 1492 debug_fn.glIsQueryFn = 0;
1396 } 1493 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1397 1494 fn.glIsQueryFn =
1398 fn.glIsQueryARBFn = 0; 1495 reinterpret_cast<glIsQueryProc>(GetGLProcAddress("glIsQuery"));
1496 DCHECK(fn.glIsQueryFn);
1497 }
1498
1399 debug_fn.glIsQueryARBFn = 0; 1499 debug_fn.glIsQueryARBFn = 0;
1400 if (ext.b_GL_ARB_occlusion_query) { 1500 if (ext.b_GL_ARB_occlusion_query) {
1401 fn.glIsQueryARBFn = 1501 fn.glIsQueryARBFn =
1402 reinterpret_cast<glIsQueryARBProc>(GetGLProcAddress("glIsQueryARB")); 1502 reinterpret_cast<glIsQueryARBProc>(GetGLProcAddress("glIsQueryARB"));
1403 } 1503 DCHECK(fn.glIsQueryARBFn);
1404 if (!fn.glIsQueryARBFn) { 1504 } else if (ext.b_GL_EXT_disjoint_timer_query ||
1505 ext.b_GL_EXT_occlusion_query_boolean) {
1405 fn.glIsQueryARBFn = 1506 fn.glIsQueryARBFn =
1406 reinterpret_cast<glIsQueryARBProc>(GetGLProcAddress("glIsQueryEXT")); 1507 reinterpret_cast<glIsQueryARBProc>(GetGLProcAddress("glIsQueryEXT"));
1407 } 1508 DCHECK(fn.glIsQueryARBFn);
1408 1509 }
1409 fn.glIsRenderbufferEXTFn = 0; 1510
1410 debug_fn.glIsRenderbufferEXTFn = 0; 1511 debug_fn.glIsRenderbufferEXTFn = 0;
1411 if (ext.b_GL_EXT_framebuffer_object) { 1512 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
1513 fn.glIsRenderbufferEXTFn = reinterpret_cast<glIsRenderbufferEXTProc>(
1514 GetGLProcAddress("glIsRenderbuffer"));
1515 DCHECK(fn.glIsRenderbufferEXTFn);
1516 } else if (ext.b_GL_EXT_framebuffer_object) {
1412 fn.glIsRenderbufferEXTFn = reinterpret_cast<glIsRenderbufferEXTProc>( 1517 fn.glIsRenderbufferEXTFn = reinterpret_cast<glIsRenderbufferEXTProc>(
1413 GetGLProcAddress("glIsRenderbufferEXT")); 1518 GetGLProcAddress("glIsRenderbufferEXT"));
1414 } 1519 DCHECK(fn.glIsRenderbufferEXTFn);
1415 if (!fn.glIsRenderbufferEXTFn) { 1520 }
1416 fn.glIsRenderbufferEXTFn = reinterpret_cast<glIsRenderbufferEXTProc>( 1521
1417 GetGLProcAddress("glIsRenderbuffer")); 1522 debug_fn.glIsSamplerFn = 0;
1418 } 1523 if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
1419 1524 fn.glIsSamplerFn =
1420 fn.glIsVertexArrayOESFn = 0; 1525 reinterpret_cast<glIsSamplerProc>(GetGLProcAddress("glIsSampler"));
1526 DCHECK(fn.glIsSamplerFn);
1527 }
1528
1529 debug_fn.glIsSyncFn = 0;
1530 if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
1531 ext.b_GL_ARB_sync) {
1532 fn.glIsSyncFn =
1533 reinterpret_cast<glIsSyncProc>(GetGLProcAddress("glIsSync"));
1534 DCHECK(fn.glIsSyncFn);
1535 }
1536
1537 debug_fn.glIsTransformFeedbackFn = 0;
1538 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u)) {
1539 fn.glIsTransformFeedbackFn = reinterpret_cast<glIsTransformFeedbackProc>(
1540 GetGLProcAddress("glIsTransformFeedback"));
1541 DCHECK(fn.glIsTransformFeedbackFn);
1542 }
1543
1421 debug_fn.glIsVertexArrayOESFn = 0; 1544 debug_fn.glIsVertexArrayOESFn = 0;
1422 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 1545 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
1423 ext.b_GL_ARB_vertex_array_object) { 1546 ext.b_GL_ARB_vertex_array_object) {
1424 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>( 1547 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>(
1425 GetGLProcAddress("glIsVertexArray")); 1548 GetGLProcAddress("glIsVertexArray"));
1426 } 1549 DCHECK(fn.glIsVertexArrayOESFn);
1427 if (!fn.glIsVertexArrayOESFn && (ext.b_GL_OES_vertex_array_object)) { 1550 } else if (ext.b_GL_OES_vertex_array_object) {
1428 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>( 1551 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>(
1429 GetGLProcAddress("glIsVertexArrayOES")); 1552 GetGLProcAddress("glIsVertexArrayOES"));
1430 } 1553 DCHECK(fn.glIsVertexArrayOESFn);
1431 if (!fn.glIsVertexArrayOESFn) { 1554 } else if (ext.b_GL_APPLE_vertex_array_object) {
1432 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>( 1555 fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>(
1433 GetGLProcAddress("glIsVertexArrayAPPLE")); 1556 GetGLProcAddress("glIsVertexArrayAPPLE"));
1434 } 1557 DCHECK(fn.glIsVertexArrayOESFn);
1435 1558 }
1436 fn.glMapBufferFn = 0; 1559
1437 debug_fn.glMapBufferFn = 0; 1560 debug_fn.glMapBufferFn = 0;
1438 if (ext.b_GL_OES_mapbuffer) { 1561 if (!ver->is_es) {
1562 fn.glMapBufferFn =
1563 reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBuffer"));
1564 DCHECK(fn.glMapBufferFn);
1565 } else if (ext.b_GL_OES_mapbuffer) {
1439 fn.glMapBufferFn = 1566 fn.glMapBufferFn =
1440 reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBufferOES")); 1567 reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBufferOES"));
1441 } 1568 DCHECK(fn.glMapBufferFn);
1442 if (!fn.glMapBufferFn) { 1569 }
1443 fn.glMapBufferFn = 1570
1444 reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBuffer"));
1445 }
1446
1447 fn.glMapBufferRangeFn = 0;
1448 debug_fn.glMapBufferRangeFn = 0; 1571 debug_fn.glMapBufferRangeFn = 0;
1449 if ((ver->is_gl3 || ver->is_gl4 || ver->is_es3) || 1572 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
1450 ext.b_GL_ARB_map_buffer_range) { 1573 ext.b_GL_ARB_map_buffer_range) {
1451 fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>( 1574 fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>(
1452 GetGLProcAddress("glMapBufferRange")); 1575 GetGLProcAddress("glMapBufferRange"));
1453 } 1576 DCHECK(fn.glMapBufferRangeFn);
1454 if (!fn.glMapBufferRangeFn) { 1577 } else if (ext.b_GL_EXT_map_buffer_range) {
1455 fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>( 1578 fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>(
1456 GetGLProcAddress("glMapBufferRangeEXT")); 1579 GetGLProcAddress("glMapBufferRangeEXT"));
1457 } 1580 DCHECK(fn.glMapBufferRangeFn);
1458 1581 }
1459 fn.glProgramBinaryFn = 0; 1582
1583 debug_fn.glMatrixLoadfEXTFn = 0;
1584 if (ext.b_GL_EXT_direct_state_access || ext.b_GL_NV_path_rendering) {
1585 fn.glMatrixLoadfEXTFn = reinterpret_cast<glMatrixLoadfEXTProc>(
1586 GetGLProcAddress("glMatrixLoadfEXT"));
1587 DCHECK(fn.glMatrixLoadfEXTFn);
1588 }
1589
1590 debug_fn.glMatrixLoadIdentityEXTFn = 0;
1591 if (ext.b_GL_EXT_direct_state_access || ext.b_GL_NV_path_rendering) {
1592 fn.glMatrixLoadIdentityEXTFn =
1593 reinterpret_cast<glMatrixLoadIdentityEXTProc>(
1594 GetGLProcAddress("glMatrixLoadIdentityEXT"));
1595 DCHECK(fn.glMatrixLoadIdentityEXTFn);
1596 }
1597
1598 debug_fn.glPauseTransformFeedbackFn = 0;
1599 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u)) {
1600 fn.glPauseTransformFeedbackFn =
1601 reinterpret_cast<glPauseTransformFeedbackProc>(
1602 GetGLProcAddress("glPauseTransformFeedback"));
1603 DCHECK(fn.glPauseTransformFeedbackFn);
1604 }
1605
1606 debug_fn.glPointParameteriFn = 0;
1607 if (!ver->is_es) {
1608 fn.glPointParameteriFn = reinterpret_cast<glPointParameteriProc>(
1609 GetGLProcAddress("glPointParameteri"));
1610 DCHECK(fn.glPointParameteriFn);
1611 }
1612
1613 debug_fn.glPopGroupMarkerEXTFn = 0;
1614 if (ext.b_GL_EXT_debug_marker) {
1615 fn.glPopGroupMarkerEXTFn = reinterpret_cast<glPopGroupMarkerEXTProc>(
1616 GetGLProcAddress("glPopGroupMarkerEXT"));
1617 DCHECK(fn.glPopGroupMarkerEXTFn);
1618 }
1619
1460 debug_fn.glProgramBinaryFn = 0; 1620 debug_fn.glProgramBinaryFn = 0;
1461 if (ext.b_GL_OES_get_program_binary) { 1621 if (ver->IsAtLeastGL(4u, 1u) || ver->IsAtLeastGLES(3u, 0u) ||
1622 ext.b_GL_ARB_get_program_binary) {
1623 fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>(
1624 GetGLProcAddress("glProgramBinary"));
1625 DCHECK(fn.glProgramBinaryFn);
1626 } else if (ext.b_GL_OES_get_program_binary) {
1462 fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>( 1627 fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>(
1463 GetGLProcAddress("glProgramBinaryOES")); 1628 GetGLProcAddress("glProgramBinaryOES"));
1464 } 1629 DCHECK(fn.glProgramBinaryFn);
1465 if (!fn.glProgramBinaryFn) { 1630 }
1466 fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>( 1631
1467 GetGLProcAddress("glProgramBinary")); 1632 debug_fn.glProgramParameteriFn = 0;
1468 } 1633 if (ver->IsAtLeastGL(4u, 1u) || ver->IsAtLeastGLES(3u, 0u) ||
1469 1634 ext.b_GL_ARB_get_program_binary) {
1470 fn.glQueryCounterFn = 0; 1635 fn.glProgramParameteriFn = reinterpret_cast<glProgramParameteriProc>(
1636 GetGLProcAddress("glProgramParameteri"));
1637 DCHECK(fn.glProgramParameteriFn);
1638 }
1639
1640 debug_fn.glPushGroupMarkerEXTFn = 0;
1641 if (ext.b_GL_EXT_debug_marker) {
1642 fn.glPushGroupMarkerEXTFn = reinterpret_cast<glPushGroupMarkerEXTProc>(
1643 GetGLProcAddress("glPushGroupMarkerEXT"));
1644 DCHECK(fn.glPushGroupMarkerEXTFn);
1645 }
1646
1471 debug_fn.glQueryCounterFn = 0; 1647 debug_fn.glQueryCounterFn = 0;
1472 if (ext.b_GL_ARB_timer_query) { 1648 if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_timer_query) {
1473 fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>( 1649 fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>(
1474 GetGLProcAddress("glQueryCounter")); 1650 GetGLProcAddress("glQueryCounter"));
1475 } 1651 DCHECK(fn.glQueryCounterFn);
1476 if (!fn.glQueryCounterFn) { 1652 } else if (ext.b_GL_EXT_disjoint_timer_query) {
1477 fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>( 1653 fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>(
1478 GetGLProcAddress("glQueryCounterEXT")); 1654 GetGLProcAddress("glQueryCounterEXT"));
1479 } 1655 DCHECK(fn.glQueryCounterFn);
1480 1656 }
1481 fn.glRenderbufferStorageEXTFn = 0; 1657
1658 debug_fn.glReadBufferFn = 0;
1659 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1660 fn.glReadBufferFn =
1661 reinterpret_cast<glReadBufferProc>(GetGLProcAddress("glReadBuffer"));
1662 DCHECK(fn.glReadBufferFn);
1663 }
1664
1665 debug_fn.glReleaseShaderCompilerFn = 0;
1666 if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
1667 fn.glReleaseShaderCompilerFn =
1668 reinterpret_cast<glReleaseShaderCompilerProc>(
1669 GetGLProcAddress("glReleaseShaderCompiler"));
1670 DCHECK(fn.glReleaseShaderCompilerFn);
1671 }
1672
1482 debug_fn.glRenderbufferStorageEXTFn = 0; 1673 debug_fn.glRenderbufferStorageEXTFn = 0;
1483 if (ext.b_GL_EXT_framebuffer_object) { 1674 if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
1675 fn.glRenderbufferStorageEXTFn =
1676 reinterpret_cast<glRenderbufferStorageEXTProc>(
1677 GetGLProcAddress("glRenderbufferStorage"));
1678 DCHECK(fn.glRenderbufferStorageEXTFn);
1679 } else if (ext.b_GL_EXT_framebuffer_object) {
1484 fn.glRenderbufferStorageEXTFn = 1680 fn.glRenderbufferStorageEXTFn =
1485 reinterpret_cast<glRenderbufferStorageEXTProc>( 1681 reinterpret_cast<glRenderbufferStorageEXTProc>(
1486 GetGLProcAddress("glRenderbufferStorageEXT")); 1682 GetGLProcAddress("glRenderbufferStorageEXT"));
1487 } 1683 DCHECK(fn.glRenderbufferStorageEXTFn);
1488 if (!fn.glRenderbufferStorageEXTFn) { 1684 }
1489 fn.glRenderbufferStorageEXTFn = 1685
1490 reinterpret_cast<glRenderbufferStorageEXTProc>( 1686 debug_fn.glRenderbufferStorageMultisampleFn = 0;
1491 GetGLProcAddress("glRenderbufferStorage")); 1687 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1492 } 1688 fn.glRenderbufferStorageMultisampleFn =
1493 1689 reinterpret_cast<glRenderbufferStorageMultisampleProc>(
1494 fn.glRenderbufferStorageMultisampleANGLEFn = 0; 1690 GetGLProcAddress("glRenderbufferStorageMultisample"));
1691 DCHECK(fn.glRenderbufferStorageMultisampleFn);
1692 }
1693
1495 debug_fn.glRenderbufferStorageMultisampleANGLEFn = 0; 1694 debug_fn.glRenderbufferStorageMultisampleANGLEFn = 0;
1496 if (ext.b_GL_ANGLE_framebuffer_multisample) { 1695 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1696 fn.glRenderbufferStorageMultisampleANGLEFn =
1697 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>(
1698 GetGLProcAddress("glRenderbufferStorageMultisample"));
1699 DCHECK(fn.glRenderbufferStorageMultisampleANGLEFn);
1700 } else if (ext.b_GL_ANGLE_framebuffer_multisample) {
1497 fn.glRenderbufferStorageMultisampleANGLEFn = 1701 fn.glRenderbufferStorageMultisampleANGLEFn =
1498 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>( 1702 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>(
1499 GetGLProcAddress("glRenderbufferStorageMultisampleANGLE")); 1703 GetGLProcAddress("glRenderbufferStorageMultisampleANGLE"));
1500 } 1704 DCHECK(fn.glRenderbufferStorageMultisampleANGLEFn);
1501 if (!fn.glRenderbufferStorageMultisampleANGLEFn) { 1705 }
1502 fn.glRenderbufferStorageMultisampleANGLEFn = 1706
1503 reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>( 1707 debug_fn.glRenderbufferStorageMultisampleEXTFn = 0;
1708 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1709 fn.glRenderbufferStorageMultisampleEXTFn =
1710 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>(
1504 GetGLProcAddress("glRenderbufferStorageMultisample")); 1711 GetGLProcAddress("glRenderbufferStorageMultisample"));
1505 } 1712 DCHECK(fn.glRenderbufferStorageMultisampleEXTFn);
1506 1713 } else if (ext.b_GL_EXT_multisampled_render_to_texture ||
1507 fn.glRenderbufferStorageMultisampleEXTFn = 0; 1714 ext.b_GL_EXT_framebuffer_multisample) {
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 = 1715 fn.glRenderbufferStorageMultisampleEXTFn =
1512 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>( 1716 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>(
1513 GetGLProcAddress("glRenderbufferStorageMultisampleEXT")); 1717 GetGLProcAddress("glRenderbufferStorageMultisampleEXT"));
1514 } 1718 DCHECK(fn.glRenderbufferStorageMultisampleEXTFn);
1515 if (!fn.glRenderbufferStorageMultisampleEXTFn) { 1719 }
1516 fn.glRenderbufferStorageMultisampleEXTFn = 1720
1517 reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>( 1721 debug_fn.glRenderbufferStorageMultisampleIMGFn = 0;
1518 GetGLProcAddress("glRenderbufferStorageMultisample")); 1722 if (ext.b_GL_IMG_multisampled_render_to_texture) {
1519 } 1723 fn.glRenderbufferStorageMultisampleIMGFn =
1520 1724 reinterpret_cast<glRenderbufferStorageMultisampleIMGProc>(
1521 fn.glTexStorage2DEXTFn = 0; 1725 GetGLProcAddress("glRenderbufferStorageMultisampleIMG"));
1726 DCHECK(fn.glRenderbufferStorageMultisampleIMGFn);
1727 }
1728
1729 debug_fn.glResumeTransformFeedbackFn = 0;
1730 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u)) {
1731 fn.glResumeTransformFeedbackFn =
1732 reinterpret_cast<glResumeTransformFeedbackProc>(
1733 GetGLProcAddress("glResumeTransformFeedback"));
1734 DCHECK(fn.glResumeTransformFeedbackFn);
1735 }
1736
1737 debug_fn.glSamplerParameterfFn = 0;
1738 if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
1739 fn.glSamplerParameterfFn = reinterpret_cast<glSamplerParameterfProc>(
1740 GetGLProcAddress("glSamplerParameterf"));
1741 DCHECK(fn.glSamplerParameterfFn);
1742 }
1743
1744 debug_fn.glSamplerParameterfvFn = 0;
1745 if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
1746 fn.glSamplerParameterfvFn = reinterpret_cast<glSamplerParameterfvProc>(
1747 GetGLProcAddress("glSamplerParameterfv"));
1748 DCHECK(fn.glSamplerParameterfvFn);
1749 }
1750
1751 debug_fn.glSamplerParameteriFn = 0;
1752 if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
1753 fn.glSamplerParameteriFn = reinterpret_cast<glSamplerParameteriProc>(
1754 GetGLProcAddress("glSamplerParameteri"));
1755 DCHECK(fn.glSamplerParameteriFn);
1756 }
1757
1758 debug_fn.glSamplerParameterivFn = 0;
1759 if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
1760 fn.glSamplerParameterivFn = reinterpret_cast<glSamplerParameterivProc>(
1761 GetGLProcAddress("glSamplerParameteriv"));
1762 DCHECK(fn.glSamplerParameterivFn);
1763 }
1764
1765 debug_fn.glSetFenceAPPLEFn = 0;
1766 if (ext.b_GL_APPLE_fence) {
1767 fn.glSetFenceAPPLEFn = reinterpret_cast<glSetFenceAPPLEProc>(
1768 GetGLProcAddress("glSetFenceAPPLE"));
1769 DCHECK(fn.glSetFenceAPPLEFn);
1770 }
1771
1772 debug_fn.glSetFenceNVFn = 0;
1773 if (ext.b_GL_NV_fence) {
1774 fn.glSetFenceNVFn =
1775 reinterpret_cast<glSetFenceNVProc>(GetGLProcAddress("glSetFenceNV"));
1776 DCHECK(fn.glSetFenceNVFn);
1777 }
1778
1779 debug_fn.glShaderBinaryFn = 0;
1780 if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
1781 fn.glShaderBinaryFn = reinterpret_cast<glShaderBinaryProc>(
1782 GetGLProcAddress("glShaderBinary"));
1783 DCHECK(fn.glShaderBinaryFn);
1784 }
1785
1786 debug_fn.glTestFenceAPPLEFn = 0;
1787 if (ext.b_GL_APPLE_fence) {
1788 fn.glTestFenceAPPLEFn = reinterpret_cast<glTestFenceAPPLEProc>(
1789 GetGLProcAddress("glTestFenceAPPLE"));
1790 DCHECK(fn.glTestFenceAPPLEFn);
1791 }
1792
1793 debug_fn.glTestFenceNVFn = 0;
1794 if (ext.b_GL_NV_fence) {
1795 fn.glTestFenceNVFn =
1796 reinterpret_cast<glTestFenceNVProc>(GetGLProcAddress("glTestFenceNV"));
1797 DCHECK(fn.glTestFenceNVFn);
1798 }
1799
1800 debug_fn.glTexImage3DFn = 0;
1801 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1802 fn.glTexImage3DFn =
1803 reinterpret_cast<glTexImage3DProc>(GetGLProcAddress("glTexImage3D"));
1804 DCHECK(fn.glTexImage3DFn);
1805 }
1806
1522 debug_fn.glTexStorage2DEXTFn = 0; 1807 debug_fn.glTexStorage2DEXTFn = 0;
1523 if (ver->is_es3 || ext.b_GL_ARB_texture_storage) { 1808 if (ver->IsAtLeastGL(4u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
1809 ext.b_GL_ARB_texture_storage) {
1524 fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>( 1810 fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>(
1525 GetGLProcAddress("glTexStorage2D")); 1811 GetGLProcAddress("glTexStorage2D"));
1526 } 1812 DCHECK(fn.glTexStorage2DEXTFn);
1527 if (!fn.glTexStorage2DEXTFn) { 1813 } else if (ext.b_GL_EXT_texture_storage) {
1528 fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>( 1814 fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>(
1529 GetGLProcAddress("glTexStorage2DEXT")); 1815 GetGLProcAddress("glTexStorage2DEXT"));
1530 } 1816 DCHECK(fn.glTexStorage2DEXTFn);
1531 1817 }
1532 fn.glUnmapBufferFn = 0; 1818
1819 debug_fn.glTexStorage3DFn = 0;
1820 if (ver->IsAtLeastGL(4u, 2u) || ver->IsAtLeastGLES(3u, 0u)) {
1821 fn.glTexStorage3DFn = reinterpret_cast<glTexStorage3DProc>(
1822 GetGLProcAddress("glTexStorage3D"));
1823 DCHECK(fn.glTexStorage3DFn);
1824 }
1825
1826 debug_fn.glTransformFeedbackVaryingsFn = 0;
1827 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1828 fn.glTransformFeedbackVaryingsFn =
1829 reinterpret_cast<glTransformFeedbackVaryingsProc>(
1830 GetGLProcAddress("glTransformFeedbackVaryings"));
1831 DCHECK(fn.glTransformFeedbackVaryingsFn);
1832 }
1833
1834 debug_fn.glUniform1uiFn = 0;
1835 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1836 fn.glUniform1uiFn =
1837 reinterpret_cast<glUniform1uiProc>(GetGLProcAddress("glUniform1ui"));
1838 DCHECK(fn.glUniform1uiFn);
1839 }
1840
1841 debug_fn.glUniform1uivFn = 0;
1842 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1843 fn.glUniform1uivFn =
1844 reinterpret_cast<glUniform1uivProc>(GetGLProcAddress("glUniform1uiv"));
1845 DCHECK(fn.glUniform1uivFn);
1846 }
1847
1848 debug_fn.glUniform2uiFn = 0;
1849 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1850 fn.glUniform2uiFn =
1851 reinterpret_cast<glUniform2uiProc>(GetGLProcAddress("glUniform2ui"));
1852 DCHECK(fn.glUniform2uiFn);
1853 }
1854
1855 debug_fn.glUniform2uivFn = 0;
1856 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1857 fn.glUniform2uivFn =
1858 reinterpret_cast<glUniform2uivProc>(GetGLProcAddress("glUniform2uiv"));
1859 DCHECK(fn.glUniform2uivFn);
1860 }
1861
1862 debug_fn.glUniform3uiFn = 0;
1863 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1864 fn.glUniform3uiFn =
1865 reinterpret_cast<glUniform3uiProc>(GetGLProcAddress("glUniform3ui"));
1866 DCHECK(fn.glUniform3uiFn);
1867 }
1868
1869 debug_fn.glUniform3uivFn = 0;
1870 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1871 fn.glUniform3uivFn =
1872 reinterpret_cast<glUniform3uivProc>(GetGLProcAddress("glUniform3uiv"));
1873 DCHECK(fn.glUniform3uivFn);
1874 }
1875
1876 debug_fn.glUniform4uiFn = 0;
1877 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1878 fn.glUniform4uiFn =
1879 reinterpret_cast<glUniform4uiProc>(GetGLProcAddress("glUniform4ui"));
1880 DCHECK(fn.glUniform4uiFn);
1881 }
1882
1883 debug_fn.glUniform4uivFn = 0;
1884 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1885 fn.glUniform4uivFn =
1886 reinterpret_cast<glUniform4uivProc>(GetGLProcAddress("glUniform4uiv"));
1887 DCHECK(fn.glUniform4uivFn);
1888 }
1889
1890 debug_fn.glUniformBlockBindingFn = 0;
1891 if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
1892 fn.glUniformBlockBindingFn = reinterpret_cast<glUniformBlockBindingProc>(
1893 GetGLProcAddress("glUniformBlockBinding"));
1894 DCHECK(fn.glUniformBlockBindingFn);
1895 }
1896
1897 debug_fn.glUniformMatrix2x3fvFn = 0;
1898 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1899 fn.glUniformMatrix2x3fvFn = reinterpret_cast<glUniformMatrix2x3fvProc>(
1900 GetGLProcAddress("glUniformMatrix2x3fv"));
1901 DCHECK(fn.glUniformMatrix2x3fvFn);
1902 }
1903
1904 debug_fn.glUniformMatrix2x4fvFn = 0;
1905 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1906 fn.glUniformMatrix2x4fvFn = reinterpret_cast<glUniformMatrix2x4fvProc>(
1907 GetGLProcAddress("glUniformMatrix2x4fv"));
1908 DCHECK(fn.glUniformMatrix2x4fvFn);
1909 }
1910
1911 debug_fn.glUniformMatrix3x2fvFn = 0;
1912 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1913 fn.glUniformMatrix3x2fvFn = reinterpret_cast<glUniformMatrix3x2fvProc>(
1914 GetGLProcAddress("glUniformMatrix3x2fv"));
1915 DCHECK(fn.glUniformMatrix3x2fvFn);
1916 }
1917
1918 debug_fn.glUniformMatrix3x4fvFn = 0;
1919 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1920 fn.glUniformMatrix3x4fvFn = reinterpret_cast<glUniformMatrix3x4fvProc>(
1921 GetGLProcAddress("glUniformMatrix3x4fv"));
1922 DCHECK(fn.glUniformMatrix3x4fvFn);
1923 }
1924
1925 debug_fn.glUniformMatrix4x2fvFn = 0;
1926 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1927 fn.glUniformMatrix4x2fvFn = reinterpret_cast<glUniformMatrix4x2fvProc>(
1928 GetGLProcAddress("glUniformMatrix4x2fv"));
1929 DCHECK(fn.glUniformMatrix4x2fvFn);
1930 }
1931
1932 debug_fn.glUniformMatrix4x3fvFn = 0;
1933 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1934 fn.glUniformMatrix4x3fvFn = reinterpret_cast<glUniformMatrix4x3fvProc>(
1935 GetGLProcAddress("glUniformMatrix4x3fv"));
1936 DCHECK(fn.glUniformMatrix4x3fvFn);
1937 }
1938
1533 debug_fn.glUnmapBufferFn = 0; 1939 debug_fn.glUnmapBufferFn = 0;
1534 if (ext.b_GL_OES_mapbuffer) { 1940 if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
1941 fn.glUnmapBufferFn =
1942 reinterpret_cast<glUnmapBufferProc>(GetGLProcAddress("glUnmapBuffer"));
1943 DCHECK(fn.glUnmapBufferFn);
1944 } else if (ext.b_GL_OES_mapbuffer) {
1535 fn.glUnmapBufferFn = reinterpret_cast<glUnmapBufferProc>( 1945 fn.glUnmapBufferFn = reinterpret_cast<glUnmapBufferProc>(
1536 GetGLProcAddress("glUnmapBufferOES")); 1946 GetGLProcAddress("glUnmapBufferOES"));
1537 } 1947 DCHECK(fn.glUnmapBufferFn);
1538 if (!fn.glUnmapBufferFn) { 1948 }
1539 fn.glUnmapBufferFn = 1949
1540 reinterpret_cast<glUnmapBufferProc>(GetGLProcAddress("glUnmapBuffer"));
1541 }
1542
1543 fn.glVertexAttribDivisorANGLEFn = 0;
1544 debug_fn.glVertexAttribDivisorANGLEFn = 0; 1950 debug_fn.glVertexAttribDivisorANGLEFn = 0;
1545 if (ext.b_GL_ARB_instanced_arrays) { 1951 if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
1952 fn.glVertexAttribDivisorANGLEFn =
1953 reinterpret_cast<glVertexAttribDivisorANGLEProc>(
1954 GetGLProcAddress("glVertexAttribDivisor"));
1955 DCHECK(fn.glVertexAttribDivisorANGLEFn);
1956 } else if (ext.b_GL_ARB_instanced_arrays) {
1546 fn.glVertexAttribDivisorANGLEFn = 1957 fn.glVertexAttribDivisorANGLEFn =
1547 reinterpret_cast<glVertexAttribDivisorANGLEProc>( 1958 reinterpret_cast<glVertexAttribDivisorANGLEProc>(
1548 GetGLProcAddress("glVertexAttribDivisorARB")); 1959 GetGLProcAddress("glVertexAttribDivisorARB"));
1549 } 1960 DCHECK(fn.glVertexAttribDivisorANGLEFn);
1550 if (!fn.glVertexAttribDivisorANGLEFn && (ext.b_GL_ANGLE_instanced_arrays)) { 1961 } else if (ext.b_GL_ANGLE_instanced_arrays) {
1551 fn.glVertexAttribDivisorANGLEFn = 1962 fn.glVertexAttribDivisorANGLEFn =
1552 reinterpret_cast<glVertexAttribDivisorANGLEProc>( 1963 reinterpret_cast<glVertexAttribDivisorANGLEProc>(
1553 GetGLProcAddress("glVertexAttribDivisorANGLE")); 1964 GetGLProcAddress("glVertexAttribDivisorANGLE"));
1554 } 1965 DCHECK(fn.glVertexAttribDivisorANGLEFn);
1555 if (!fn.glVertexAttribDivisorANGLEFn) { 1966 }
1556 fn.glVertexAttribDivisorANGLEFn = 1967
1557 reinterpret_cast<glVertexAttribDivisorANGLEProc>( 1968 debug_fn.glVertexAttribI4iFn = 0;
1558 GetGLProcAddress("glVertexAttribDivisor")); 1969 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1970 fn.glVertexAttribI4iFn = reinterpret_cast<glVertexAttribI4iProc>(
1971 GetGLProcAddress("glVertexAttribI4i"));
1972 DCHECK(fn.glVertexAttribI4iFn);
1973 }
1974
1975 debug_fn.glVertexAttribI4ivFn = 0;
1976 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1977 fn.glVertexAttribI4ivFn = reinterpret_cast<glVertexAttribI4ivProc>(
1978 GetGLProcAddress("glVertexAttribI4iv"));
1979 DCHECK(fn.glVertexAttribI4ivFn);
1980 }
1981
1982 debug_fn.glVertexAttribI4uiFn = 0;
1983 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1984 fn.glVertexAttribI4uiFn = reinterpret_cast<glVertexAttribI4uiProc>(
1985 GetGLProcAddress("glVertexAttribI4ui"));
1986 DCHECK(fn.glVertexAttribI4uiFn);
1987 }
1988
1989 debug_fn.glVertexAttribI4uivFn = 0;
1990 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1991 fn.glVertexAttribI4uivFn = reinterpret_cast<glVertexAttribI4uivProc>(
1992 GetGLProcAddress("glVertexAttribI4uiv"));
1993 DCHECK(fn.glVertexAttribI4uivFn);
1994 }
1995
1996 debug_fn.glVertexAttribIPointerFn = 0;
1997 if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
1998 fn.glVertexAttribIPointerFn = reinterpret_cast<glVertexAttribIPointerProc>(
1999 GetGLProcAddress("glVertexAttribIPointer"));
2000 DCHECK(fn.glVertexAttribIPointerFn);
2001 }
2002
2003 debug_fn.glWaitSyncFn = 0;
2004 if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
2005 ext.b_GL_ARB_sync) {
2006 fn.glWaitSyncFn =
2007 reinterpret_cast<glWaitSyncProc>(GetGLProcAddress("glWaitSync"));
2008 DCHECK(fn.glWaitSyncFn);
1559 } 2009 }
1560 2010
1561 if (g_debugBindingsInitialized) 2011 if (g_debugBindingsInitialized)
1562 InitializeDebugBindings(); 2012 InitializeDebugBindings();
1563 } 2013 }
1564 2014
1565 extern "C" { 2015 extern "C" {
1566 2016
1567 static void GL_BINDING_CALL Debug_glActiveTexture(GLenum texture) { 2017 static void GL_BINDING_CALL Debug_glActiveTexture(GLenum texture) {
1568 GL_SERVICE_LOG("glActiveTexture" 2018 GL_SERVICE_LOG("glActiveTexture"
(...skipping 9760 matching lines...) Expand 10 before | Expand all | Expand 10 after
11329 11779
11330 GLenum NoContextGLApi::glWaitSyncFn(GLsync sync, 11780 GLenum NoContextGLApi::glWaitSyncFn(GLsync sync,
11331 GLbitfield flags, 11781 GLbitfield flags,
11332 GLuint64 timeout) { 11782 GLuint64 timeout) {
11333 NOTREACHED() << "Trying to call glWaitSync() without current GL context"; 11783 NOTREACHED() << "Trying to call glWaitSync() without current GL context";
11334 LOG(ERROR) << "Trying to call glWaitSync() without current GL context"; 11784 LOG(ERROR) << "Trying to call glWaitSync() without current GL context";
11335 return static_cast<GLenum>(0); 11785 return static_cast<GLenum>(0);
11336 } 11786 }
11337 11787
11338 } // namespace gfx 11788 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gl/gl_bindings_autogen_gl.h ('k') | ui/gl/gl_bindings_autogen_glx.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698