1GLOBAL
2    base_opcode 2048
3
4glBindAttribLocation
5    len name (strlen(name) + 1)
6
7glBufferData
8    len data size
9    var_flag data nullAllowed isLarge
10
11glBufferSubData
12    len data size
13    var_flag data nullAllowed isLarge
14
15glCompressedTexImage2D
16    len data imageSize
17    param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
18    var_flag data nullAllowed isLarge
19    param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
20
21glCompressedTexSubImage2D
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
27glDeleteBuffers
28    len buffers (n * sizeof(GLuint))
29    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
30
31glDeleteFramebuffers
32    len framebuffers (n * sizeof(GLuint))
33    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
34
35glDeleteRenderbuffers
36    len renderbuffers (n * sizeof(GLuint))
37    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
38
39glDeleteTextures
40    len textures (n * sizeof(GLuint))
41    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
42
43glDrawElements
44    flag unsupported
45
46glGenBuffers
47    len buffers (n * sizeof(GLuint))
48    dir buffers out
49    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
50
51glGenFramebuffers
52    len framebuffers (n * sizeof(GLuint))
53    dir framebuffers out
54    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
55
56glGenRenderbuffers
57    len renderbuffers (n * sizeof(GLuint))
58    dir renderbuffers out
59    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
60
61glGenTextures
62    len textures (n * sizeof(GLuint))
63    dir textures out
64    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
65
66glGetActiveAttrib
67    param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
68    len name bufsize
69    dir name out
70    var_flag name nullAllowed
71    dir length out
72    len length (sizeof(GLsizei))
73    var_flag length nullAllowed
74    dir size out
75    len size (sizeof(GLint))
76    var_flag size nullAllowed
77    dir type out
78    len type (sizeof(GLenum))
79    var_flag type nullAllowed
80
81glGetActiveUniform
82    param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
83    len name bufsize
84    dir name out
85    var_flag name nullAllowed
86    dir length out
87    len length (sizeof(GLsizei))
88    var_flag length nullAllowed
89    dir size out
90    len size (sizeof(GLint))
91    var_flag size nullAllowed
92    dir type out
93    len type (sizeof(GLenum))
94    var_flag type nullAllowed
95
96glGetAttachedShaders
97    len shaders (maxcount*sizeof(GLuint))
98    dir shaders out
99    dir count out
100    var_flag count nullAllowed
101    len count (sizeof(GLsizei))
102
103glGetAttribLocation
104    len name (strlen(name) + 1)
105
106glGetBooleanv
107    dir params out
108
109glGetBufferParameteriv
110    len params (sizeof(GLint))
111    dir params out
112
113glGetFloatv
114    dir params out
115
116glGetFramebufferAttachmentParameteriv
117    dir params out
118    len params (sizeof(GLint))
119
120glGetIntegerv
121    dir params out
122
123glGetProgramiv
124    dir params out
125
126glGetProgramInfoLog
127    dir infolog out
128    len infolog bufsize
129    param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
130    dir length out
131    len length sizeof(GLsizei)
132    var_flag length nullAllowed
133
134glGetRenderbufferParameteriv
135    dir params out
136    len params sizeof(GLint)
137
138glGetShaderiv
139    dir params out
140    len params sizeof(GLint)
141
142glGetShaderInfoLog
143    dir length out
144    len length (sizeof(GLsizei))
145    var_flag length nullAllowed
146    dir infolog out
147    len infolog bufsize
148    param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
149
150glGetShaderPrecisionFormat
151    dir range out
152    len range (2 * sizeof(GLint))
153    dir precision out
154    len precision (sizeof(GLint))
155
156glGetShaderSource
157    dir length out
158    len length (sizeof(GLsizei))
159    var_flag length nullAllowed
160    dir source out
161    len source bufsize
162    param_check bufsize if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; }
163
164glGetString
165    flag unsupported
166
167glGetTexParameterfv
168    dir params out
169
170glGetTexParameteriv
171    dir params out
172
173glGetUniformfv
174    dir params out
175    len params glSizeof(glesv2_enc::uniformType(self, program, location))
176
177glGetUniformiv
178    dir params out
179    len params glSizeof(glesv2_enc::uniformType(self, program, location))
180
181glGetUniformLocation
182    len name (strlen(name) + 1)
183
184glGetVertexAttribfv
185    dir params out
186
187glGetVertexAttribiv
188    dir params out
189
190glReadPixels
191    dir pixels out
192    len pixels glesv2_enc::pixelDataSize(self, width, height, format, type, 1)
193
194glReadPixelsOffsetAEMU
195    flag not_api
196
197glShaderBinary
198    flag unsupported
199
200glTexImage2D
201    dir pixels in
202    len pixels glesv2_enc::pixelDataSize(self, width, height, format, type, 0)
203    var_flag pixels nullAllowed isLarge
204
205glTexSubImage2D
206    len pixels glesv2_enc::pixelDataSize(self, width, height, format, type, 0)
207    var_flag pixels nullAllowed isLarge
208
209glUniform1fv
210    len v (count * sizeof(GLfloat))
211
212glUniform1iv
213    len v (count * sizeof(GLint))
214
215glUniform2fv
216    len v (count * 2 * sizeof(GLfloat))
217
218glUniform2iv
219    len v (count * 2 * sizeof(GLint))
220
221glUniform3fv
222    len v (count * 3 * sizeof(GLfloat))
223
224glUniform3iv
225    len v (3 * count * sizeof(GLint))
226
227glUniform4fv
228    len v (4 * count * sizeof(GLfloat))
229
230glUniform4iv
231    len v (4 * count * sizeof(GLint))
232
233glUniformMatrix2fv
234    len value (count * 4 * sizeof(GLfloat))
235
236glUniformMatrix3fv
237    len value (count * 9 * sizeof(GLfloat))
238
239glUniformMatrix4fv
240    len value (count * 16 * sizeof(GLfloat))
241
242glVertexAttrib1fv
243    len values (sizeof(GLfloat))
244glVertexAttrib2fv
245    len values (2 * sizeof(GLfloat))
246
247glVertexAttrib3fv
248    len values (3 * sizeof(GLfloat))
249
250glVertexAttrib4fv
251    len values (4 * sizeof(GLfloat))
252
253glVertexAttribPointer
254    flag unsupported
255
256glGetProgramBinaryOES
257    flag unsupported
258
259glProgramBinaryOES
260    flag unsupported
261
262glMapBufferOES
263    flag unsupported
264
265glTexImage3DOES
266    len pixels glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0)
267    var_flag pixels nullAllowed isLarge
268
269glTexSubImage3DOES
270    len pixels glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0)
271    var_flag pixels nullAllowed isLarge
272
273glCompressedTexImage3DOES
274    len data imageSize
275    param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
276    var_flag data nullAllowed isLarge
277
278glCompressedTexSubImage3DOES
279    len data imageSize
280    param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
281    var_flag data nullAllowed isLarge
282
283glDeleteVertexArraysOES
284    len arrays (n * sizeof(GLuint))
285    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
286
287glGenVertexArraysOES
288    len arrays (n * sizeof(GLuint))
289    dir arrays out
290    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
291
292glDiscardFramebufferEXT
293    len attachments (numAttachments * sizeof(GLenum))
294
295glMultiDrawArraysEXT
296    flag unsupported
297
298glMultiDrawElementsEXT
299    flag unsupported
300
301glShaderSource
302    flag unsupported
303
304glGetPerfMonitorGroupsAMD
305    flag unsupported
306
307glGetPerfMonitorCountersAMD
308    flag unsupported
309
310glGetPerfMonitorGroupStringAMD
311    flag unsupported
312
313glGetPerfMonitorCounterStringAMD
314    flag unsupported
315
316glGetPerfMonitorCounterInfoAMD
317    flag unsupported
318
319glGenPerfMonitorsAMD
320    flag unsupported
321
322glDeletePerfMonitorsAMD
323    flag unsupported
324
325glSelectPerfMonitorCountersAMD
326    flag unsupported
327
328glBeginPerfMonitorAMD
329    flag unsupported
330
331glEndPerfMonitorAMD
332    flag unsupported
333
334glGetPerfMonitorCounterDataAMD
335    flag unsupported
336
337glRenderbufferStorageMultisampleIMG
338    flag unsupported
339
340glFramebufferTexture2DMultisampleIMG
341    flag unsupported
342
343glDeleteFencesNV
344    flag unsupported
345
346glGenFencesNV
347    flag unsupported
348
349glIsFenceNV
350    flag unsupported
351
352glTestFenceNV
353    flag unsupported
354
355glGetFenceivNV
356    flag unsupported
357
358glFinishFenceNV
359    flag unsupported
360
361glSetFenceNV
362    flag unsupported
363
364glCoverageMaskNV
365    flag unsupported
366
367glCoverageOperationNV
368    flag unsupported
369
370glGetDriverControlsQCOM
371    flag unsupported
372
373glGetDriverControlStringQCOM
374    flag unsupported
375
376glEnableDriverControlQCOM
377    flag unsupported
378
379glDisableDriverControlQCOM
380    flag unsupported
381
382glExtGetTexturesQCOM
383    flag unsupported
384
385glExtGetBuffersQCOM
386    flag unsupported
387
388glExtGetRenderbuffersQCOM
389    flag unsupported
390
391glExtGetFramebuffersQCOM
392    flag unsupported
393
394glExtGetTexLevelParameterivQCOM
395    flag unsupported
396
397glExtTexObjectStateOverrideiQCOM
398    flag unsupported
399
400glExtGetTexSubImageQCOM
401    flag unsupported
402
403glExtGetBufferPointervQCOM
404    flag unsupported
405
406glExtGetShadersQCOM
407    flag unsupported
408
409glExtGetProgramsQCOM
410    flag unsupported
411
412glExtIsProgramBinaryQCOM
413    flag unsupported
414
415glExtGetProgramBinarySourceQCOM
416    flag unsupported
417
418glStartTilingQCOM
419    flag unsupported
420
421glEndTilingQCOM
422    flag unsupported
423
424glVertexAttribPointerData
425    len data datalen
426    flag not_api
427
428glVertexAttribPointerOffset
429    flag not_api
430
431glGetVertexAttribPointerv
432    flag unsupported
433
434glDrawElementsData
435    len data datalen
436    flag not_api
437
438glDrawElementsOffset
439    flag not_api
440
441glGetCompressedTextureFormats
442    dir formats out
443    len formats (count * sizeof(GLint))
444    flag not_api
445
446glShaderString
447    len string len
448    flag not_api
449
450glFinishRoundTrip
451    flag not_api
452
453glGenVertexArrays
454    len arrays (n * sizeof(GLuint))
455    dir arrays out
456    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
457
458glDeleteVertexArrays
459    len arrays (n * sizeof(GLuint))
460    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
461
462glMapBufferRange
463    flag unsupported
464
465glUnmapBuffer
466    flag unsupported
467
468glFlushMappedBufferRange
469    flag unsupported
470
471glMapBufferRangeAEMU
472    dir mapped out
473    len mapped length
474    var_flag mapped nullAllowed
475    flag not_api
476
477glUnmapBufferAEMU
478    dir guest_buffer in
479    len guest_buffer length
480    var_flag guest_buffer nullAllowed
481    dir out_res out
482    len out_res (sizeof(GLboolean))
483    flag not_api
484
485glFlushMappedBufferRangeAEMU
486    dir guest_buffer in
487    len guest_buffer length
488    var_flag guest_buffer nullAllowed
489    flag not_api
490
491glReadPixelsOffsetAEMU
492    flag not_api
493
494glCompressedTexImage2DOffsetAEMU
495    flag not_api
496
497glCompressedTexSubImage2DOffsetAEMU
498    flag not_api
499
500glTexImage2DOffsetAEMU
501    flag not_api
502
503glTexSubImage2DOffsetAEMU
504    flag not_api
505
506glCopyBufferSubData
507    flag flushOnEncode
508
509glClearBufferiv
510    dir value in
511    len value (sizeof(GLint) * glesv2_enc::clearBufferNumElts(self, buffer))
512
513glClearBufferuiv
514    dir value in
515    len value (sizeof(GLuint) * glesv2_enc::clearBufferNumElts(self, buffer))
516
517glClearBufferfv
518    dir value in
519    len value (sizeof(GLfloat) * glesv2_enc::clearBufferNumElts(self, buffer))
520
521glGetBufferParameteri64v
522    flag unsupported
523
524glGetBufferPointerv
525    flag unsupported
526
527glGetUniformBlockIndex
528    len uniformBlockName (strlen(uniformBlockName) + 1)
529
530glGetUniformIndices
531    flag unsupported
532
533glGetUniformIndicesAEMU
534    dir packedUniformNames in
535    len packedUniformNames packedLen
536    dir uniformIndices out
537    len uniformIndices (uniformCount * sizeof(GLuint))
538    flag not_api
539
540glGetActiveUniformBlockiv
541    dir params out
542    len params (glesv2_enc::glActiveUniformBlockivParamSize(self, program, uniformBlockIndex, pname) * sizeof(GLint))
543
544glGetActiveUniformBlockName
545    dir uniformBlockName out
546    len uniformBlockName bufSize
547    param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
548    var_flag uniformBlockName nullAllowed
549    dir length out
550    len length (sizeof(GLsizei))
551    var_flag length nullAllowed
552
553glUniform1uiv
554    len value (count * sizeof(GLuint))
555
556glUniform2uiv
557    len value (count * 2 * sizeof(GLuint))
558
559glUniform3uiv
560    len value (count * 3 * sizeof(GLuint))
561
562glUniform4uiv
563    len value (count * 4 * sizeof(GLuint))
564
565glUniformMatrix2x3fv
566    len value (count * 6 * sizeof(GLfloat))
567
568glUniformMatrix3x2fv
569    len value (count * 6 * sizeof(GLfloat))
570
571glUniformMatrix2x4fv
572    len value (count * 8 * sizeof(GLfloat))
573
574glUniformMatrix4x2fv
575    len value (count * 8 * sizeof(GLfloat))
576
577glUniformMatrix3x4fv
578    len value (count * 12 * sizeof(GLfloat))
579
580glUniformMatrix4x3fv
581    len value (count * 12 * sizeof(GLfloat))
582
583glGetUniformuiv
584    dir params out
585    len params glSizeof(glesv2_enc::uniformType(self, program, location))
586
587glGetActiveUniformsiv
588    len uniformIndices (uniformCount * sizeof(GLuint))
589    dir params out
590    len params (uniformCount * sizeof(GLint))
591
592glVertexAttribI4iv
593    len v (4 * sizeof(GLint))
594
595glVertexAttribI4uiv
596    len v (4 * sizeof(GLuint))
597
598glVertexAttribIPointer
599    flag unsupported
600
601glVertexAttribIPointerOffsetAEMU
602    flag not_api
603
604glVertexAttribIPointerDataAEMU
605    len data datalen
606    flag not_api
607
608glGetVertexAttribIiv
609    dir params out
610
611glGetVertexAttribIuiv
612    dir params out
613
614glDrawElementsInstanced
615    flag unsupported
616
617glDrawElementsInstancedDataAEMU
618    len indices datalen
619    flag not_api
620
621glDrawElementsInstancedOffsetAEMU
622    flag not_api
623
624glDrawRangeElements
625    flag unsupported
626
627glDrawRangeElementsDataAEMU
628    len indices datalen
629    flag not_api
630
631glDrawRangeElementsOffsetAEMU
632    flag not_api
633
634glFenceSync
635    flag unsupported
636
637glClientWaitSync
638    flag unsupported
639
640glWaitSync
641    flag unsupported
642
643glDeleteSync
644    flag unsupported
645
646glIsSync
647    flag unsupported
648
649glGetSynciv
650    flag unsupported
651
652glFenceSyncAEMU
653    flag custom_decoder
654    flag not_api
655
656glClientWaitSyncAEMU
657    flag custom_decoder
658    flag not_api
659
660glWaitSyncAEMU
661    flag custom_decoder
662    flag not_api
663
664glDeleteSyncAEMU
665    flag custom_decoder
666    flag not_api
667
668glIsSyncAEMU
669    flag custom_decoder
670    flag not_api
671
672glGetSyncivAEMU
673    flag custom_decoder
674    flag not_api
675    param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
676    dir length out
677    len length (sizeof(GLsizei))
678    var_flag length nullAllowed
679    dir values out
680    len values (bufSize * sizeof(GLint))
681
682glGetInternalformativ
683    dir params out
684    len params (sizeof(GLint) * bufSize)
685
686glDrawBuffers
687    len bufs (n * sizeof(GLenum))
688
689glInvalidateFramebuffer
690    len attachments (numAttachments * sizeof(GLenum))
691
692glInvalidateSubFramebuffer
693    len attachments (numAttachments * sizeof(GLenum))
694
695glGenTransformFeedbacks
696    dir ids out
697    len ids (n * sizeof(GLuint))
698    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
699
700glDeleteTransformFeedbacks
701    len ids (n * sizeof(GLuint))
702    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
703
704glTransformFeedbackVaryings
705    flag unsupported
706
707glTransformFeedbackVaryingsAEMU
708    dir packedVaryings in
709    len packedVaryings packedVaryingsLen
710    flag not_api
711
712glGetTransformFeedbackVarying
713    dir name out
714    len name bufSize
715    param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
716    var_flag name nullAllowed
717    dir length out
718    len length (sizeof(GLsizei))
719    var_flag length nullAllowed
720    dir size out
721    len size (sizeof(GLsizei))
722    var_flag type nullAllowed
723    dir type out
724    len type (sizeof(GLenum))
725    var_flag type nullAllowed
726
727glGenSamplers
728    dir samplers out
729    len samplers (n * sizeof(GLuint))
730    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
731
732glDeleteSamplers
733    len samplers (n * sizeof(GLuint))
734    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
735
736glGetSamplerParameterfv
737    dir params out
738
739glGetSamplerParameteriv
740    dir params out
741
742glGenQueries
743    dir queries out
744    len queries (n * sizeof(GLuint))
745    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
746
747glDeleteQueries
748    len queries (n * sizeof(GLuint))
749    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
750
751glGetQueryiv
752    dir params out
753
754glGetQueryObjectuiv
755    dir params out
756
757glProgramBinary
758    len binary length
759
760glGetProgramBinary
761    param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
762    dir binary out
763    len binary bufSize
764    dir binaryFormat out
765    len binaryFormat (sizeof(GLenum))
766    var_flag length nullAllowed
767    dir length out
768    len length (sizeof(GLsizei))
769
770glGetFragDataLocation
771    len name (strlen(name) + 1)
772
773glGetInteger64v
774    dir data out
775
776glGetIntegeri_v
777    dir data out
778    len data (sizeof(GLint))
779
780glGetInteger64i_v
781    dir data out
782    len data (sizeof(GLint64))
783
784glTexImage3D
785    dir data in
786    len data glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0)
787    var_flag data nullAllowed isLarge
788
789glTexImage3DOffsetAEMU
790    flag not_api
791
792glTexSubImage3D
793    len data glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0)
794    var_flag data nullAllowed isLarge
795
796glTexSubImage3DOffsetAEMU
797    flag not_api
798
799glCompressedTexImage3D
800    len data imageSize
801    param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
802    var_flag data nullAllowed isLarge
803
804glCompressedTexImage3DOffsetAEMU
805    flag not_api
806
807glCompressedTexSubImage3D
808    param_check imageSize if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
809    len data imageSize
810    var_flag data nullAllowed isLarge
811
812glCompressedTexSubImage3DOffsetAEMU
813    flag not_api
814
815glGetStringi
816    flag unsupported
817
818glGetBooleani_v
819    dir data out
820    len data (sizeof(GLboolean))
821
822glGenProgramPipelines
823    dir pipelines out
824    len pipelines (n * sizeof(GLuint))
825
826glDeleteProgramPipelines
827    len pipelines (n * sizeof(GLuint))
828    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
829
830glGetProgramPipelineiv
831    dir params out
832
833glGetProgramPipelineInfoLog
834    dir infoLog out
835    len infoLog bufSize
836    param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
837    dir length out
838    len length sizeof(GLsizei)
839    var_flag length nullAllowed
840
841glCreateShaderProgramv
842    flag unsupported
843
844glCreateShaderProgramvAEMU
845    len packedStrings packedLen
846    flag not_api
847
848glProgramUniform1fv
849    len value (count * sizeof(GLfloat))
850
851glProgramUniform2fv
852    len value (count * 2 * sizeof(GLfloat))
853
854glProgramUniform3fv
855    len value (count * 3 * sizeof(GLfloat))
856
857glProgramUniform4fv
858    len value (count * 4 * sizeof(GLfloat))
859
860glProgramUniform1iv
861    len value (count * sizeof(GLint))
862
863glProgramUniform2iv
864    len value (count * 2 * sizeof(GLint))
865
866glProgramUniform3iv
867    len value (count * 3 * sizeof(GLint))
868
869glProgramUniform4iv
870    len value (count * 4 * sizeof(GLint))
871
872glProgramUniform1uiv
873    len value (count * sizeof(GLuint))
874
875glProgramUniform2uiv
876    len value (count * 2 * sizeof(GLuint))
877
878glProgramUniform3uiv
879    len value (count * 3 * sizeof(GLuint))
880
881glProgramUniform4uiv
882    len value (count * 4 * sizeof(GLuint))
883
884glProgramUniformMatrix2fv
885    len value (count * 4 * sizeof(GLfloat))
886
887glProgramUniformMatrix3fv
888    len value (count * 9 * sizeof(GLfloat))
889
890glProgramUniformMatrix4fv
891    len value (count * 16 * sizeof(GLfloat))
892
893glProgramUniformMatrix2x3fv
894    len value (count * 6 * sizeof(GLfloat))
895
896glProgramUniformMatrix3x2fv
897    len value (count * 6 * sizeof(GLfloat))
898
899glProgramUniformMatrix2x4fv
900    len value (count * 8 * sizeof(GLfloat))
901
902glProgramUniformMatrix4x2fv
903    len value (count * 8 * sizeof(GLfloat))
904
905glProgramUniformMatrix3x4fv
906    len value (count * 12 * sizeof(GLfloat))
907
908glProgramUniformMatrix4x3fv
909    len value (count * 12 * sizeof(GLfloat))
910
911glGetProgramInterfaceiv
912    dir params out
913
914glGetProgramResourceiv
915    dir params out
916    len params (bufSize * sizeof(GLint))
917    param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
918    var_flag length nullAllowed
919    dir length out
920    len length (sizeof(GLsizei))
921    len props (propCount * sizeof(GLenum))
922
923glGetProgramResourceIndex
924    len name (strlen(name) + 1)
925
926glGetProgramResourceLocation
927    len name (strlen(name) + 1)
928
929glGetProgramResourceName
930    dir name out
931    len name bufSize
932    param_check bufSize if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
933    var_flag length nullAllowed
934    dir length out
935    len length (sizeof(GLsizei))
936
937glDrawArraysIndirect
938    flag unsupported
939
940glDrawArraysIndirectDataAEMU
941    len indirect datalen
942    flag not_api
943
944glDrawArraysIndirectOffsetAEMU
945    flag not_api
946
947glDrawElementsIndirect
948    flag unsupported
949
950glDrawElementsIndirectDataAEMU
951    len indirect datalen
952    flag not_api
953
954glDrawElementsIndirectOffsetAEMU
955    flag not_api
956
957glGetMultisamplefv
958    dir val out
959
960glGetFramebufferParameteriv
961    dir params out
962
963glGetTexLevelParameterfv
964    dir params out
965
966glGetTexLevelParameteriv
967    dir params out
968