2
* Copyright 2013 The Android Open Source Project
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
8
* http://www.apache.org/licenses/LICENSE-2.0
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
17
#include "../gfx/gl_common.h"
19
#if defined(USING_GLES2)
24
GLboolean gl3stubInit() {
26
#define FIND_PROC(s) s = (void*)eglGetProcAddress(#s)
27
FIND_PROC(glReadBuffer);
28
FIND_PROC(glDrawRangeElements);
29
FIND_PROC(glTexImage3D);
30
FIND_PROC(glTexSubImage3D);
31
FIND_PROC(glCopyTexSubImage3D);
32
FIND_PROC(glCompressedTexImage3D);
33
FIND_PROC(glCompressedTexSubImage3D);
34
FIND_PROC(glGenQueries);
35
FIND_PROC(glDeleteQueries);
37
FIND_PROC(glBeginQuery);
38
FIND_PROC(glEndQuery);
39
FIND_PROC(glGetQueryiv);
40
FIND_PROC(glGetQueryObjectuiv);
41
FIND_PROC(glUnmapBuffer);
42
FIND_PROC(glGetBufferPointerv);
43
FIND_PROC(glDrawBuffers);
44
FIND_PROC(glUniformMatrix2x3fv);
45
FIND_PROC(glUniformMatrix3x2fv);
46
FIND_PROC(glUniformMatrix2x4fv);
47
FIND_PROC(glUniformMatrix4x2fv);
48
FIND_PROC(glUniformMatrix3x4fv);
49
FIND_PROC(glUniformMatrix4x3fv);
50
FIND_PROC(glBlitFramebuffer);
51
FIND_PROC(glRenderbufferStorageMultisample);
52
FIND_PROC(glFramebufferTextureLayer);
53
FIND_PROC(glMapBufferRange);
54
FIND_PROC(glFlushMappedBufferRange);
55
FIND_PROC(glBindVertexArray);
56
FIND_PROC(glDeleteVertexArrays);
57
FIND_PROC(glGenVertexArrays);
58
FIND_PROC(glIsVertexArray);
59
FIND_PROC(glGetIntegeri_v);
60
FIND_PROC(glBeginTransformFeedback);
61
FIND_PROC(glEndTransformFeedback);
62
FIND_PROC(glBindBufferRange);
63
FIND_PROC(glBindBufferBase);
64
FIND_PROC(glTransformFeedbackVaryings);
65
FIND_PROC(glGetTransformFeedbackVarying);
66
FIND_PROC(glVertexAttribIPointer);
67
FIND_PROC(glGetVertexAttribIiv);
68
FIND_PROC(glGetVertexAttribIuiv);
69
FIND_PROC(glVertexAttribI4i);
70
FIND_PROC(glVertexAttribI4ui);
71
FIND_PROC(glVertexAttribI4iv);
72
FIND_PROC(glVertexAttribI4uiv);
73
FIND_PROC(glGetUniformuiv);
74
FIND_PROC(glGetFragDataLocation);
75
FIND_PROC(glUniform1ui);
76
FIND_PROC(glUniform2ui);
77
FIND_PROC(glUniform3ui);
78
FIND_PROC(glUniform4ui);
79
FIND_PROC(glUniform1uiv);
80
FIND_PROC(glUniform2uiv);
81
FIND_PROC(glUniform3uiv);
82
FIND_PROC(glUniform4uiv);
83
FIND_PROC(glClearBufferiv);
84
FIND_PROC(glClearBufferuiv);
85
FIND_PROC(glClearBufferfv);
86
FIND_PROC(glClearBufferfi);
87
FIND_PROC(glGetStringi);
88
FIND_PROC(glCopyBufferSubData);
89
FIND_PROC(glGetUniformIndices);
90
FIND_PROC(glGetActiveUniformsiv);
91
FIND_PROC(glGetUniformBlockIndex);
92
FIND_PROC(glGetActiveUniformBlockiv);
93
FIND_PROC(glGetActiveUniformBlockName);
94
FIND_PROC(glUniformBlockBinding);
95
FIND_PROC(glDrawArraysInstanced);
96
FIND_PROC(glDrawElementsInstanced);
97
FIND_PROC(glFenceSync);
99
FIND_PROC(glDeleteSync);
100
FIND_PROC(glClientWaitSync);
101
FIND_PROC(glWaitSync);
102
FIND_PROC(glGetInteger64v);
103
FIND_PROC(glGetSynciv);
104
FIND_PROC(glGetInteger64i_v);
105
FIND_PROC(glGetBufferParameteri64v);
106
FIND_PROC(glGenSamplers);
107
FIND_PROC(glDeleteSamplers);
108
FIND_PROC(glIsSampler);
109
FIND_PROC(glBindSampler);
110
FIND_PROC(glSamplerParameteri);
111
FIND_PROC(glSamplerParameteriv);
112
FIND_PROC(glSamplerParameterf);
113
FIND_PROC(glSamplerParameterfv);
114
FIND_PROC(glGetSamplerParameteriv);
115
FIND_PROC(glGetSamplerParameterfv);
116
FIND_PROC(glVertexAttribDivisor);
117
FIND_PROC(glBindTransformFeedback);
118
FIND_PROC(glDeleteTransformFeedbacks);
119
FIND_PROC(glGenTransformFeedbacks);
120
FIND_PROC(glIsTransformFeedback);
121
FIND_PROC(glPauseTransformFeedback);
122
FIND_PROC(glResumeTransformFeedback);
123
FIND_PROC(glGetProgramBinary);
124
FIND_PROC(glProgramBinary);
125
FIND_PROC(glProgramParameteri);
126
FIND_PROC(glInvalidateFramebuffer);
127
FIND_PROC(glInvalidateSubFramebuffer);
128
FIND_PROC(glTexStorage2D);
129
FIND_PROC(glTexStorage3D);
130
FIND_PROC(glGetInternalformativ);
132
/* EXT_blend_func_extended */
133
FIND_PROC(glBindFragDataLocationIndexedEXT);
134
FIND_PROC(glBindFragDataLocationEXT);
135
FIND_PROC(glGetProgramResourceLocationIndexEXT);
136
FIND_PROC(glGetFragDataIndexEXT);
138
/* OES_copy_image, etc. */
139
FIND_PROC(glCopyImageSubDataOES);
145
!glDrawRangeElements ||
148
!glCopyTexSubImage3D ||
149
!glCompressedTexImage3D ||
150
!glCompressedTexSubImage3D ||
157
!glGetQueryObjectuiv ||
159
!glGetBufferPointerv ||
161
!glUniformMatrix2x3fv ||
162
!glUniformMatrix3x2fv ||
163
!glUniformMatrix2x4fv ||
164
!glUniformMatrix4x2fv ||
165
!glUniformMatrix3x4fv ||
166
!glUniformMatrix4x3fv ||
167
!glBlitFramebuffer ||
168
!glRenderbufferStorageMultisample ||
169
!glFramebufferTextureLayer ||
171
!glFlushMappedBufferRange ||
172
!glBindVertexArray ||
173
!glDeleteVertexArrays ||
174
!glGenVertexArrays ||
177
!glBeginTransformFeedback ||
178
!glEndTransformFeedback ||
179
!glBindBufferRange ||
181
!glTransformFeedbackVaryings ||
182
!glGetTransformFeedbackVarying ||
183
!glVertexAttribIPointer ||
184
!glGetVertexAttribIiv ||
185
!glGetVertexAttribIuiv ||
186
!glVertexAttribI4i ||
187
!glVertexAttribI4ui ||
188
!glVertexAttribI4iv ||
189
!glVertexAttribI4uiv ||
191
!glGetFragDataLocation ||
205
!glCopyBufferSubData ||
206
!glGetUniformIndices ||
207
!glGetActiveUniformsiv ||
208
!glGetUniformBlockIndex ||
209
!glGetActiveUniformBlockiv ||
210
!glGetActiveUniformBlockName ||
211
!glUniformBlockBinding ||
212
!glDrawArraysInstanced ||
213
!glDrawElementsInstanced ||
221
!glGetInteger64i_v ||
222
!glGetBufferParameteri64v ||
227
!glSamplerParameteri ||
228
!glSamplerParameteriv ||
229
!glSamplerParameterf ||
230
!glSamplerParameterfv ||
231
!glGetSamplerParameteriv ||
232
!glGetSamplerParameterfv ||
233
!glVertexAttribDivisor ||
234
!glBindTransformFeedback ||
235
!glDeleteTransformFeedbacks ||
236
!glGenTransformFeedbacks ||
237
!glIsTransformFeedback ||
238
!glPauseTransformFeedback ||
239
!glResumeTransformFeedback ||
240
!glGetProgramBinary ||
242
!glProgramParameteri ||
243
!glInvalidateFramebuffer ||
244
!glInvalidateSubFramebuffer ||
247
!glGetInternalformativ)
257
/* Function pointer definitions */
258
GL_APICALL void (* GL_APIENTRY glReadBuffer) (GLenum mode);
259
GL_APICALL void (* GL_APIENTRY glDrawRangeElements) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices);
260
GL_APICALL void (* GL_APIENTRY glTexImage3D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
261
GL_APICALL void (* GL_APIENTRY glTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
262
GL_APICALL void (* GL_APIENTRY glCopyTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
263
GL_APICALL void (* GL_APIENTRY glCompressedTexImage3D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
264
GL_APICALL void (* GL_APIENTRY glCompressedTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
265
GL_APICALL void (* GL_APIENTRY glGenQueries) (GLsizei n, GLuint* ids);
266
GL_APICALL void (* GL_APIENTRY glDeleteQueries) (GLsizei n, const GLuint* ids);
267
GL_APICALL GLboolean (* GL_APIENTRY glIsQuery) (GLuint id);
268
GL_APICALL void (* GL_APIENTRY glBeginQuery) (GLenum target, GLuint id);
269
GL_APICALL void (* GL_APIENTRY glEndQuery) (GLenum target);
270
GL_APICALL void (* GL_APIENTRY glGetQueryiv) (GLenum target, GLenum pname, GLint* params);
271
GL_APICALL void (* GL_APIENTRY glGetQueryObjectuiv) (GLuint id, GLenum pname, GLuint* params);
272
GL_APICALL GLboolean (* GL_APIENTRY glUnmapBuffer) (GLenum target);
273
GL_APICALL void (* GL_APIENTRY glGetBufferPointerv) (GLenum target, GLenum pname, GLvoid** params);
274
GL_APICALL void (* GL_APIENTRY glDrawBuffers) (GLsizei n, const GLenum* bufs);
275
GL_APICALL void (* GL_APIENTRY glUniformMatrix2x3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
276
GL_APICALL void (* GL_APIENTRY glUniformMatrix3x2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
277
GL_APICALL void (* GL_APIENTRY glUniformMatrix2x4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
278
GL_APICALL void (* GL_APIENTRY glUniformMatrix4x2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
279
GL_APICALL void (* GL_APIENTRY glUniformMatrix3x4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
280
GL_APICALL void (* GL_APIENTRY glUniformMatrix4x3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
281
GL_APICALL void (* GL_APIENTRY glBlitFramebuffer) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
282
GL_APICALL void (* GL_APIENTRY glRenderbufferStorageMultisample) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
283
GL_APICALL void (* GL_APIENTRY glFramebufferTextureLayer) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
284
GL_APICALL GLvoid* (* GL_APIENTRY glMapBufferRange) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
285
GL_APICALL void (* GL_APIENTRY glFlushMappedBufferRange) (GLenum target, GLintptr offset, GLsizeiptr length);
286
GL_APICALL void (* GL_APIENTRY glBindVertexArray) (GLuint array);
287
GL_APICALL void (* GL_APIENTRY glDeleteVertexArrays) (GLsizei n, const GLuint* arrays);
288
GL_APICALL void (* GL_APIENTRY glGenVertexArrays) (GLsizei n, GLuint* arrays);
289
GL_APICALL GLboolean (* GL_APIENTRY glIsVertexArray) (GLuint array);
290
GL_APICALL void (* GL_APIENTRY glGetIntegeri_v) (GLenum target, GLuint index, GLint* data);
291
GL_APICALL void (* GL_APIENTRY glBeginTransformFeedback) (GLenum primitiveMode);
292
GL_APICALL void (* GL_APIENTRY glEndTransformFeedback) (void);
293
GL_APICALL void (* GL_APIENTRY glBindBufferRange) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
294
GL_APICALL void (* GL_APIENTRY glBindBufferBase) (GLenum target, GLuint index, GLuint buffer);
295
GL_APICALL void (* GL_APIENTRY glTransformFeedbackVaryings) (GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode);
296
GL_APICALL void (* GL_APIENTRY glGetTransformFeedbackVarying) (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name);
297
GL_APICALL void (* GL_APIENTRY glVertexAttribIPointer) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
298
GL_APICALL void (* GL_APIENTRY glGetVertexAttribIiv) (GLuint index, GLenum pname, GLint* params);
299
GL_APICALL void (* GL_APIENTRY glGetVertexAttribIuiv) (GLuint index, GLenum pname, GLuint* params);
300
GL_APICALL void (* GL_APIENTRY glVertexAttribI4i) (GLuint index, GLint x, GLint y, GLint z, GLint w);
301
GL_APICALL void (* GL_APIENTRY glVertexAttribI4ui) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
302
GL_APICALL void (* GL_APIENTRY glVertexAttribI4iv) (GLuint index, const GLint* v);
303
GL_APICALL void (* GL_APIENTRY glVertexAttribI4uiv) (GLuint index, const GLuint* v);
304
GL_APICALL void (* GL_APIENTRY glGetUniformuiv) (GLuint program, GLint location, GLuint* params);
305
GL_APICALL GLint (* GL_APIENTRY glGetFragDataLocation) (GLuint program, const GLchar *name);
306
GL_APICALL void (* GL_APIENTRY glUniform1ui) (GLint location, GLuint v0);
307
GL_APICALL void (* GL_APIENTRY glUniform2ui) (GLint location, GLuint v0, GLuint v1);
308
GL_APICALL void (* GL_APIENTRY glUniform3ui) (GLint location, GLuint v0, GLuint v1, GLuint v2);
309
GL_APICALL void (* GL_APIENTRY glUniform4ui) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
310
GL_APICALL void (* GL_APIENTRY glUniform1uiv) (GLint location, GLsizei count, const GLuint* value);
311
GL_APICALL void (* GL_APIENTRY glUniform2uiv) (GLint location, GLsizei count, const GLuint* value);
312
GL_APICALL void (* GL_APIENTRY glUniform3uiv) (GLint location, GLsizei count, const GLuint* value);
313
GL_APICALL void (* GL_APIENTRY glUniform4uiv) (GLint location, GLsizei count, const GLuint* value);
314
GL_APICALL void (* GL_APIENTRY glClearBufferiv) (GLenum buffer, GLint drawbuffer, const GLint* value);
315
GL_APICALL void (* GL_APIENTRY glClearBufferuiv) (GLenum buffer, GLint drawbuffer, const GLuint* value);
316
GL_APICALL void (* GL_APIENTRY glClearBufferfv) (GLenum buffer, GLint drawbuffer, const GLfloat* value);
317
GL_APICALL void (* GL_APIENTRY glClearBufferfi) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
318
GL_APICALL const GLubyte* (* GL_APIENTRY glGetStringi) (GLenum name, GLuint index);
319
GL_APICALL void (* GL_APIENTRY glCopyBufferSubData) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
320
GL_APICALL void (* GL_APIENTRY glGetUniformIndices) (GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices);
321
GL_APICALL void (* GL_APIENTRY glGetActiveUniformsiv) (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
322
GL_APICALL GLuint (* GL_APIENTRY glGetUniformBlockIndex) (GLuint program, const GLchar* uniformBlockName);
323
GL_APICALL void (* GL_APIENTRY glGetActiveUniformBlockiv) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
324
GL_APICALL void (* GL_APIENTRY glGetActiveUniformBlockName) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
325
GL_APICALL void (* GL_APIENTRY glUniformBlockBinding) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
326
GL_APICALL void (* GL_APIENTRY glDrawArraysInstanced) (GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);
327
GL_APICALL void (* GL_APIENTRY glDrawElementsInstanced) (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount);
328
GL_APICALL GLsync (* GL_APIENTRY glFenceSync) (GLenum condition, GLbitfield flags);
329
GL_APICALL GLboolean (* GL_APIENTRY glIsSync) (GLsync sync);
330
GL_APICALL void (* GL_APIENTRY glDeleteSync) (GLsync sync);
331
GL_APICALL GLenum (* GL_APIENTRY glClientWaitSync) (GLsync sync, GLbitfield flags, GLuint64 timeout);
332
GL_APICALL void (* GL_APIENTRY glWaitSync) (GLsync sync, GLbitfield flags, GLuint64 timeout);
333
GL_APICALL void (* GL_APIENTRY glGetInteger64v) (GLenum pname, GLint64* params);
334
GL_APICALL void (* GL_APIENTRY glGetSynciv) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
335
GL_APICALL void (* GL_APIENTRY glGetInteger64i_v) (GLenum target, GLuint index, GLint64* data);
336
GL_APICALL void (* GL_APIENTRY glGetBufferParameteri64v) (GLenum target, GLenum pname, GLint64* params);
337
GL_APICALL void (* GL_APIENTRY glGenSamplers) (GLsizei count, GLuint* samplers);
338
GL_APICALL void (* GL_APIENTRY glDeleteSamplers) (GLsizei count, const GLuint* samplers);
339
GL_APICALL GLboolean (* GL_APIENTRY glIsSampler) (GLuint sampler);
340
GL_APICALL void (* GL_APIENTRY glBindSampler) (GLuint unit, GLuint sampler);
341
GL_APICALL void (* GL_APIENTRY glSamplerParameteri) (GLuint sampler, GLenum pname, GLint param);
342
GL_APICALL void (* GL_APIENTRY glSamplerParameteriv) (GLuint sampler, GLenum pname, const GLint* param);
343
GL_APICALL void (* GL_APIENTRY glSamplerParameterf) (GLuint sampler, GLenum pname, GLfloat param);
344
GL_APICALL void (* GL_APIENTRY glSamplerParameterfv) (GLuint sampler, GLenum pname, const GLfloat* param);
345
GL_APICALL void (* GL_APIENTRY glGetSamplerParameteriv) (GLuint sampler, GLenum pname, GLint* params);
346
GL_APICALL void (* GL_APIENTRY glGetSamplerParameterfv) (GLuint sampler, GLenum pname, GLfloat* params);
347
GL_APICALL void (* GL_APIENTRY glVertexAttribDivisor) (GLuint index, GLuint divisor);
348
GL_APICALL void (* GL_APIENTRY glBindTransformFeedback) (GLenum target, GLuint id);
349
GL_APICALL void (* GL_APIENTRY glDeleteTransformFeedbacks) (GLsizei n, const GLuint* ids);
350
GL_APICALL void (* GL_APIENTRY glGenTransformFeedbacks) (GLsizei n, GLuint* ids);
351
GL_APICALL GLboolean (* GL_APIENTRY glIsTransformFeedback) (GLuint id);
352
GL_APICALL void (* GL_APIENTRY glPauseTransformFeedback) (void);
353
GL_APICALL void (* GL_APIENTRY glResumeTransformFeedback) (void);
354
GL_APICALL void (* GL_APIENTRY glGetProgramBinary) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
355
GL_APICALL void (* GL_APIENTRY glProgramBinary) (GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
356
GL_APICALL void (* GL_APIENTRY glProgramParameteri) (GLuint program, GLenum pname, GLint value);
357
GL_APICALL void (* GL_APIENTRY glInvalidateFramebuffer) (GLenum target, GLsizei numAttachments, const GLenum* attachments);
358
GL_APICALL void (* GL_APIENTRY glInvalidateSubFramebuffer) (GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
359
GL_APICALL void (* GL_APIENTRY glTexStorage2D) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
360
GL_APICALL void (* GL_APIENTRY glTexStorage3D) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
361
GL_APICALL void (* GL_APIENTRY glGetInternalformativ) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params);
363
/* EXT_blend_func_extended */
364
GL_APICALL void (* GL_APIENTRY glBindFragDataLocationIndexedEXT) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
365
GL_APICALL void (* GL_APIENTRY glBindFragDataLocationEXT) (GLuint program, GLuint color, const GLchar *name);
366
GL_APICALL GLint (* GL_APIENTRY glGetProgramResourceLocationIndexEXT) (GLuint program, GLenum programInterface, const GLchar *name);
367
GL_APICALL GLint (* GL_APIENTRY glGetFragDataIndexEXT) (GLuint program, const GLchar *name);
369
/* OES_copy_image, etc. */
370
GL_APICALL void (* GL_APIENTRY glCopyImageSubDataOES) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);