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

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

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

Powered by Google App Engine
This is Rietveld 408576698