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	len name (strlen(name) + 1)
8
9#void glBufferData(GLenum target, GLsizeiptr size, GLvoid *data, GLenum usage)
10glBufferData
11	len data size
12	var_flag data nullAllowed isLarge
13
14#void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data)
15glBufferSubData
16	len data size
17        var_flag data isLarge
18
19#void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLvoid *data)
20glCompressedTexImage2D
21	len data imageSize
22    var_flag data nullAllowed isLarge
23
24#void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLvoid *data)
25glCompressedTexSubImage2D
26	len data imageSize
27        var_flag data isLarge
28
29#void glDeleteBuffers(GLsizei n, GLuint *buffers)
30glDeleteBuffers
31	len buffers (n * sizeof(GLuint))
32    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
33
34#void glDeleteFramebuffers(GLsizei n, GLuint *framebuffers)
35glDeleteFramebuffers
36	len framebuffers (n * sizeof(GLuint))
37    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
38
39#void glDeleteRenderbuffers(GLsizei n, GLuint *renderbuffers)
40glDeleteRenderbuffers
41	len renderbuffers (n * sizeof(GLuint))
42    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
43
44#void glDeleteTextures(GLsizei n, GLuint *textures)
45glDeleteTextures
46	len textures (n * sizeof(GLuint))
47    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
48
49#void glDrawElements(GLenum mode, GLsizei count, GLenum type, GLvoid *indices)
50glDrawElements
51	flag unsupported
52
53#void glGenBuffers(GLsizei n, GLuint *buffers)
54glGenBuffers
55	len buffers (n * sizeof(GLuint))
56	dir buffers out
57    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
58
59#void glGenFramebuffers(GLsizei n, GLuint *framebuffers)
60glGenFramebuffers
61	len framebuffers (n * sizeof(GLuint))
62	dir framebuffers out
63    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
64
65#void glGenRenderbuffers(GLsizei n, GLuint *renderbuffers)
66glGenRenderbuffers
67	len renderbuffers (n * sizeof(GLuint))
68	dir renderbuffers out
69    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
70
71#void glGenTextures(GLsizei n, GLuint *textures)
72glGenTextures
73	len textures (n * sizeof(GLuint))
74	dir textures out
75    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
76
77#void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)
78glGetActiveAttrib
79	len name bufsize
80	dir name out
81	var_flag name nullAllowed
82	dir length out
83	len length (sizeof(GLsizei))
84	var_flag length nullAllowed
85	dir size out
86	len size (sizeof(GLint))
87	dir type out
88	len type (sizeof(GLenum))
89
90#void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)
91glGetActiveUniform
92	len name bufsize
93	dir name out
94	  var_flag name nullAllowed
95	dir length out
96	len length (sizeof(GLsizei))
97	var_flag length nullAllowed
98	dir size out
99	len size (sizeof(GLint))
100	dir type out
101	len type (sizeof(GLenum))
102
103
104#void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei *count, GLuint *shaders)
105glGetAttachedShaders
106	len shaders (maxcount*sizeof(GLuint))
107	dir shaders out
108	dir count out
109	var_flag count nullAllowed
110	len count (sizeof(GLsizei))
111
112#int glGetAttribLocation(GLuint program, GLchar *name)
113glGetAttribLocation
114	len name (strlen(name) + 1)
115
116#void glGetBooleanv(GLenum pname, GLboolean *params)
117glGetBooleanv
118	dir params out
119	len params (glUtilsParamSize(pname) * sizeof(GLboolean))
120
121#void glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params)
122glGetBufferParameteriv
123	len params (sizeof(GLint))
124	dir params out
125
126#void glGetFloatv(GLenum pname, GLfloat *params)
127glGetFloatv
128	dir params out
129	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
130
131#void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params)
132glGetFramebufferAttachmentParameteriv
133	dir params out
134	len params (sizeof(GLint))
135
136#void glGetIntegerv(GLenum pname, GLint *params)
137glGetIntegerv
138	dir params out
139	len params (glUtilsParamSize(pname) * sizeof(GLint))
140
141#void glGetProgramiv(GLuint program, GLenum pname, GLint *params)
142glGetProgramiv
143	dir params out
144	len params sizeof(GLint)
145#XXX - might change if extension constants that return more then one value
146
147
148#void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei *length, GLchar *infolog)
149glGetProgramInfoLog
150	dir infolog out
151	len infolog bufsize
152	dir length out
153	len length sizeof(GLsizei)
154
155#void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params)
156glGetRenderbufferParameteriv
157	dir params out
158	len params sizeof(GLint)
159# XXX - might change if pname with value larger then one is added
160
161#void glGetShaderiv(GLuint shader, GLenum pname, GLint *params)
162glGetShaderiv
163	dir params out
164	len params sizeof(GLint)
165# XXX - might change if pname with value larger then one is added
166
167#void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *infolog)
168glGetShaderInfoLog
169	dir length out
170	len length (sizeof(GLsizei))
171	var_flag length nullAllowed
172	dir infolog out
173	len infolog bufsize
174
175
176#void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision)
177glGetShaderPrecisionFormat
178	dir range out
179	len range (2 * sizeof(GLint))
180	dir precision out
181	len precision (sizeof(GLint))
182
183#void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source)
184glGetShaderSource
185	dir length out
186	len length (sizeof(GLsizei))
187	var_flag length nullAllowed
188	dir source out
189	len source bufsize
190
191#GLubyte* glGetString(GLenum name)
192glGetString
193	flag unsupported
194
195#void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
196glGetTexParameterfv
197	dir params out
198	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
199
200#void glGetTexParameteriv(GLenum target, GLenum pname, GLint *params)
201glGetTexParameteriv
202	dir params out
203	len params (glUtilsParamSize(pname) * sizeof(GLint))
204
205#void glGetUniformfv(GLuint program, GLint location, GLfloat *params)
206glGetUniformfv
207	dir params out
208	len params glSizeof(uniformType(self, program, location))
209
210#void glGetUniformiv(GLuint program, GLint location, GLint *params)
211glGetUniformiv
212	dir params out
213	len params glSizeof(uniformType(self, program, location))
214
215#int glGetUniformLocation(GLuint program, GLchar *name)
216glGetUniformLocation
217	len name (strlen(name) + 1)
218
219# client-state shall be handled locally by the encoder in most cases.
220# however, GL_CURRENT_VERTEX_ATTRIB and potential others are handled by the server side,
221# thus we still need to implement it.
222#void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params)
223glGetVertexAttribfv
224	dir params out
225	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
226
227#see glGetVertexAttribfv for comments
228#void glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params)
229glGetVertexAttribiv
230	dir params out
231	len params (glUtilsParamSize(pname) * sizeof(GLint))
232
233
234
235#void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
236glReadPixels
237	dir pixels out
238	len pixels pixelDataSize(self, width, height, format, type, 1)
239
240#void glShaderBinary(GLsizei n, GLuint *shaders, GLenum binaryformat, GLvoid *binary, GLsizei length)
241glShaderBinary
242	flag unsupported
243
244#void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLvoid *pixels)
245glTexImage2D
246	dir pixels in
247	len pixels pixelDataSize(self, width, height, format, type, 0)
248	var_flag pixels nullAllowed isLarge
249
250#void glTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
251glTexParameterfv
252	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
253#void glTexParameteriv(GLenum target, GLenum pname, GLint *params)
254glTexParameteriv
255	len params (glUtilsParamSize(pname) * sizeof(GLint))
256
257#void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
258glTexSubImage2D
259	len pixels pixelDataSize(self, width, height, format, type, 0)
260        var_flag pixels isLarge
261
262#void glUniform1fv(GLint location, GLsizei count, GLfloat *v)
263glUniform1fv
264	len v (count * sizeof(GLfloat))
265
266#void glUniform1iv(GLint location, GLsizei count, GLint *v)
267glUniform1iv
268	len v (count * sizeof(GLint))
269
270#void glUniform2fv(GLint location, GLsizei count, GLfloat *v)
271glUniform2fv
272	len v (count * 2 * sizeof(GLfloat))
273
274#void glUniform2iv(GLint location, GLsizei count, GLint *v)
275glUniform2iv
276	len v (count * 2 * sizeof(GLint))
277
278#void glUniform3fv(GLint location, GLsizei count, GLfloat *v)
279glUniform3fv
280	len v (count * 3 * sizeof(GLfloat))
281
282#void glUniform3iv(GLint location, GLsizei count, GLint *v)
283glUniform3iv
284	len v (3 * count * sizeof(GLint))
285
286#void glUniform4fv(GLint location, GLsizei count, GLfloat *v)
287glUniform4fv
288	len v (4 * count * sizeof(GLfloat))
289
290#void glUniform4iv(GLint location, GLsizei count, GLint *v)
291glUniform4iv
292	len v (4 * count * sizeof(GLint))
293
294#void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, GLfloat *value)
295glUniformMatrix2fv
296	len value (count * 4 * sizeof(GLfloat))
297
298#void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, GLfloat *value)
299glUniformMatrix3fv
300	len value (count * 9 * sizeof(GLfloat))
301
302#void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, GLfloat *value)
303glUniformMatrix4fv
304	len value (count * 16 * sizeof(GLfloat))
305
306#void glVertexAttrib1fv(GLuint indx, GLfloat *values)
307glVertexAttrib1fv
308	len values (sizeof(GLfloat))
309#void glVertexAttrib2fv(GLuint indx, GLfloat *values)
310glVertexAttrib2fv
311	len values (2 * sizeof(GLfloat))
312
313#void glVertexAttrib3fv(GLuint indx, GLfloat *values)
314glVertexAttrib3fv
315	len values (3 * sizeof(GLfloat))
316
317#void glVertexAttrib4fv(GLuint indx, GLfloat *values)
318glVertexAttrib4fv
319	len values (4 * sizeof(GLfloat))
320
321#void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLvoid *ptr)
322glVertexAttribPointer
323	flag unsupported
324
325#void glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary)
326glGetProgramBinaryOES
327	flag unsupported
328
329#void glProgramBinaryOES(GLuint program, GLenum binaryFormat, GLvoid *binary, GLint length)
330glProgramBinaryOES
331	flag unsupported
332
333#void* glMapBufferOES(GLenum target, GLenum access)
334glMapBufferOES
335	flag unsupported
336
337#void glTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLvoid *pixels)
338glTexImage3DOES
339	len pixels pixelDataSize3D(self, width, height, depth, format, type, 0)
340	var_flag pixels nullAllowed isLarge
341
342#void glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *pixels)
343glTexSubImage3DOES
344	len pixels pixelDataSize3D(self, width, height, depth, format, type, 0)
345        var_flag pixels isLarge
346
347#void glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLvoid *data)
348glCompressedTexImage3DOES
349	len data imageSize
350        var_flag data isLarge
351
352#void glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLvoid *data)
353glCompressedTexSubImage3DOES
354	len data imageSize
355        var_flag data isLarge
356
357#void glDeleteVertexArraysOES(GLsizei n, GLuint *arrays)
358glDeleteVertexArraysOES
359	len arrays (n * sizeof(GLuint))
360    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
361
362#void glGenVertexArraysOES(GLsizei n, GLuint *arrays)
363glGenVertexArraysOES
364	len arrays (n * sizeof(GLuint))
365	dir arrays out
366    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
367
368
369#void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, GLenum *attachments)
370glDiscardFramebufferEXT
371	len attachments (numAttachments * sizeof(GLenum))
372
373#void glMultiDrawArraysEXT(GLenum mode, GLint *first, GLsizei *count, GLsizei primcount)
374glMultiDrawArraysEXT
375	flag unsupported
376#void glMultiDrawElementsEXT(GLenum mode, GLsizei *count, GLenum type, GLvoid *indices, GLsizei primcount)
377glMultiDrawElementsEXT
378	flag unsupported
379
380
381# handled by encoder
382#void glShaderSource(GLuint shader, GLsizei count, GLstr *string, const GLint *length)
383glShaderSource
384	flag unsupported
385
386
387
388#void glGetPerfMonitorGroupsAMD(GLint *numGroups, GLsizei groupsSize, GLuint *groups)
389glGetPerfMonitorGroupsAMD
390	flag unsupported
391
392#void glGetPerfMonitorCountersAMD(GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters)
393glGetPerfMonitorCountersAMD
394	flag unsupported
395
396#void glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString)
397glGetPerfMonitorGroupStringAMD
398	flag unsupported
399
400#void glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString)
401glGetPerfMonitorCounterStringAMD
402	flag unsupported
403
404#void glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid *data)
405glGetPerfMonitorCounterInfoAMD
406	flag unsupported
407
408#void glGenPerfMonitorsAMD(GLsizei n, GLuint *monitors)
409glGenPerfMonitorsAMD
410	flag unsupported
411
412#void glDeletePerfMonitorsAMD(GLsizei n, GLuint *monitors)
413glDeletePerfMonitorsAMD
414	flag unsupported
415
416#void glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList)
417glSelectPerfMonitorCountersAMD
418	flag unsupported
419
420#void glBeginPerfMonitorAMD(GLuint monitor)
421glBeginPerfMonitorAMD
422	flag unsupported
423
424#void glEndPerfMonitorAMD(GLuint monitor)
425glEndPerfMonitorAMD
426	flag unsupported
427
428#void glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten)
429glGetPerfMonitorCounterDataAMD
430	flag unsupported
431
432#void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
433glRenderbufferStorageMultisampleIMG
434	flag unsupported
435
436#void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
437glFramebufferTexture2DMultisampleIMG
438	flag unsupported
439
440#void glDeleteFencesNV(GLsizei n, GLuint *fences)
441glDeleteFencesNV
442	flag unsupported
443
444#void glGenFencesNV(GLsizei n, GLuint *fences)
445glGenFencesNV
446	flag unsupported
447
448#GLboolean glIsFenceNV(GLuint fence)
449glIsFenceNV
450	flag unsupported
451
452#GLboolean glTestFenceNV(GLuint fence)
453glTestFenceNV
454	flag unsupported
455
456#void glGetFenceivNV(GLuint fence, GLenum pname, GLint *params)
457glGetFenceivNV
458	flag unsupported
459
460#void glFinishFenceNV(GLuint fence)
461glFinishFenceNV
462	flag unsupported
463
464#void glSetFenceNV(GLuint fence, GLenum condition)
465glSetFenceNV
466	flag unsupported
467
468#void glCoverageMaskNV(GLboolean mask)
469glCoverageMaskNV
470	flag unsupported
471
472#void glCoverageOperationNV(GLenum operation)
473glCoverageOperationNV
474	flag unsupported
475
476#void glGetDriverControlsQCOM(GLint *num, GLsizei size, GLuint *driverControls)
477glGetDriverControlsQCOM
478	flag unsupported
479
480#void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString)
481glGetDriverControlStringQCOM
482	flag unsupported
483
484#void glEnableDriverControlQCOM(GLuint driverControl)
485glEnableDriverControlQCOM
486	flag unsupported
487
488#void glDisableDriverControlQCOM(GLuint driverControl)
489glDisableDriverControlQCOM
490	flag unsupported
491
492#void glExtGetTexturesQCOM(GLuint *textures, GLint maxTextures, GLint *numTextures)
493glExtGetTexturesQCOM
494	flag unsupported
495
496#void glExtGetBuffersQCOM(GLuint *buffers, GLint maxBuffers, GLint *numBuffers)
497glExtGetBuffersQCOM
498	flag unsupported
499
500#void glExtGetRenderbuffersQCOM(GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers)
501glExtGetRenderbuffersQCOM
502	flag unsupported
503
504#void glExtGetFramebuffersQCOM(GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers)
505glExtGetFramebuffersQCOM
506	flag unsupported
507
508#void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params)
509glExtGetTexLevelParameterivQCOM
510	flag unsupported
511
512#void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param)
513glExtTexObjectStateOverrideiQCOM
514	flag unsupported
515
516#void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels)
517glExtGetTexSubImageQCOM
518	flag unsupported
519
520#void glExtGetBufferPointervQCOM(GLenum target, GLvoidptr *params)
521glExtGetBufferPointervQCOM
522	flag unsupported
523
524#void glExtGetShadersQCOM(GLuint *shaders, GLint maxShaders, GLint *numShaders)
525glExtGetShadersQCOM
526	flag unsupported
527
528#void glExtGetProgramsQCOM(GLuint *programs, GLint maxPrograms, GLint *numPrograms)
529glExtGetProgramsQCOM
530	flag unsupported
531
532#GLboolean glExtIsProgramBinaryQCOM(GLuint program)
533glExtIsProgramBinaryQCOM
534	flag unsupported
535
536#void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar *source, GLint *length)
537glExtGetProgramBinarySourceQCOM
538	flag unsupported
539
540#void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
541glStartTilingQCOM
542	flag unsupported
543
544#void glEndTilingQCOM(GLbitfield preserveMask)
545glEndTilingQCOM
546	flag unsupported
547
548
549#void glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride,  void * data, GLuint datalen)
550glVertexAttribPointerData
551	len data datalen
552	custom_pack data glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen)
553	flag custom_decoder
554	flag not_api
555
556glVertexAttribPointerOffset
557	flag custom_decoder
558	flag not_api
559
560#client-state, handled by the encoder
561#GL_ENTRY(void, glGetVertexAttribPointerv, GLuint index, GLenum pname, GLvoid** pointer)
562glGetVertexAttribPointerv
563	flag unsupported
564
565glDrawElementsData
566	len data datalen
567	flag custom_decoder
568	flag not_api
569
570glDrawElementsOffset
571	flag custom_decoder
572	flag not_api
573
574#GL_ENTRY(void, glGetCompressedTextureFormats, int count, GLint *formats)
575glGetCompressedTextureFormats
576	dir formats out
577	len formats (count * sizeof(GLint))
578	flag custom_decoder
579	flag not_api
580
581#GL_ENTRY(void, glShaderString, GLuint shader, GLchar *string, GLsizei len)
582glShaderString
583	len string len
584	flag custom_decoder
585	flag not_api
586
587glFinishRoundTrip
588	flag custom_decoder
589	flag not_api
590
591