1GLOBAL
2    base_opcode 2048
3    encoder_headers <string.h> "glUtils.h" "GL2EncoderUtils.h"
4
5#void glBindAttribLocation(GLuint program, GLuint index, GLchar *name)
6glBindAttribLocation
7    flag custom_decoder
8    len name (strlen(name) + 1)
9
10#void glBufferData(GLenum target, GLsizeiptr size, GLvoid *data, GLenum usage)
11glBufferData
12    len data size
13    var_flag data nullAllowed isLarge
14
15#void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data)
16glBufferSubData
17    len data size
18    var_flag data nullAllowed isLarge
19
20#void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLvoid *data)
21glCompressedTexImage2D
22    len data imageSize
23    param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
24    var_flag data nullAllowed isLarge
25    param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
26
27#void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLvoid *data)
28glCompressedTexSubImage2D
29    len data imageSize
30    param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
31    var_flag data nullAllowed isLarge
32    param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
33
34glDeleteShader
35    flag custom_decoder
36
37glDeleteProgram
38    flag custom_decoder
39
40#void glDeleteBuffers(GLsizei n, GLuint *buffers)
41glDeleteBuffers
42    flag custom_decoder
43    len buffers (n * sizeof(GLuint))
44    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
45
46#void glDeleteFramebuffers(GLsizei n, GLuint *framebuffers)
47glDeleteFramebuffers
48    flag custom_decoder
49    len framebuffers (n * sizeof(GLuint))
50    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
51
52#void glDeleteRenderbuffers(GLsizei n, GLuint *renderbuffers)
53glDeleteRenderbuffers
54    flag custom_decoder
55    len renderbuffers (n * sizeof(GLuint))
56    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
57
58#void glDeleteTextures(GLsizei n, GLuint *textures)
59glDeleteTextures
60    flag custom_decoder
61    len textures (n * sizeof(GLuint))
62    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
63
64#void glDrawElements(GLenum mode, GLsizei count, GLenum type, GLvoid *indices)
65glDrawElements
66    flag unsupported
67
68glCreateShader
69    flag custom_decoder
70
71glCompileShader
72    flag custom_decoder
73
74glAttachShader
75    flag custom_decoder
76
77glDetachShader
78    flag custom_decoder
79
80glIsShader
81    flag custom_decoder
82
83glLinkProgram
84    flag custom_decoder
85
86glCreateProgram
87    flag custom_decoder
88
89#void glGenBuffers(GLsizei n, GLuint *buffers)
90glGenBuffers
91    flag custom_decoder
92    len buffers (n * sizeof(GLuint))
93    dir buffers out
94    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
95
96#void glGenFramebuffers(GLsizei n, GLuint *framebuffers)
97glGenFramebuffers
98    flag custom_decoder
99    len framebuffers (n * sizeof(GLuint))
100    dir framebuffers out
101    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
102
103#void glGenRenderbuffers(GLsizei n, GLuint *renderbuffers)
104glGenRenderbuffers
105    flag custom_decoder
106    len renderbuffers (n * sizeof(GLuint))
107    dir renderbuffers out
108    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
109
110#void glGenTextures(GLsizei n, GLuint *textures)
111glGenTextures
112    flag custom_decoder
113    len textures (n * sizeof(GLuint))
114    dir textures out
115    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
116
117#void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)
118glGetActiveAttrib
119    param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
120    len name bufsize
121    dir name out
122    var_flag name nullAllowed
123    dir length out
124    len length (sizeof(GLsizei))
125    var_flag length nullAllowed
126    dir size out
127    len size (sizeof(GLint))
128    var_flag size nullAllowed
129    dir type out
130    len type (sizeof(GLenum))
131    var_flag type nullAllowed
132
133#void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)
134glGetActiveUniform
135    param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
136    len name bufsize
137    dir name out
138      var_flag name nullAllowed
139    dir length out
140    len length (sizeof(GLsizei))
141    var_flag length nullAllowed
142    dir size out
143    len size (sizeof(GLint))
144    var_flag size nullAllowed
145    dir type out
146    len type (sizeof(GLenum))
147    var_flag type nullAllowed
148
149
150#void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei *count, GLuint *shaders)
151glGetAttachedShaders
152    len shaders (maxcount*sizeof(GLuint))
153    dir shaders out
154    dir count out
155    var_flag count nullAllowed
156    len count (sizeof(GLsizei))
157
158#int glGetAttribLocation(GLuint program, GLchar *name)
159glGetAttribLocation
160    len name (strlen(name) + 1)
161
162#void glGetBooleanv(GLenum pname, GLboolean *params)
163glGetBooleanv
164    dir params out
165    len params (glUtilsParamSize(pname) * sizeof(GLboolean))
166
167#void glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params)
168glGetBufferParameteriv
169    len params (sizeof(GLint))
170    dir params out
171
172#void glGetFloatv(GLenum pname, GLfloat *params)
173glGetFloatv
174    dir params out
175    len params (glUtilsParamSize(pname) * sizeof(GLfloat))
176
177#void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params)
178glGetFramebufferAttachmentParameteriv
179    dir params out
180    len params (sizeof(GLint))
181
182#void glGetIntegerv(GLenum pname, GLint *params)
183glGetIntegerv
184    dir params out
185    len params (glUtilsParamSize(pname) * sizeof(GLint))
186
187#void glGetProgramiv(GLuint program, GLenum pname, GLint *params)
188glGetProgramiv
189    flag custom_decoder
190    dir params out
191    len params (glUtilsParamSize(pname) * sizeof(GLint))
192
193#void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei *length, GLchar *infolog)
194glGetProgramInfoLog
195    flag custom_decoder
196    dir infolog out
197    len infolog bufsize
198    param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
199    dir length out
200    len length sizeof(GLsizei)
201    var_flag length nullAllowed
202
203#void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params)
204glGetRenderbufferParameteriv
205    dir params out
206    len params sizeof(GLint)
207# XXX - might change if pname with value larger then one is added
208
209#void glGetShaderiv(GLuint shader, GLenum pname, GLint *params)
210glGetShaderiv
211    flag custom_decoder
212    dir params out
213    len params sizeof(GLint)
214# XXX - might change if pname with value larger then one is added
215
216#void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *infolog)
217glGetShaderInfoLog
218    flag custom_decoder
219    dir length out
220    len length (sizeof(GLsizei))
221    var_flag length nullAllowed
222    dir infolog out
223    len infolog bufsize
224    param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
225
226#void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision)
227glGetShaderPrecisionFormat
228    dir range out
229    len range (2 * sizeof(GLint))
230    dir precision out
231    len precision (sizeof(GLint))
232
233#void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source)
234glGetShaderSource
235    flag custom_decoder
236    dir length out
237    len length (sizeof(GLsizei))
238    var_flag length nullAllowed
239    dir source out
240    len source bufsize
241    param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
242
243#GLubyte* glGetString(GLenum name)
244glGetString
245    flag unsupported
246
247#void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
248glGetTexParameterfv
249    dir params out
250    len params (glUtilsParamSize(pname) * sizeof(GLfloat))
251
252#void glGetTexParameteriv(GLenum target, GLenum pname, GLint *params)
253glGetTexParameteriv
254    dir params out
255    len params (glUtilsParamSize(pname) * sizeof(GLint))
256
257#void glGetUniformfv(GLuint program, GLint location, GLfloat *params)
258glGetUniformfv
259    dir params out
260    len params glSizeof(glesv2_enc::uniformType(self, program, location))
261
262#void glGetUniformiv(GLuint program, GLint location, GLint *params)
263glGetUniformiv
264    dir params out
265    len params glSizeof(glesv2_enc::uniformType(self, program, location))
266
267#int glGetUniformLocation(GLuint program, GLchar *name)
268glGetUniformLocation
269    len name (strlen(name) + 1)
270
271# client-state shall be handled locally by the encoder in most cases.
272# however, GL_CURRENT_VERTEX_ATTRIB and potential others are handled by the server side,
273# thus we still need to implement it.
274#void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params)
275glGetVertexAttribfv
276    dir params out
277    len params (glUtilsParamSize(pname) * sizeof(GLfloat))
278
279#see glGetVertexAttribfv for comments
280#void glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params)
281glGetVertexAttribiv
282    dir params out
283    len params (glUtilsParamSize(pname) * sizeof(GLint))
284
285#void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
286glReadPixels
287    dir pixels out
288    len pixels glesv2_enc::pixelDataSize(self, width, height, format, type, 1)
289	custom_guest_unpack pixels stream->readbackPixels(self, width, height, format, type, pixels)
290
291glReadPixelsOffsetAEMU
292    flag custom_decoder
293    flag not_api
294
295#void glShaderBinary(GLsizei n, GLuint *shaders, GLenum binaryformat, GLvoid *binary, GLsizei length)
296glShaderBinary
297    flag unsupported
298
299#void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLvoid *pixels)
300glTexImage2D
301    dir pixels in
302    len pixels glesv2_enc::pixelDataSize(self, width, height, format, type, 0)
303	custom_guest_pack pixels stream->uploadPixels(self, width, height, 1, format, type, pixels)
304    var_flag pixels nullAllowed isLarge
305
306#void glTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
307glTexParameterfv
308    len params (glUtilsParamSize(pname) * sizeof(GLfloat))
309#void glTexParameteriv(GLenum target, GLenum pname, GLint *params)
310glTexParameteriv
311    len params (glUtilsParamSize(pname) * sizeof(GLint))
312
313#void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
314glTexSubImage2D
315    len pixels glesv2_enc::pixelDataSize(self, width, height, format, type, 0)
316	custom_guest_pack pixels stream->uploadPixels(self, width, height, 1, format, type, pixels)
317    var_flag pixels nullAllowed isLarge
318
319#void glUniform1fv(GLint location, GLsizei count, GLfloat *v)
320glUniform1fv
321    len v (count * sizeof(GLfloat))
322
323#void glUniform1iv(GLint location, GLsizei count, GLint *v)
324glUniform1iv
325    len v (count * sizeof(GLint))
326
327#void glUniform2fv(GLint location, GLsizei count, GLfloat *v)
328glUniform2fv
329    len v (count * 2 * sizeof(GLfloat))
330
331#void glUniform2iv(GLint location, GLsizei count, GLint *v)
332glUniform2iv
333    len v (count * 2 * sizeof(GLint))
334
335#void glUniform3fv(GLint location, GLsizei count, GLfloat *v)
336glUniform3fv
337    len v (count * 3 * sizeof(GLfloat))
338
339#void glUniform3iv(GLint location, GLsizei count, GLint *v)
340glUniform3iv
341    len v (3 * count * sizeof(GLint))
342
343#void glUniform4fv(GLint location, GLsizei count, GLfloat *v)
344glUniform4fv
345    len v (4 * count * sizeof(GLfloat))
346
347#void glUniform4iv(GLint location, GLsizei count, GLint *v)
348glUniform4iv
349    len v (4 * count * sizeof(GLint))
350
351#void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, GLfloat *value)
352glUniformMatrix2fv
353    len value (count * 4 * sizeof(GLfloat))
354
355#void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, GLfloat *value)
356glUniformMatrix3fv
357    len value (count * 9 * sizeof(GLfloat))
358
359#void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, GLfloat *value)
360glUniformMatrix4fv
361    len value (count * 16 * sizeof(GLfloat))
362
363#void glVertexAttrib1fv(GLuint indx, GLfloat *values)
364glVertexAttrib1fv
365    len values (sizeof(GLfloat))
366#void glVertexAttrib2fv(GLuint indx, GLfloat *values)
367glVertexAttrib2fv
368    len values (2 * sizeof(GLfloat))
369
370#void glVertexAttrib3fv(GLuint indx, GLfloat *values)
371glVertexAttrib3fv
372    len values (3 * sizeof(GLfloat))
373
374#void glVertexAttrib4fv(GLuint indx, GLfloat *values)
375glVertexAttrib4fv
376    len values (4 * sizeof(GLfloat))
377
378#void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLvoid *ptr)
379glVertexAttribPointer
380    flag unsupported
381
382#void glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary)
383glGetProgramBinaryOES
384    flag unsupported
385
386#void glProgramBinaryOES(GLuint program, GLenum binaryFormat, GLvoid *binary, GLint length)
387glProgramBinaryOES
388    flag unsupported
389
390#void* glMapBufferOES(GLenum target, GLenum access)
391glMapBufferOES
392    flag unsupported
393
394#void glTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLvoid *pixels)
395glTexImage3DOES
396    len pixels glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0)
397    var_flag pixels nullAllowed isLarge
398
399#void glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *pixels)
400glTexSubImage3DOES
401    len pixels glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0)
402    var_flag pixels nullAllowed isLarge
403
404#void glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLvoid *data)
405glCompressedTexImage3DOES
406    len data imageSize
407    param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
408    var_flag data nullAllowed isLarge
409
410#void glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLvoid *data)
411glCompressedTexSubImage3DOES
412    len data imageSize
413    param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
414    var_flag data nullAllowed isLarge
415
416#void glDeleteVertexArraysOES(GLsizei n, GLuint *arrays)
417glDeleteVertexArraysOES
418    flag custom_decoder
419    len arrays (n * sizeof(GLuint))
420    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
421
422#void glGenVertexArraysOES(GLsizei n, GLuint *arrays)
423glGenVertexArraysOES
424    flag custom_decoder
425    len arrays (n * sizeof(GLuint))
426    dir arrays out
427    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
428
429
430#void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, GLenum *attachments)
431glDiscardFramebufferEXT
432    len attachments (numAttachments * sizeof(GLenum))
433
434#void glMultiDrawArraysEXT(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount)
435glMultiDrawArraysEXT
436    flag unsupported
437#void glMultiDrawElementsEXT(GLenum mode, GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount)
438glMultiDrawElementsEXT
439    flag unsupported
440
441
442# handled by encoder
443#void glShaderSource(GLuint shader, GLsizei count, GLstr *string, const GLint *length)
444glShaderSource
445    flag unsupported
446
447
448#void glGetPerfMonitorGroupsAMD(GLint *numGroups, GLsizei groupsSize, GLuint *groups)
449glGetPerfMonitorGroupsAMD
450    flag unsupported
451
452#void glGetPerfMonitorCountersAMD(GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters)
453glGetPerfMonitorCountersAMD
454    flag unsupported
455
456#void glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString)
457glGetPerfMonitorGroupStringAMD
458    flag unsupported
459
460#void glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString)
461glGetPerfMonitorCounterStringAMD
462    flag unsupported
463
464#void glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid *data)
465glGetPerfMonitorCounterInfoAMD
466    flag unsupported
467
468#void glGenPerfMonitorsAMD(GLsizei n, GLuint *monitors)
469glGenPerfMonitorsAMD
470    flag unsupported
471
472#void glDeletePerfMonitorsAMD(GLsizei n, GLuint *monitors)
473glDeletePerfMonitorsAMD
474    flag unsupported
475
476#void glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList)
477glSelectPerfMonitorCountersAMD
478    flag unsupported
479
480#void glBeginPerfMonitorAMD(GLuint monitor)
481glBeginPerfMonitorAMD
482    flag unsupported
483
484#void glEndPerfMonitorAMD(GLuint monitor)
485glEndPerfMonitorAMD
486    flag unsupported
487
488#void glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten)
489glGetPerfMonitorCounterDataAMD
490    flag unsupported
491
492#void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
493glRenderbufferStorageMultisampleIMG
494    flag unsupported
495
496#void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
497glFramebufferTexture2DMultisampleIMG
498    flag unsupported
499
500#void glDeleteFencesNV(GLsizei n, GLuint *fences)
501glDeleteFencesNV
502    flag unsupported
503
504#void glGenFencesNV(GLsizei n, GLuint *fences)
505glGenFencesNV
506    flag unsupported
507
508#GLboolean glIsFenceNV(GLuint fence)
509glIsFenceNV
510    flag unsupported
511
512#GLboolean glTestFenceNV(GLuint fence)
513glTestFenceNV
514    flag unsupported
515
516#void glGetFenceivNV(GLuint fence, GLenum pname, GLint *params)
517glGetFenceivNV
518    flag unsupported
519
520#void glFinishFenceNV(GLuint fence)
521glFinishFenceNV
522    flag unsupported
523
524#void glSetFenceNV(GLuint fence, GLenum condition)
525glSetFenceNV
526    flag unsupported
527
528#void glCoverageMaskNV(GLboolean mask)
529glCoverageMaskNV
530    flag unsupported
531
532#void glCoverageOperationNV(GLenum operation)
533glCoverageOperationNV
534    flag unsupported
535
536#void glGetDriverControlsQCOM(GLint *num, GLsizei size, GLuint *driverControls)
537glGetDriverControlsQCOM
538    flag unsupported
539
540#void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString)
541glGetDriverControlStringQCOM
542    flag unsupported
543
544#void glEnableDriverControlQCOM(GLuint driverControl)
545glEnableDriverControlQCOM
546    flag unsupported
547
548#void glDisableDriverControlQCOM(GLuint driverControl)
549glDisableDriverControlQCOM
550    flag unsupported
551
552#void glExtGetTexturesQCOM(GLuint *textures, GLint maxTextures, GLint *numTextures)
553glExtGetTexturesQCOM
554    flag unsupported
555
556#void glExtGetBuffersQCOM(GLuint *buffers, GLint maxBuffers, GLint *numBuffers)
557glExtGetBuffersQCOM
558    flag unsupported
559
560#void glExtGetRenderbuffersQCOM(GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers)
561glExtGetRenderbuffersQCOM
562    flag unsupported
563
564#void glExtGetFramebuffersQCOM(GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers)
565glExtGetFramebuffersQCOM
566    flag unsupported
567
568#void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params)
569glExtGetTexLevelParameterivQCOM
570    flag unsupported
571
572#void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param)
573glExtTexObjectStateOverrideiQCOM
574    flag unsupported
575
576#void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels)
577glExtGetTexSubImageQCOM
578    flag unsupported
579
580#void glExtGetBufferPointervQCOM(GLenum target, GLvoidptr *params)
581glExtGetBufferPointervQCOM
582    flag unsupported
583
584#void glExtGetShadersQCOM(GLuint *shaders, GLint maxShaders, GLint *numShaders)
585glExtGetShadersQCOM
586    flag unsupported
587
588#void glExtGetProgramsQCOM(GLuint *programs, GLint maxPrograms, GLint *numPrograms)
589glExtGetProgramsQCOM
590    flag unsupported
591
592#GLboolean glExtIsProgramBinaryQCOM(GLuint program)
593glExtIsProgramBinaryQCOM
594    flag unsupported
595
596#void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar *source, GLint *length)
597glExtGetProgramBinarySourceQCOM
598    flag unsupported
599
600#void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
601glStartTilingQCOM
602    flag unsupported
603
604#void glEndTilingQCOM(GLbitfield preserveMask)
605glEndTilingQCOM
606    flag unsupported
607
608
609#void glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride,  void * data, GLuint datalen)
610glVertexAttribPointerData
611    len data datalen
612    custom_pack data glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen)
613    flag custom_decoder
614    flag not_api
615
616glVertexAttribPointerOffset
617    flag custom_decoder
618    flag not_api
619
620#client-state, handled by the encoder
621#GL_ENTRY(void, glGetVertexAttribPointerv, GLuint index, GLenum pname, GLvoid** pointer)
622glGetVertexAttribPointerv
623    flag unsupported
624
625glDrawElementsData
626    len data datalen
627    flag custom_decoder
628    flag not_api
629
630glDrawElementsOffset
631    flag custom_decoder
632    flag not_api
633
634#GL_ENTRY(void, glGetCompressedTextureFormats, int count, GLint *formats)
635glGetCompressedTextureFormats
636    dir formats out
637    len formats (count * sizeof(GLint))
638    flag custom_decoder
639    flag not_api
640
641#GL_ENTRY(void, glShaderString, GLuint shader, GLchar *string, GLsizei len)
642glShaderString
643    len string len
644    flag custom_decoder
645    flag not_api
646
647glFinishRoundTrip
648    flag custom_decoder
649    flag not_api
650
651# GLES 3.0
652
653glGenVertexArrays
654    flag custom_decoder
655    len arrays (n * sizeof(GLuint))
656    dir arrays out
657    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
658
659glDeleteVertexArrays
660    flag custom_decoder
661    len arrays (n * sizeof(GLuint))
662    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
663
664glMapBufferRange
665    flag unsupported
666glUnmapBuffer
667    flag unsupported
668glFlushMappedBufferRange
669    flag unsupported
670
671glMapBufferRangeAEMU
672    dir mapped out
673    len mapped length
674    var_flag mapped nullAllowed
675    flag custom_decoder
676    flag not_api
677
678glUnmapBufferAEMU
679    dir guest_buffer in
680    len guest_buffer length
681    var_flag guest_buffer nullAllowed
682    dir out_res out
683    len out_res (sizeof(GLboolean))
684    flag custom_decoder
685    flag not_api
686
687glFlushMappedBufferRangeAEMU
688    dir guest_buffer in
689    len guest_buffer length
690    var_flag guest_buffer nullAllowed
691    flag custom_decoder
692    flag not_api
693
694glReadPixelsOffsetAEMU
695    flag custom_decoder
696    flag not_api
697
698glCompressedTexImage2DOffsetAEMU
699    flag custom_decoder
700    flag not_api
701
702glCompressedTexSubImage2DOffsetAEMU
703    flag custom_decoder
704    flag not_api
705
706glTexImage2DOffsetAEMU
707    flag custom_decoder
708    flag not_api
709
710glTexSubImage2DOffsetAEMU
711    flag custom_decoder
712    flag not_api
713
714glCopyBufferSubData
715    flag flushOnEncode
716
717glClearBufferiv
718    dir value in
719    len value (sizeof(GLint) * glesv2_enc::clearBufferNumElts(self, buffer))
720
721glClearBufferuiv
722    dir value in
723    len value (sizeof(GLuint) * glesv2_enc::clearBufferNumElts(self, buffer))
724
725glClearBufferfv
726    dir value in
727    len value (sizeof(GLfloat) * glesv2_enc::clearBufferNumElts(self, buffer))
728
729glGetBufferParameteri64v
730    flag unsupported
731
732glGetBufferPointerv
733    flag unsupported
734
735glGetUniformBlockIndex
736    len uniformBlockName (strlen(uniformBlockName) + 1)
737
738glGetUniformIndices
739    flag unsupported
740
741glGetUniformIndicesAEMU
742    dir packedUniformNames in
743    len packedUniformNames packedLen
744    dir uniformIndices out
745    len uniformIndices (uniformCount * sizeof(GLuint))
746    flag custom_decoder
747    flag not_api
748
749glGetActiveUniformBlockiv
750    dir params out
751    len params (glesv2_enc::glActiveUniformBlockivParamSize(self, program, uniformBlockIndex, pname) * sizeof(GLint))
752
753glGetActiveUniformBlockName
754    dir uniformBlockName out
755    len uniformBlockName bufSize
756    param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
757    var_flag uniformBlockName nullAllowed
758    dir length out
759    len length (sizeof(GLsizei))
760    var_flag length nullAllowed
761
762glUniform1uiv
763    len value (count * sizeof(GLuint))
764
765glUniform2uiv
766    len value (count * 2 * sizeof(GLuint))
767
768glUniform3uiv
769    len value (count * 3 * sizeof(GLuint))
770
771glUniform4uiv
772    len value (count * 4 * sizeof(GLuint))
773
774glUniformMatrix2x3fv
775    len value (count * 6 * sizeof(GLfloat))
776
777glUniformMatrix3x2fv
778    len value (count * 6 * sizeof(GLfloat))
779
780glUniformMatrix2x4fv
781    len value (count * 8 * sizeof(GLfloat))
782
783glUniformMatrix4x2fv
784    len value (count * 8 * sizeof(GLfloat))
785
786glUniformMatrix3x4fv
787    len value (count * 12 * sizeof(GLfloat))
788
789glUniformMatrix4x3fv
790    len value (count * 12 * sizeof(GLfloat))
791
792glGetUniformuiv
793    dir params out
794    len params glSizeof(glesv2_enc::uniformType(self, program, location))
795
796glGetActiveUniformsiv
797    len uniformIndices (uniformCount * sizeof(GLuint))
798    dir params out
799    len params (uniformCount * sizeof(GLint))
800
801glVertexAttribI4iv
802    len v (4 * sizeof(GLint))
803
804glVertexAttribI4uiv
805    len v (4 * sizeof(GLuint))
806
807glVertexAttribIPointer
808    flag unsupported
809
810glVertexAttribIPointerOffsetAEMU
811    flag custom_decoder
812    flag not_api
813
814glVertexAttribIPointerDataAEMU
815    len data datalen
816    custom_pack data glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen)
817    flag custom_decoder
818    flag not_api
819
820glGetVertexAttribIiv
821    dir params out
822    len params (glUtilsParamSize(pname) * sizeof(GLint))
823
824glGetVertexAttribIuiv
825    dir params out
826    len params (glUtilsParamSize(pname) * sizeof(GLuint))
827
828glDrawElementsInstanced
829    flag unsupported
830
831glDrawElementsInstancedDataAEMU
832    len indices datalen
833    flag custom_decoder
834    flag not_api
835
836glDrawElementsInstancedOffsetAEMU
837    flag custom_decoder
838    flag not_api
839
840glDrawRangeElements
841    flag unsupported
842
843glDrawRangeElementsDataAEMU
844    len indices datalen
845    flag custom_decoder
846    flag not_api
847
848glDrawRangeElementsOffsetAEMU
849    flag custom_decoder
850    flag not_api
851
852glFenceSync
853    flag unsupported
854
855glClientWaitSync
856    flag unsupported
857
858glWaitSync
859    flag unsupported
860
861glDeleteSync
862    flag unsupported
863
864glIsSync
865    flag unsupported
866
867glGetSynciv
868    flag unsupported
869
870glFenceSyncAEMU
871    flag custom_decoder
872    flag not_api
873
874glClientWaitSyncAEMU
875    flag custom_decoder
876    flag not_api
877
878glWaitSyncAEMU
879    flag custom_decoder
880    flag not_api
881
882glDeleteSyncAEMU
883    flag custom_decoder
884    flag not_api
885
886glIsSyncAEMU
887    flag custom_decoder
888    flag not_api
889
890glGetSyncivAEMU
891    flag custom_decoder
892    flag not_api
893    param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
894    dir length out
895    len length (sizeof(GLsizei))
896    var_flag length nullAllowed
897    dir values out
898    len values (bufSize * sizeof(GLint))
899
900glGetInternalformativ
901    dir params out
902    len params (sizeof(GLint) * bufSize)
903
904glDrawBuffers
905    len bufs (n * sizeof(GLenum))
906
907glInvalidateFramebuffer
908    len attachments (numAttachments * sizeof(GLenum))
909
910glInvalidateSubFramebuffer
911    len attachments (numAttachments * sizeof(GLenum))
912
913glGenTransformFeedbacks
914    flag custom_decoder
915    dir ids out
916    len ids (n * sizeof(GLuint))
917    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
918
919glDeleteTransformFeedbacks
920    flag custom_decoder
921    len ids (n * sizeof(GLuint))
922    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
923
924glTransformFeedbackVaryings
925    flag unsupported
926
927glTransformFeedbackVaryingsAEMU
928    dir packedVaryings in
929    len packedVaryings packedVaryingsLen
930    flag custom_decoder
931    flag not_api
932
933glGetTransformFeedbackVarying
934    dir name out
935    len name bufSize
936    param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
937    var_flag name nullAllowed
938    dir length out
939    len length (sizeof(GLsizei))
940    var_flag length nullAllowed
941    dir size out
942    len size (sizeof(GLsizei))
943    var_flag type nullAllowed
944    dir type out
945    len type (sizeof(GLenum))
946    var_flag type nullAllowed
947
948glGenSamplers
949    flag custom_decoder
950    dir samplers out
951    len samplers (n * sizeof(GLuint))
952    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
953
954glDeleteSamplers
955    flag custom_decoder
956    len samplers (n * sizeof(GLuint))
957    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
958
959glSamplerParameterfv
960    len params (glUtilsParamSize(pname) * sizeof(GLfloat))
961
962glSamplerParameteriv
963    len params (glUtilsParamSize(pname) * sizeof(GLint))
964
965glGetSamplerParameterfv
966    dir params out
967    len params (glUtilsParamSize(pname) * sizeof(GLfloat))
968
969glGetSamplerParameteriv
970    dir params out
971    len params (glUtilsParamSize(pname) * sizeof(GLint))
972
973glGenQueries
974    flag custom_decoder
975    dir queries out
976    len queries (n * sizeof(GLuint))
977    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
978
979glDeleteQueries
980    flag custom_decoder
981    len queries (n * sizeof(GLuint))
982    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
983
984glGetQueryiv
985    dir params out
986    len params (glUtilsParamSize(pname) * sizeof(GLint))
987
988glGetQueryObjectuiv
989    dir params out
990    len params (glUtilsParamSize(pname) * sizeof(GLuint))
991
992glProgramBinary
993    len binary length
994
995glGetProgramBinary
996    param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
997    dir binary out
998    len binary bufSize
999    dir binaryFormat out
1000    len binaryFormat (sizeof(GLenum))
1001    var_flag length nullAllowed
1002    dir length out
1003    len length (sizeof(GLsizei))
1004
1005glGetFragDataLocation
1006    len name (strlen(name) + 1)
1007
1008glGetInteger64v
1009    dir data out
1010    len data (glUtilsParamSize(pname) * sizeof(GLint64))
1011
1012# No need to account for custom sizes since indexed variants
1013# are all on indxed buffers like transform feedback buffers,
1014# UBOs, or SSBOs, and querying their sizes and offsets.
1015glGetIntegeri_v
1016    dir data out
1017    len data (sizeof(GLint))
1018
1019glGetInteger64i_v
1020    dir data out
1021    len data (sizeof(GLint64))
1022
1023glTexImage3D
1024    dir data in
1025    len data glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0)
1026	custom_guest_pack data stream->uploadPixels(self, width, height, depth, format, type, data)
1027    var_flag data nullAllowed isLarge
1028
1029glTexImage3DOffsetAEMU
1030    flag custom_decoder
1031    flag not_api
1032
1033glTexSubImage3D
1034    len data glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0)
1035	custom_guest_pack data stream->uploadPixels(self, width, height, depth, format, type, data)
1036    var_flag data nullAllowed isLarge
1037
1038glTexSubImage3DOffsetAEMU
1039    flag custom_decoder
1040    flag not_api
1041
1042glCompressedTexImage3D
1043    len data imageSize
1044    param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
1045    var_flag data nullAllowed isLarge
1046
1047glCompressedTexImage3DOffsetAEMU
1048    flag custom_decoder
1049    flag not_api
1050
1051glCompressedTexSubImage3D
1052    param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
1053    len data imageSize
1054    var_flag data nullAllowed isLarge
1055
1056glCompressedTexSubImage3DOffsetAEMU
1057    flag custom_decoder
1058    flag not_api
1059
1060glGetStringi
1061    flag unsupported
1062
1063# GLES 3.1
1064
1065glGetBooleani_v
1066    dir data out
1067    len data (sizeof(GLboolean))
1068
1069glGenProgramPipelines
1070    flag custom_decoder
1071    dir pipelines out
1072    len pipelines (n * sizeof(GLuint))
1073
1074glDeleteProgramPipelines
1075    flag custom_decoder
1076    len pipelines (n * sizeof(GLuint))
1077    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
1078
1079glGetProgramPipelineiv
1080    dir params out
1081    len params (glUtilsParamSize(pname) * sizeof(GLint))
1082
1083glGetProgramPipelineInfoLog
1084    dir infoLog out
1085    len infoLog bufSize
1086    param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
1087    dir length out
1088    len length sizeof(GLsizei)
1089    var_flag length nullAllowed
1090
1091glCreateShaderProgramv
1092    flag unsupported
1093
1094glCreateShaderProgramvAEMU
1095    len packedStrings packedLen
1096    flag custom_decoder
1097    flag not_api
1098
1099glProgramUniform1fv
1100    len value (count * sizeof(GLfloat))
1101
1102glProgramUniform2fv
1103    len value (count * 2 * sizeof(GLfloat))
1104
1105glProgramUniform3fv
1106    len value (count * 3 * sizeof(GLfloat))
1107
1108glProgramUniform4fv
1109    len value (count * 4 * sizeof(GLfloat))
1110
1111glProgramUniform1iv
1112    len value (count * sizeof(GLint))
1113
1114glProgramUniform2iv
1115    len value (count * 2 * sizeof(GLint))
1116
1117glProgramUniform3iv
1118    len value (count * 3 * sizeof(GLint))
1119
1120glProgramUniform4iv
1121    len value (count * 4 * sizeof(GLint))
1122
1123glProgramUniform1uiv
1124    len value (count * sizeof(GLuint))
1125
1126glProgramUniform2uiv
1127    len value (count * 2 * sizeof(GLuint))
1128
1129glProgramUniform3uiv
1130    len value (count * 3 * sizeof(GLuint))
1131
1132glProgramUniform4uiv
1133    len value (count * 4 * sizeof(GLuint))
1134
1135glProgramUniformMatrix2fv
1136    len value (count * 4 * sizeof(GLfloat))
1137
1138glProgramUniformMatrix3fv
1139    len value (count * 9 * sizeof(GLfloat))
1140
1141glProgramUniformMatrix4fv
1142    len value (count * 16 * sizeof(GLfloat))
1143
1144glProgramUniformMatrix2x3fv
1145    len value (count * 6 * sizeof(GLfloat))
1146
1147glProgramUniformMatrix3x2fv
1148    len value (count * 6 * sizeof(GLfloat))
1149
1150glProgramUniformMatrix2x4fv
1151    len value (count * 8 * sizeof(GLfloat))
1152
1153glProgramUniformMatrix4x2fv
1154    len value (count * 8 * sizeof(GLfloat))
1155
1156glProgramUniformMatrix3x4fv
1157    len value (count * 12 * sizeof(GLfloat))
1158
1159glProgramUniformMatrix4x3fv
1160    len value (count * 12 * sizeof(GLfloat))
1161
1162glGetProgramInterfaceiv
1163    dir params out
1164    len params (glUtilsParamSize(pname) * sizeof(GLint))
1165
1166glGetProgramResourceiv
1167    dir params out
1168    len params (bufSize * sizeof(GLint))
1169    param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
1170    var_flag length nullAllowed
1171    dir length out
1172    len length (sizeof(GLsizei))
1173    len props (propCount * sizeof(GLenum))
1174
1175glGetProgramResourceIndex
1176    len name (strlen(name) + 1)
1177
1178glGetProgramResourceLocation
1179    len name (strlen(name) + 1)
1180
1181glGetProgramResourceName
1182    dir name out
1183    len name bufSize
1184    param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
1185    var_flag length nullAllowed
1186    dir length out
1187    len length (sizeof(GLsizei))
1188
1189glDrawArraysIndirect
1190    flag unsupported
1191
1192glDrawArraysIndirectDataAEMU
1193    len indirect datalen
1194    flag custom_decoder
1195    flag not_api
1196
1197glDrawArraysIndirectOffsetAEMU
1198    flag custom_decoder
1199    flag not_api
1200
1201glDrawElementsIndirect
1202    flag unsupported
1203
1204glDrawElementsIndirectDataAEMU
1205    len indirect datalen
1206    flag custom_decoder
1207    flag not_api
1208
1209glDrawElementsIndirectOffsetAEMU
1210    flag custom_decoder
1211    flag not_api
1212
1213glGetMultisamplefv
1214    dir val out
1215    len val (glUtilsParamSize(pname) * sizeof(GLfloat))
1216
1217glGetFramebufferParameteriv
1218    dir params out
1219    len params (glUtilsParamSize(pname) * sizeof(GLint))
1220
1221glGetTexLevelParameterfv
1222    dir params out
1223    len params (glUtilsParamSize(pname) * sizeof(GLfloat))
1224
1225glGetTexLevelParameteriv
1226    dir params out
1227    len params (glUtilsParamSize(pname) * sizeof(GLint))
1228glUseProgram
1229    flag custom_decoder
1230
1231glValidateProgram
1232    flag custom_decoder
1233
1234glIsProgram
1235    flag custom_decoder
1236
1237glGetActiveAttrib
1238    flag custom_decoder
1239
1240glGetActiveUniform
1241    flag custom_decoder
1242
1243glGetAttachedShaders
1244    flag custom_decoder
1245
1246glGetAttribLocation
1247    flag custom_decoder
1248
1249glGetUniformfv
1250    flag custom_decoder
1251
1252glGetUniformiv
1253    flag custom_decoder
1254
1255glGetUniformLocation
1256    flag custom_decoder
1257
1258glGetProgramBinaryOES
1259    flag custom_decoder
1260
1261glProgramBinaryOES
1262    flag custom_decoder
1263
1264glUniformBlockBinding
1265    flag custom_decoder
1266
1267glGetUniformBlockIndex
1268    flag custom_decoder
1269
1270glGetActiveUniformBlockiv
1271    flag custom_decoder
1272
1273glGetActiveUniformBlockName
1274    flag custom_decoder
1275
1276glGetUniformuiv
1277    flag custom_decoder
1278
1279glGetActiveUniformsiv
1280    flag custom_decoder
1281
1282glTransformFeedbackVaryings
1283    flag custom_decoder
1284
1285glGetTransformFeedbackVarying
1286    flag custom_decoder
1287
1288glProgramParameteri
1289    flag custom_decoder
1290
1291glProgramBinary
1292    flag custom_decoder
1293
1294glGetProgramBinary
1295    flag custom_decoder
1296
1297glGetFragDataLocation
1298    flag custom_decoder
1299
1300glUseProgramStages
1301    flag custom_decoder
1302
1303glActiveShaderProgram
1304    flag custom_decoder
1305
1306glProgramUniform1f
1307    flag custom_decoder
1308
1309glProgramUniform2f
1310    flag custom_decoder
1311
1312glProgramUniform3f
1313    flag custom_decoder
1314
1315glProgramUniform4f
1316    flag custom_decoder
1317
1318glProgramUniform1i
1319    flag custom_decoder
1320
1321glProgramUniform2i
1322    flag custom_decoder
1323
1324glProgramUniform3i
1325    flag custom_decoder
1326
1327glProgramUniform4i
1328    flag custom_decoder
1329
1330glProgramUniform1ui
1331    flag custom_decoder
1332
1333glProgramUniform2ui
1334    flag custom_decoder
1335
1336glProgramUniform3ui
1337    flag custom_decoder
1338
1339glProgramUniform4ui
1340    flag custom_decoder
1341
1342glProgramUniform1fv
1343    flag custom_decoder
1344
1345glProgramUniform2fv
1346    flag custom_decoder
1347
1348glProgramUniform3fv
1349    flag custom_decoder
1350
1351glProgramUniform4fv
1352    flag custom_decoder
1353
1354glProgramUniform1iv
1355    flag custom_decoder
1356
1357glProgramUniform2iv
1358    flag custom_decoder
1359
1360glProgramUniform3iv
1361    flag custom_decoder
1362
1363glProgramUniform4iv
1364    flag custom_decoder
1365
1366glProgramUniform1uiv
1367    flag custom_decoder
1368
1369glProgramUniform2uiv
1370    flag custom_decoder
1371
1372glProgramUniform3uiv
1373    flag custom_decoder
1374
1375glProgramUniform4uiv
1376    flag custom_decoder
1377
1378glProgramUniformMatrix2fv
1379    flag custom_decoder
1380
1381glProgramUniformMatrix3fv
1382    flag custom_decoder
1383
1384glProgramUniformMatrix4fv
1385    flag custom_decoder
1386
1387glProgramUniformMatrix2x3fv
1388    flag custom_decoder
1389
1390glProgramUniformMatrix3x2fv
1391    flag custom_decoder
1392
1393glProgramUniformMatrix2x4fv
1394    flag custom_decoder
1395
1396glProgramUniformMatrix4x2fv
1397    flag custom_decoder
1398
1399glProgramUniformMatrix3x4fv
1400    flag custom_decoder
1401
1402glProgramUniformMatrix4x3fv
1403    flag custom_decoder
1404
1405glGetProgramInterfaceiv
1406    flag custom_decoder
1407
1408glGetProgramResourceiv
1409    flag custom_decoder
1410
1411glGetProgramResourceIndex
1412    flag custom_decoder
1413
1414glGetProgramResourceLocation
1415    flag custom_decoder
1416
1417glGetProgramResourceName
1418    flag custom_decoder
1419
1420glMapBufferRangeDMA
1421    flag custom_decoder
1422    flag not_api
1423
1424glUnmapBufferDMA
1425    dir out_res out
1426    len out_res (sizeof(GLboolean))
1427    flag custom_decoder
1428    flag not_api
1429
1430glMapBufferRangeDirect
1431    flag custom_decoder
1432    flag not_api
1433
1434glUnmapBufferDirect
1435    dir out_res out
1436    len out_res (sizeof(GLboolean))
1437    flag custom_decoder
1438    flag not_api
1439
1440glFlushMappedBufferRangeDirect
1441    flag custom_decoder
1442    flag not_api
1443
1444glReadnPixelsEXT
1445    dir data out
1446    len data bufSize
1447
1448glGetnUniformfvEXT
1449    dir params out
1450    len params bufSize
1451
1452glGetnUniformivEXT
1453    dir params out
1454    len params bufSize
1455
1456glDrawElementsNullAEMU
1457    flag unsupported
1458
1459glDrawElementsDataNullAEMU
1460    len data datalen
1461    flag custom_decoder
1462    flag not_api
1463
1464glDrawElementsOffsetNullAEMU
1465    flag custom_decoder
1466    flag not_api
1467
1468# Async UnmapBuffer
1469glUnmapBufferAsyncAEMU
1470    dir guest_buffer in
1471    len guest_buffer length
1472    var_flag guest_buffer nullAllowed isLarge
1473    dir out_res in
1474    len out_res (sizeof(GLboolean))
1475    flag custom_decoder
1476    flag not_api
1477    custom_host_api glUnmapBufferAEMU
1478
1479glFlushMappedBufferRangeAEMU2
1480    dir guest_buffer in
1481    len guest_buffer length
1482    var_flag guest_buffer nullAllowed isLarge
1483    flag custom_decoder
1484    flag not_api
1485    custom_host_api glFlushMappedBufferRangeAEMU
1486
1487glBufferDataSyncAEMU
1488    len data size
1489    var_flag data nullAllowed
1490    flag not_api
1491    flag custom_decoder
1492
1493glTexBufferOES
1494    flag custom_decoder
1495glTexBufferRangeOES
1496    flag custom_decoder
1497
1498glTexBufferEXT
1499    flag custom_decoder
1500glTexBufferRangeEXT
1501    flag custom_decoder
1502
1503# GL_EXT_draw_buffers_indexed
1504glEnableiEXT
1505    flag custom_decoder
1506glDisableiEXT
1507    flag custom_decoder
1508glBlendEquationiEXT
1509    flag custom_decoder
1510glBlendEquationSeparateiEXT
1511    flag custom_decoder
1512glBlendFunciEXT
1513    flag custom_decoder
1514glBlendFuncSeparateiEXT
1515    flag custom_decoder
1516glColorMaskiEXT
1517    flag custom_decoder
1518glIsEnablediEXT
1519    flag custom_decoder
1520