APIspec.xml revision e2cf14d7b273657cce364236cd041c4ca3f94a6b
1<?xml version="1.0"?>
2<!DOCTYPE apispec SYSTEM "APIspec.dtd">
3
4<!-- A function is generated from a template.  Multiple functions can be
5     generated from a single template with different arguments.  For example,
6     glColor3f can be generated from
7
8     <function name="Color3f" template="Color" gltype="GLfloat" vector_size="3" expand_vector="true"/>
9
10     and glColor4iv can be generated from
11
12     <function name="Color4iv" template="Color" gltype="GLint" vector_size="4"/>
13
14     In a template, there are <desc>s that describe the properties of
15     parameters.  A <desc> can enumerate the valid values of a parameter.  It
16     can also specify the error code when an invalid value is given, and etc.
17     By nesting <desc>s, they can create dependency between parameters.
18
19     A function can be marked as external.  It means that the function cannot
20     be dispatched to the corresponding mesa function, if one exists, directly,
21     and requires an external implementation.
22-->
23
24<apispec>
25
26<template name="Color">
27	<proto>
28		<return type="void"/>
29		<vector name="v" type="const GLtype *" size="dynamic">
30			<param name="red" type="GLtype"/>
31			<param name="green" type="GLtype"/>
32			<param name="blue" type="GLtype"/>
33			<param name="alpha" type="GLtype"/>
34		</vector>
35	</proto>
36</template>
37
38<template name="ClipPlane">
39	<proto>
40		<return type="void"/>
41		<param name="plane" type="GLenum"/>
42		<vector name="equation" type="const GLtype *" size="4"/>
43	</proto>
44</template>
45
46<template name="CullFace">
47	<proto>
48		<return type="void"/>
49		<param name="mode" type="GLenum"/>
50	</proto>
51</template>
52
53<template name="Fog">
54	<proto>
55		<return type="void"/>
56		<param name="pname" type="GLenum"/>
57		<vector name="params" type="const GLtype *" size="dynamic">
58			<param name="param" type="GLtype"/>
59		</vector>
60	</proto>
61
62        <desc name="pname">
63		<value name="GL_FOG_MODE"/>
64		<desc name="param">
65			<value name="GL_EXP"/>
66			<value name="GL_EXP2"/>
67			<value name="GL_LINEAR"/>
68		</desc>
69        </desc>
70
71	<desc name="pname">
72		<value name="GL_FOG_COLOR"/>
73
74		<desc name="params" vector_size="4"/>
75	</desc>
76
77	<desc name="pname">
78		<value name="GL_FOG_DENSITY"/>
79		<value name="GL_FOG_START"/>
80		<value name="GL_FOG_END"/>
81
82		<desc name="params" vector_size="1"/>
83	</desc>
84</template>
85
86<template name="FrontFace">
87	<proto>
88		<return type="void"/>
89		<param name="mode" type="GLenum"/>
90	</proto>
91</template>
92
93<template name="Hint">
94	<proto>
95		<return type="void"/>
96		<param name="target" type="GLenum"/>
97		<param name="mode" type="GLenum"/>
98	</proto>
99
100	<desc name="target" category="GLES1.1">
101		<value name="GL_FOG_HINT"/>
102		<value name="GL_LINE_SMOOTH_HINT"/>
103		<value name="GL_PERSPECTIVE_CORRECTION_HINT"/>
104		<value name="GL_POINT_SMOOTH_HINT"/>
105	</desc>
106	<desc name="target" category="OES_standard_derivatives">
107		<value name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES"/>
108	</desc>
109	<desc name="target">
110		<value name="GL_GENERATE_MIPMAP_HINT"/>
111	</desc>
112</template>
113
114<template name="Light">
115	<proto>
116		<return type="void"/>
117		<param name="light" type="GLenum"/>
118		<param name="pname" type="GLenum"/>
119		<vector name="params" type="const GLtype *" size="dynamic">
120			<param name="param" type="GLtype"/>
121		</vector>
122	</proto>
123</template>
124
125<template name="LightModel">
126	<proto>
127		<return type="void"/>
128		<param name="pname" type="GLenum"/>
129		<vector name="params" type="const GLtype *" size="dynamic">
130			<param name="param" type="GLtype"/>
131		</vector>
132	</proto>
133
134	<desc name="pname">
135		<value name="GL_LIGHT_MODEL_AMBIENT"/>
136
137		<desc name="params" vector_size="4"/>
138	</desc>
139
140	<desc name="pname">
141		<value name="GL_LIGHT_MODEL_TWO_SIDE"/>
142		<desc name="param">
143			<value name="GL_TRUE"/>
144			<value name="GL_FALSE"/>
145		</desc>
146	</desc>
147</template>
148
149<template name="LineWidth">
150	<proto>
151		<return type="void"/>
152		<param name="width" type="GLtype"/>
153	</proto>
154</template>
155
156<template name="Material">
157	<proto>
158		<return type="void"/>
159		<param name="face" type="GLenum"/>
160		<param name="pname" type="GLenum"/>
161		<vector name="params" type="const GLtype *" size="dynamic">
162			<param name="param" type="GLtype"/>
163		</vector>
164	</proto>
165
166	<desc name="face">
167		<value name="GL_FRONT_AND_BACK"/>
168	</desc>
169
170	<desc name="pname">
171		<value name="GL_AMBIENT"/>
172		<value name="GL_DIFFUSE"/>
173		<value name="GL_AMBIENT_AND_DIFFUSE"/>
174		<value name="GL_SPECULAR"/>
175		<value name="GL_EMISSION"/>
176
177		<desc name="params" vector_size="4"/>
178	</desc>
179
180	<desc name="pname">
181		<value name="GL_SHININESS"/>
182
183		<desc name="params" vector_size="1"/>
184	</desc>
185</template>
186
187<template name="PointSize">
188	<proto>
189		<return type="void"/>
190		<param name="size" type="GLtype"/>
191	</proto>
192</template>
193
194<template name="PointSizePointer">
195	<proto>
196		<return type="void"/>
197		<param name="type" type="GLenum"/>
198		<param name="stride" type="GLsizei"/>
199		<param name="pointer" type="const GLvoid *"/>
200	</proto>
201</template>
202
203<template name="Scissor">
204	<proto>
205		<return type="void"/>
206		<param name="x" type="GLint"/>
207		<param name="y" type="GLint"/>
208		<param name="width" type="GLsizei"/>
209		<param name="height" type="GLsizei"/>
210	</proto>
211</template>
212
213<template name="ShadeModel">
214	<proto>
215		<return type="void"/>
216		<param name="mode" type="GLenum"/>
217	</proto>
218</template>
219
220<template name="TexParameter">
221	<proto>
222		<return type="void"/>
223		<param name="target" type="GLenum"/>
224		<param name="pname" type="GLenum"/>
225		<vector name="params" type="const GLtype *" size="dynamic">
226			<param name="param" type="GLtype"/>
227		</vector>
228	</proto>
229</template>
230
231<template name="TexImage2D">
232	<proto>
233		<return type="void"/>
234		<param name="target" type="GLenum"/>
235		<param name="level" type="GLint"/>
236		<param name="internalFormat" type="GLint"/> <!-- should be GLenum -->
237		<param name="width" type="GLsizei"/>
238		<param name="height" type="GLsizei"/>
239		<param name="border" type="GLint"/>
240		<param name="format" type="GLenum"/>
241		<param name="type" type="GLenum"/>
242		<param name="pixels" type="const GLvoid *"/>
243	</proto>
244</template>
245
246<template name="TexEnv">
247	<proto>
248		<return type="void"/>
249		<param name="target" type="GLenum"/>
250		<param name="pname" type="GLenum"/>
251		<vector name="params" type="const GLtype *" size="dynamic">
252			<param name="param" type="GLtype"/>
253		</vector>
254	</proto>
255
256	<desc name="target" category="OES_point_sprite">
257		<value name="GL_POINT_SPRITE_OES"/>
258
259		<desc name="pname">
260			<value name="GL_COORD_REPLACE_OES"/>
261		</desc>
262	</desc>
263
264	<desc name="pname" category="OES_point_sprite">
265		<value name="GL_COORD_REPLACE_OES"/>
266
267		<desc name="param">
268			<value name="GL_TRUE"/>
269			<value name="GL_FALSE"/>
270		</desc>
271	</desc>
272
273	<desc name="target" category="EXT_texture_lod_bias">
274		<value name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
275
276		<desc name="pname">
277			<value name="GL_TEXTURE_LOD_BIAS_EXT"/>
278		</desc>
279	</desc>
280
281	<desc name="pname" category="EXT_texture_lod_bias">
282		<value name="GL_TEXTURE_LOD_BIAS_EXT"/>
283		<desc name="params" vector_size="1"/>
284	</desc>
285
286	<desc name="target">
287		<value name="GL_TEXTURE_ENV"/>
288
289		<desc name="pname">
290			<value name="GL_TEXTURE_ENV_MODE"/>
291			<value name="GL_COMBINE_RGB"/>
292			<value name="GL_COMBINE_ALPHA"/>
293			<value name="GL_RGB_SCALE"/>
294			<value name="GL_ALPHA_SCALE"/>
295			<value name="GL_SRC0_RGB"/>
296			<value name="GL_SRC1_RGB"/>
297			<value name="GL_SRC2_RGB"/>
298			<value name="GL_SRC0_ALPHA"/>
299			<value name="GL_SRC1_ALPHA"/>
300			<value name="GL_SRC2_ALPHA"/>
301			<value name="GL_OPERAND0_RGB"/>
302			<value name="GL_OPERAND1_RGB"/>
303			<value name="GL_OPERAND2_RGB"/>
304			<value name="GL_OPERAND0_ALPHA"/>
305			<value name="GL_OPERAND1_ALPHA"/>
306			<value name="GL_OPERAND2_ALPHA"/>
307			<value name="GL_TEXTURE_ENV_COLOR"/>
308		</desc>
309	</desc>
310
311	<desc name="pname">
312		<value name="GL_TEXTURE_ENV_MODE"/>
313
314		<desc name="param">
315			<value name="GL_REPLACE"/>
316			<value name="GL_MODULATE"/>
317			<value name="GL_DECAL"/>
318			<value name="GL_BLEND"/>
319			<value name="GL_ADD"/>
320			<value name="GL_COMBINE"/>
321		</desc>
322	</desc>
323
324	<desc name="pname">
325		<value name="GL_COMBINE_RGB"/>
326
327		<desc name="param">
328			<value name="GL_REPLACE"/>
329			<value name="GL_MODULATE"/>
330			<value name="GL_ADD"/>
331			<value name="GL_ADD_SIGNED"/>
332			<value name="GL_INTERPOLATE"/>
333			<value name="GL_SUBTRACT"/>
334			<value name="GL_DOT3_RGB"/>
335			<value name="GL_DOT3_RGBA"/>
336		</desc>
337	</desc>
338
339	<desc name="pname">
340		<value name="GL_COMBINE_ALPHA"/>
341
342		<desc name="param">
343			<value name="GL_REPLACE"/>
344			<value name="GL_MODULATE"/>
345			<value name="GL_ADD"/>
346			<value name="GL_ADD_SIGNED"/>
347			<value name="GL_INTERPOLATE"/>
348			<value name="GL_SUBTRACT"/>
349		</desc>
350	</desc>
351
352	<desc name="pname">
353		<value name="GL_RGB_SCALE"/>
354		<value name="GL_ALPHA_SCALE"/>
355	</desc>
356
357	<desc name="pname">
358		<value name="GL_SRC0_RGB"/>
359		<value name="GL_SRC1_RGB"/>
360		<value name="GL_SRC2_RGB"/>
361		<value name="GL_SRC0_ALPHA"/>
362		<value name="GL_SRC1_ALPHA"/>
363		<value name="GL_SRC2_ALPHA"/>
364
365		<desc name="param">
366			<value name="GL_TEXTURE"/>
367			<value name="GL_CONSTANT"/>
368			<value name="GL_PRIMARY_COLOR"/>
369			<value name="GL_PREVIOUS"/>
370
371			<range base="GL_TEXTURE" from="0" to="31" category="OES_texture_env_crossbar"/>
372		</desc>
373	</desc>
374
375	<desc name="pname">
376		<value name="GL_OPERAND0_RGB"/>
377		<value name="GL_OPERAND1_RGB"/>
378		<value name="GL_OPERAND2_RGB"/>
379
380		<desc name="param">
381			<value name="GL_SRC_COLOR"/>
382			<value name="GL_ONE_MINUS_SRC_COLOR"/>
383			<value name="GL_SRC_ALPHA"/>
384			<value name="GL_ONE_MINUS_SRC_ALPHA"/>
385		</desc>
386	</desc>
387
388	<desc name="pname">
389		<value name="GL_OPERAND0_ALPHA"/>
390		<value name="GL_OPERAND1_ALPHA"/>
391		<value name="GL_OPERAND2_ALPHA"/>
392
393		<desc name="param">
394			<value name="GL_SRC_ALPHA"/>
395			<value name="GL_ONE_MINUS_SRC_ALPHA"/>
396		</desc>
397	</desc>
398
399	<desc name="pname">
400		<value name="GL_TEXTURE_ENV_COLOR"/>
401
402		<desc name="params" vector_size="4"/>
403	</desc>
404</template>
405
406<template name="TexGen">
407	<proto>
408		<return type="void"/>
409		<param name="coord" type="GLenum"/>
410		<param name="pname" type="GLenum"/>
411		<vector name="params" type="const GLtype *" size="dynamic">
412			<param name="param" type="GLtype"/>
413		</vector>
414	</proto>
415
416	<desc name="coord" category="OES_texture_cube_map">
417		<value name="GL_TEXTURE_GEN_STR_OES"/>
418	</desc>
419
420	<desc name="pname" category="OES_texture_cube_map">
421		<value name="GL_TEXTURE_GEN_MODE_OES"/>
422
423		<desc name="param">
424			<value name="GL_NORMAL_MAP_OES"/>
425			<value name="GL_REFLECTION_MAP_OES"/>
426		</desc>
427	</desc>
428</template>
429
430<template name="Clear">
431	<proto>
432		<return type="void"/>
433		<param name="mask" type="GLbitfield"/>
434	</proto>
435
436	<desc name="mask" error="GL_INVALID_VALUE">
437		<value name="0"/>
438		<value name="(GL_COLOR_BUFFER_BIT)"/>
439		<value name="(GL_DEPTH_BUFFER_BIT)"/>
440		<value name="(GL_STENCIL_BUFFER_BIT)"/>
441		<value name="(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)"/>
442		<value name="(GL_COLOR_BUFFER_BIT|GL_STENCIL_BUFFER_BIT)"/>
443		<value name="(GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT)"/>
444		<value name="(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT)"/>
445	</desc>
446</template>
447
448<template name="ClearColor">
449	<proto>
450		<return type="void"/>
451		<param name="red" type="GLtype"/>
452		<param name="green" type="GLtype"/>
453		<param name="blue" type="GLtype"/>
454		<param name="alpha" type="GLtype"/>
455	</proto>
456</template>
457
458<template name="ClearStencil">
459	<proto>
460		<return type="void"/>
461		<param name="s" type="GLint"/>
462	</proto>
463</template>
464
465<template name="ClearDepth">
466	<proto>
467		<return type="void"/>
468		<param name="depth" type="GLtype"/>
469	</proto>
470</template>
471
472<template name="StencilMask">
473	<proto>
474		<return type="void"/>
475		<param name="mask" type="GLuint"/>
476	</proto>
477</template>
478
479<template name="StencilMaskSeparate">
480	<proto>
481		<return type="void"/>
482		<param name="face" type="GLenum"/>
483		<param name="mask" type="GLuint"/>
484	</proto>
485</template>
486
487<template name="ColorMask">
488	<proto>
489		<return type="void"/>
490		<param name="red" type="GLboolean"/>
491		<param name="green" type="GLboolean"/>
492		<param name="blue" type="GLboolean"/>
493		<param name="alpha" type="GLboolean"/>
494	</proto>
495</template>
496
497<template name="DepthMask">
498	<proto>
499		<return type="void"/>
500		<param name="flag" type="GLboolean"/>
501	</proto>
502</template>
503
504<template name="Disable">
505	<proto>
506		<return type="void"/>
507		<param name="cap" type="GLenum"/>
508	</proto>
509
510	<desc name="cap" category="GLES1.1">
511		<value name="GL_NORMALIZE"/>
512		<value name="GL_RESCALE_NORMAL"/>
513
514		<range base="GL_CLIP_PLANE" from="0" to="5"/>
515		<value name="GL_CLIP_PLANE0+6"/>
516		<value name="GL_CLIP_PLANE0+7"/>
517
518		<value name="GL_FOG"/>
519		<value name="GL_LIGHTING"/>
520		<value name="GL_COLOR_MATERIAL"/>
521
522		<range base="GL_LIGHT" from="0" to="7"/>
523
524		<value name="GL_POINT_SMOOTH"/>
525		<value name="GL_LINE_SMOOTH"/>
526		<value name="GL_CULL_FACE"/>
527		<value name="GL_POLYGON_OFFSET_FILL"/>
528		<value name="GL_MULTISAMPLE"/>
529		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
530		<value name="GL_SAMPLE_ALPHA_TO_ONE"/>
531		<value name="GL_SAMPLE_COVERAGE"/>
532		<value name="GL_TEXTURE_2D"/>
533		<value name="GL_SCISSOR_TEST"/>
534		<value name="GL_ALPHA_TEST"/>
535		<value name="GL_STENCIL_TEST"/>
536		<value name="GL_DEPTH_TEST"/>
537		<value name="GL_BLEND"/>
538		<value name="GL_DITHER"/>
539		<value name="GL_COLOR_LOGIC_OP"/>
540
541		<value name="GL_POINT_SPRITE_OES" category="OES_point_sprite"/>
542		<value name="GL_MATRIX_PALETTE_OES" category="OES_matrix_palette"/>
543		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
544		<value name="GL_TEXTURE_GEN_STR_OES" category="OES_texture_cube_map"/>
545		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
546	</desc>
547
548	<desc name="cap" category="GLES2.0">
549		<value name="GL_CULL_FACE"/>
550		<value name="GL_SCISSOR_TEST"/>
551		<value name="GL_POLYGON_OFFSET_FILL"/>
552		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
553		<value name="GL_SAMPLE_COVERAGE"/>
554		<value name="GL_STENCIL_TEST"/>
555		<value name="GL_DEPTH_TEST"/>
556		<value name="GL_DITHER"/>
557		<value name="GL_BLEND"/>
558	</desc>
559</template>
560
561<!-- it is exactly the same as Disable -->
562<template name="Enable">
563	<proto>
564		<return type="void"/>
565		<param name="cap" type="GLenum"/>
566	</proto>
567
568	<desc name="cap" category="GLES1.1">
569		<value name="GL_NORMALIZE"/>
570		<value name="GL_RESCALE_NORMAL"/>
571
572		<range base="GL_CLIP_PLANE" from="0" to="5"/>
573		<value name="GL_CLIP_PLANE0+6"/>
574		<value name="GL_CLIP_PLANE0+7"/>
575
576		<value name="GL_FOG"/>
577		<value name="GL_LIGHTING"/>
578		<value name="GL_COLOR_MATERIAL"/>
579
580		<range base="GL_LIGHT" from="0" to="7"/>
581
582		<value name="GL_POINT_SMOOTH"/>
583		<value name="GL_LINE_SMOOTH"/>
584		<value name="GL_CULL_FACE"/>
585		<value name="GL_POLYGON_OFFSET_FILL"/>
586		<value name="GL_MULTISAMPLE"/>
587		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
588		<value name="GL_SAMPLE_ALPHA_TO_ONE"/>
589		<value name="GL_SAMPLE_COVERAGE"/>
590		<value name="GL_TEXTURE_2D"/>
591		<value name="GL_SCISSOR_TEST"/>
592		<value name="GL_ALPHA_TEST"/>
593		<value name="GL_STENCIL_TEST"/>
594		<value name="GL_DEPTH_TEST"/>
595		<value name="GL_BLEND"/>
596		<value name="GL_DITHER"/>
597		<value name="GL_COLOR_LOGIC_OP"/>
598
599		<value name="GL_POINT_SPRITE_OES" category="OES_point_sprite"/>
600		<value name="GL_MATRIX_PALETTE_OES" category="OES_matrix_palette"/>
601		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
602		<value name="GL_TEXTURE_GEN_STR_OES" category="OES_texture_cube_map"/>
603		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
604	</desc>
605
606	<desc name="cap" category="GLES2.0">
607		<value name="GL_CULL_FACE"/>
608		<value name="GL_SCISSOR_TEST"/>
609		<value name="GL_POLYGON_OFFSET_FILL"/>
610		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
611		<value name="GL_SAMPLE_COVERAGE"/>
612		<value name="GL_STENCIL_TEST"/>
613		<value name="GL_DEPTH_TEST"/>
614		<value name="GL_DITHER"/>
615		<value name="GL_BLEND"/>
616	</desc>
617</template>
618
619<template name="Finish">
620	<proto>
621		<return type="void"/>
622	</proto>
623</template>
624
625<template name="Flush">
626	<proto>
627		<return type="void"/>
628	</proto>
629</template>
630
631<template name="AlphaFunc">
632	<proto>
633		<return type="void"/>
634		<param name="func" type="GLenum"/>
635		<param name="ref" type="GLtype"/>
636	</proto>
637</template>
638
639<template name="BlendFunc">
640	<proto>
641		<return type="void"/>
642		<param name="sfactor" type="GLenum"/>
643		<param name="dfactor" type="GLenum"/>
644	</proto>
645
646	<desc name="sfactor">
647		<value name="GL_ZERO"/>
648		<value name="GL_ONE"/>
649		<value name="GL_SRC_COLOR"/>
650		<value name="GL_ONE_MINUS_SRC_COLOR"/>
651		<value name="GL_SRC_ALPHA"/>
652		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
653		<value name="GL_DST_ALPHA"/>
654		<value name="GL_ONE_MINUS_DST_ALPHA"/>
655		<value name="GL_DST_COLOR"/>
656		<value name="GL_ONE_MINUS_DST_COLOR"/>
657		<value name="GL_SRC_ALPHA_SATURATE"/>
658
659		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
660		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
661		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
662		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
663	</desc>
664
665	<desc name="dfactor">
666		<value name="GL_ZERO"/>
667		<value name="GL_ONE"/>
668		<value name="GL_SRC_COLOR"/>
669		<value name="GL_ONE_MINUS_SRC_COLOR"/>
670		<value name="GL_SRC_ALPHA"/>
671		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
672		<value name="GL_DST_ALPHA"/>
673		<value name="GL_ONE_MINUS_DST_ALPHA"/>
674		<value name="GL_DST_COLOR"/>
675		<value name="GL_ONE_MINUS_DST_COLOR"/>
676
677		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
678		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
679		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
680		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
681	</desc>
682</template>
683
684<template name="LogicOp">
685	<proto>
686		<return type="void"/>
687		<param name="opcode" type="GLenum"/>
688	</proto>
689</template>
690
691<template name="StencilFunc">
692	<proto>
693		<return type="void"/>
694		<param name="func" type="GLenum"/>
695		<param name="ref" type="GLint"/>
696		<param name="mask" type="GLuint"/>
697	</proto>
698</template>
699
700<template name="StencilFuncSeparate">
701	<proto>
702		<return type="void"/>
703		<param name="face" type="GLenum"/>
704		<param name="func" type="GLenum"/>
705		<param name="ref" type="GLint"/>
706		<param name="mask" type="GLuint"/>
707	</proto>
708</template>
709
710<template name="StencilOp">
711	<proto>
712		<return type="void"/>
713		<param name="fail" type="GLenum"/>
714		<param name="zfail" type="GLenum"/>
715		<param name="zpass" type="GLenum"/>
716	</proto>
717</template>
718
719<template name="StencilOpSeparate">
720	<proto>
721		<return type="void"/>
722		<param name="face" type="GLenum"/>
723		<param name="fail" type="GLenum"/>
724		<param name="zfail" type="GLenum"/>
725		<param name="zpass" type="GLenum"/>
726	</proto>
727</template>
728
729<template name="DepthFunc">
730	<proto>
731		<return type="void"/>
732		<param name="func" type="GLenum"/>
733	</proto>
734</template>
735
736<template name="PixelStore">
737	<proto>
738		<return type="void"/>
739		<param name="pname" type="GLenum"/>
740		<param name="param" type="GLtype"/>
741	</proto>
742
743	<desc name="pname">
744		<value name="GL_PACK_ALIGNMENT"/>
745		<desc name="param" error="GL_INVALID_VALUE">
746			<value name="1"/>
747			<value name="2"/>
748			<value name="4"/>
749			<value name="8"/>
750		</desc>
751	</desc>
752
753	<desc name="pname">
754		<value name="GL_UNPACK_ALIGNMENT"/>
755		<desc name="param" error="GL_INVALID_VALUE">
756			<value name="1"/>
757			<value name="2"/>
758			<value name="4"/>
759			<value name="8"/>
760		</desc>
761	</desc>
762
763	<desc name="pname" category="EXT_unpack_subimage">
764		<value name="GL_UNPACK_ROW_LENGTH"/>
765		<value name="GL_UNPACK_SKIP_PIXELS"/>
766		<value name="GL_UNPACK_SKIP_ROWS"/>
767	</desc>
768
769</template>
770
771<template name="ReadPixels" direction="get">
772	<proto>
773		<return type="void"/>
774		<param name="x" type="GLint"/>
775		<param name="y" type="GLint"/>
776		<param name="width" type="GLsizei"/>
777		<param name="height" type="GLsizei"/>
778		<param name="format" type="GLenum"/>
779		<param name="type" type="GLenum"/>
780		<param name="pixels" type="GLvoid *"/>
781	</proto>
782
783	<!-- Technically, only two combinations are actually allowed:
784	     GL_RGBA/GL_UNSIGNED_BYTE, and some implementation-specific
785	     internal preferred combination.  I don't know what that is, so I'm
786	     allowing any valid combination for now; the underlying support
787	     should fail when necessary.-->
788	<desc name="format">
789		<value name="GL_ALPHA"/>
790		<desc name="type" error="GL_INVALID_OPERATION">
791			<value name="GL_UNSIGNED_BYTE"/>
792		</desc>
793	</desc>
794
795	<desc name="format">
796		<value name="GL_RGB"/>
797		<desc name="type" error="GL_INVALID_OPERATION">
798			<value name="GL_UNSIGNED_BYTE"/>
799			<value name="GL_UNSIGNED_SHORT_5_6_5"/>
800		</desc>
801	</desc>
802
803	<desc name="format">
804		<value name="GL_RGBA"/>
805		<desc name="type" error="GL_INVALID_OPERATION">
806			<value name="GL_UNSIGNED_BYTE"/>
807			<value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
808			<value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
809		</desc>
810	</desc>
811
812	<desc name="format">
813		<value name="GL_LUMINANCE"/>
814		<desc name="type" error="GL_INVALID_OPERATION">
815			<value name="GL_UNSIGNED_BYTE"/>
816		</desc>
817	</desc>
818
819	<desc name="format">
820		<value name="GL_LUMINANCE_ALPHA"/>
821		<desc name="type" error="GL_INVALID_OPERATION">
822			<value name="GL_UNSIGNED_BYTE"/>
823		</desc>
824	</desc>
825
826	<desc name="format" category="EXT_read_format_bgra">
827		<value name="GL_BGRA_EXT"/>
828
829		<desc name="type" error="GL_INVALID_OPERATION">
830			<value name="GL_UNSIGNED_BYTE"/>
831			<value name="GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT"/>
832			<value name="GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT"/>
833		</desc>
834	</desc>
835</template>
836
837<template name="GetClipPlane" direction="get">
838	<proto>
839		<return type="void"/>
840		<param name="plane" type="GLenum"/>
841		<vector name="equation" type="GLtype *" size="4"/>
842	</proto>
843</template>
844
845<template name="GetError" direction="get">
846	<proto>
847		<return type="GLenum"/>
848	</proto>
849</template>
850
851<!-- template for GetFloatv, GetIntegerv, GetBoolean, and GetFixedv -->
852<template name="GetState" direction="get">
853	<proto>
854		<return type="void"/>
855		<param name="pname" type="GLenum"/>
856		<vector name="params" type="GLtype *" size="dynamic"/>
857	</proto>
858	<!-- param checking is done in mesa -->
859</template>
860
861<template name="GetLight" direction="get">
862	<proto>
863		<return type="void"/>
864		<param name="light" type="GLenum"/>
865		<param name="pname" type="GLenum"/>
866		<vector name="params" type="GLtype *" size="dynamic"/>
867	</proto>
868</template>
869
870<template name="GetMaterial" direction="get">
871	<proto>
872		<return type="void"/>
873		<param name="face" type="GLenum"/>
874		<param name="pname" type="GLenum"/>
875		<vector name="params" type="GLtype *" size="dynamic">
876			<param name="param" type="GLtype"/>
877		</vector>
878	</proto>
879
880	<desc name="face">
881		<value name="GL_FRONT"/>
882		<value name="GL_BACK"/>
883	</desc>
884
885	<desc name="pname">
886		<value name="GL_SHININESS"/>
887		<desc name="params" vector_size="1"/>
888	</desc>
889
890	<desc name="pname">
891		<value name="GL_AMBIENT"/>
892		<value name="GL_DIFFUSE"/>
893		<value name="GL_AMBIENT_AND_DIFFUSE"/>
894		<value name="GL_SPECULAR"/>
895		<value name="GL_EMISSION"/>
896
897		<desc name="params" vector_size="4"/>
898	</desc>
899</template>
900
901<template name="GetString" direction="get">
902	<proto>
903		<return type="const GLubyte *"/>
904		<param name="name" type="GLenum"/>
905	</proto>
906
907	<desc name="name">
908		<value name="GL_VENDOR"/>
909		<value name="GL_RENDERER"/>
910		<value name="GL_VERSION"/>
911		<value name="GL_EXTENSIONS"/>
912		<value name="GL_SHADING_LANGUAGE_VERSION" category="GLES2.0"/>
913	</desc>
914</template>
915
916<template name="GetTexEnv" direction="get">
917	<proto>
918		<return type="void"/>
919		<param name="target" type="GLenum"/>
920		<param name="pname" type="GLenum"/>
921		<vector name="params" type="GLtype *" size="dynamic"/>
922	</proto>
923
924	<desc name="target" category="OES_point_sprite">
925		<value name="GL_POINT_SPRITE_OES"/>
926		<desc name="pname">
927			<value name="GL_COORD_REPLACE_OES"/>
928		</desc>
929	</desc>
930
931	<desc name="pname" category="OES_point_sprite">
932		<value name="GL_COORD_REPLACE_OES"/>
933		<desc name="params" vector_size="1" convert="false"/>
934	</desc>
935
936	<desc name="target" category="EXT_texture_lod_bias">
937		<value name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
938
939		<desc name="pname">
940			<value name="GL_TEXTURE_LOD_BIAS_EXT"/>
941		</desc>
942	</desc>
943
944	<desc name="pname" category="EXT_texture_lod_bias">
945		<value name="GL_TEXTURE_LOD_BIAS_EXT"/>
946		<desc name="params" vector_size="1"/>
947	</desc>
948
949	<desc name="target">
950		<value name="GL_TEXTURE_ENV"/>
951
952		<desc name="pname">
953			<value name="GL_TEXTURE_ENV_COLOR"/>
954			<value name="GL_RGB_SCALE"/>
955			<value name="GL_ALPHA_SCALE"/>
956			<value name="GL_TEXTURE_ENV_MODE"/>
957			<value name="GL_COMBINE_RGB"/>
958			<value name="GL_COMBINE_ALPHA"/>
959			<value name="GL_SRC0_RGB"/>
960			<value name="GL_SRC1_RGB"/>
961			<value name="GL_SRC2_RGB"/>
962			<value name="GL_SRC0_ALPHA"/>
963			<value name="GL_SRC1_ALPHA"/>
964			<value name="GL_SRC2_ALPHA"/>
965			<value name="GL_OPERAND0_RGB"/>
966			<value name="GL_OPERAND1_RGB"/>
967			<value name="GL_OPERAND2_RGB"/>
968			<value name="GL_OPERAND0_ALPHA"/>
969			<value name="GL_OPERAND1_ALPHA"/>
970			<value name="GL_OPERAND2_ALPHA"/>
971		</desc>
972	</desc>
973
974	<desc name="pname">
975		<value name="GL_TEXTURE_ENV_COLOR"/>
976		<desc name="params" vector_size="4"/>
977	</desc>
978
979	<desc name="pname">
980		<value name="GL_RGB_SCALE"/>
981		<value name="GL_ALPHA_SCALE"/>
982
983		<desc name="params" vector_size="1"/>
984	</desc>
985
986	<desc name="pname">
987		<value name="GL_TEXTURE_ENV_MODE"/>
988		<value name="GL_COMBINE_RGB"/>
989		<value name="GL_COMBINE_ALPHA"/>
990		<value name="GL_SRC0_RGB"/>
991		<value name="GL_SRC1_RGB"/>
992		<value name="GL_SRC2_RGB"/>
993		<value name="GL_SRC0_ALPHA"/>
994		<value name="GL_SRC1_ALPHA"/>
995		<value name="GL_SRC2_ALPHA"/>
996		<value name="GL_OPERAND0_RGB"/>
997		<value name="GL_OPERAND1_RGB"/>
998		<value name="GL_OPERAND2_RGB"/>
999		<value name="GL_OPERAND0_ALPHA"/>
1000		<value name="GL_OPERAND1_ALPHA"/>
1001		<value name="GL_OPERAND2_ALPHA"/>
1002
1003		<desc name="params" vector_size="1" convert="false"/>
1004	</desc>
1005</template>
1006
1007<template name="GetTexGen" direction="get">
1008	<proto>
1009		<return type="void"/>
1010		<param name="coord" type="GLenum"/>
1011		<param name="pname" type="GLenum"/>
1012		<vector name="params" type="GLtype *" size="dynamic"/>
1013	</proto>
1014
1015	<desc name="coord">
1016		<value name="GL_TEXTURE_GEN_STR_OES"/>
1017	</desc>
1018	<desc name="pname">
1019		<value name="GL_TEXTURE_GEN_MODE_OES"/>
1020		<desc name="params" vector_size="1" convert="false"/>
1021	</desc>
1022</template>
1023
1024<template name="GetTexParameter" direction="get">
1025	<proto>
1026		<return type="void"/>
1027		<param name="target" type="GLenum"/>
1028		<param name="pname" type="GLenum"/>
1029		<vector name="params" type="GLtype *" size="dynamic"/>
1030	</proto>
1031</template>
1032
1033<template name="IsEnabled" direction="get">
1034	<proto>
1035		<return type="GLboolean"/>
1036		<param name="cap" type="GLenum"/>
1037	</proto>
1038
1039	<desc name="cap" category="GLES1.1">
1040		<value name="GL_NORMALIZE"/>
1041		<value name="GL_RESCALE_NORMAL"/>
1042
1043		<range base="GL_CLIP_PLANE" from="0" to="5"/>
1044		<value name="GL_CLIP_PLANE0+6"/>
1045		<value name="GL_CLIP_PLANE0+7"/>
1046
1047		<value name="GL_FOG"/>
1048		<value name="GL_LIGHTING"/>
1049		<value name="GL_COLOR_MATERIAL"/>
1050
1051		<range base="GL_LIGHT" from="0" to="7"/>
1052
1053		<value name="GL_POINT_SMOOTH"/>
1054		<value name="GL_LINE_SMOOTH"/>
1055		<value name="GL_CULL_FACE"/>
1056		<value name="GL_POLYGON_OFFSET_FILL"/>
1057		<value name="GL_MULTISAMPLE"/>
1058		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
1059		<value name="GL_SAMPLE_ALPHA_TO_ONE"/>
1060		<value name="GL_SAMPLE_COVERAGE"/>
1061		<value name="GL_TEXTURE_2D"/>
1062		<value name="GL_SCISSOR_TEST"/>
1063		<value name="GL_ALPHA_TEST"/>
1064		<value name="GL_STENCIL_TEST"/>
1065		<value name="GL_DEPTH_TEST"/>
1066		<value name="GL_BLEND"/>
1067		<value name="GL_DITHER"/>
1068		<value name="GL_COLOR_LOGIC_OP"/>
1069
1070		<value name="GL_POINT_SPRITE_OES" category="OES_point_sprite"/>
1071		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
1072		<value name="GL_TEXTURE_GEN_STR_OES" category="OES_texture_cube_map"/>
1073
1074		<value name="GL_VERTEX_ARRAY"/>
1075		<value name="GL_NORMAL_ARRAY"/>
1076		<value name="GL_COLOR_ARRAY"/>
1077		<value name="GL_TEXTURE_COORD_ARRAY"/>
1078		<value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
1079		<value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
1080		<value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
1081		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
1082	</desc>
1083
1084	<desc name="cap" category="GLES2.0">
1085		<value name="GL_CULL_FACE"/>
1086		<value name="GL_SCISSOR_TEST"/>
1087		<value name="GL_POLYGON_OFFSET_FILL"/>
1088		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
1089		<value name="GL_SAMPLE_COVERAGE"/>
1090		<value name="GL_STENCIL_TEST"/>
1091		<value name="GL_DEPTH_TEST"/>
1092		<value name="GL_DITHER"/>
1093		<value name="GL_BLEND"/>
1094	</desc>
1095</template>
1096
1097<template name="DepthRange">
1098	<proto>
1099		<return type="void"/>
1100		<param name="zNear" type="GLtype"/>
1101		<param name="zFar" type="GLtype"/>
1102	</proto>
1103</template>
1104
1105<template name="Frustum">
1106	<proto>
1107		<return type="void"/>
1108		<param name="left" type="GLtype"/>
1109		<param name="right" type="GLtype"/>
1110		<param name="bottom" type="GLtype"/>
1111		<param name="top" type="GLtype"/>
1112		<param name="zNear" type="GLtype"/>
1113		<param name="zFar" type="GLtype"/>
1114	</proto>
1115</template>
1116
1117<template name="LoadIdentity">
1118	<proto>
1119		<return type="void"/>
1120	</proto>
1121</template>
1122
1123<template name="LoadMatrix">
1124	<proto>
1125		<return type="void"/>
1126		<vector name="m" type="const GLtype *" size="16"/>
1127	</proto>
1128</template>
1129
1130<template name="MatrixMode">
1131	<proto>
1132		<return type="void"/>
1133		<param name="mode" type="GLenum"/>
1134	</proto>
1135
1136	<desc name="mode">
1137		<value name="GL_MODELVIEW"/>
1138		<value name="GL_PROJECTION"/>
1139		<value name="GL_TEXTURE"/>
1140		<value name="GL_MATRIX_PALETTE_OES" category="OES_matrix_palette"/>
1141	</desc>
1142</template>
1143
1144<template name="MultMatrix">
1145	<proto>
1146		<return type="void"/>
1147		<vector name="m" type="const GLtype *" size="16"/>
1148	</proto>
1149</template>
1150
1151<template name="Ortho">
1152	<proto>
1153		<return type="void"/>
1154		<param name="left" type="GLtype"/>
1155		<param name="right" type="GLtype"/>
1156		<param name="bottom" type="GLtype"/>
1157		<param name="top" type="GLtype"/>
1158		<param name="zNear" type="GLtype"/>
1159		<param name="zFar" type="GLtype"/>
1160	</proto>
1161</template>
1162
1163<template name="PopMatrix">
1164	<proto>
1165		<return type="void"/>
1166	</proto>
1167</template>
1168
1169<template name="PushMatrix">
1170	<proto>
1171		<return type="void"/>
1172	</proto>
1173</template>
1174
1175<template name="Rotate">
1176	<proto>
1177		<return type="void"/>
1178		<param name="angle" type="GLtype"/>
1179		<param name="x" type="GLtype"/>
1180		<param name="y" type="GLtype"/>
1181		<param name="z" type="GLtype"/>
1182	</proto>
1183</template>
1184
1185<template name="Scale">
1186	<proto>
1187		<return type="void"/>
1188		<param name="x" type="GLtype"/>
1189		<param name="y" type="GLtype"/>
1190		<param name="z" type="GLtype"/>
1191	</proto>
1192</template>
1193
1194<template name="Translate">
1195	<proto>
1196		<return type="void"/>
1197		<param name="x" type="GLtype"/>
1198		<param name="y" type="GLtype"/>
1199		<param name="z" type="GLtype"/>
1200	</proto>
1201</template>
1202
1203<template name="Viewport">
1204	<proto>
1205		<return type="void"/>
1206		<param name="x" type="GLint"/>
1207		<param name="y" type="GLint"/>
1208		<param name="width" type="GLsizei"/>
1209		<param name="height" type="GLsizei"/>
1210	</proto>
1211</template>
1212
1213<template name="ColorPointer">
1214	<proto>
1215		<return type="void"/>
1216		<param name="size" type="GLint"/>
1217		<param name="type" type="GLenum"/>
1218		<param name="stride" type="GLsizei"/>
1219		<param name="pointer" type="const GLvoid *"/>
1220	</proto>
1221</template>
1222
1223<template name="DisableClientState">
1224	<proto>
1225		<return type="void"/>
1226		<param name="array" type="GLenum"/>
1227	</proto>
1228
1229	<desc name="array">
1230		<value name="GL_VERTEX_ARRAY"/>
1231		<value name="GL_NORMAL_ARRAY"/>
1232		<value name="GL_COLOR_ARRAY"/>
1233		<value name="GL_TEXTURE_COORD_ARRAY"/>
1234		<value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
1235		<value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
1236		<value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
1237	</desc>
1238</template>
1239
1240<template name="DrawArrays">
1241	<proto>
1242		<return type="void"/>
1243		<param name="mode" type="GLenum"/>
1244		<param name="first" type="GLint"/>
1245		<param name="count" type="GLsizei"/>
1246	</proto>
1247
1248	<desc name="mode">
1249		<value name="GL_POINTS"/>
1250		<value name="GL_LINES"/>
1251		<value name="GL_LINE_LOOP"/>
1252		<value name="GL_LINE_STRIP"/>
1253		<value name="GL_TRIANGLES"/>
1254		<value name="GL_TRIANGLE_STRIP"/>
1255		<value name="GL_TRIANGLE_FAN"/>
1256	</desc>
1257</template>
1258
1259<template name="DrawElements">
1260	<proto>
1261		<return type="void"/>
1262		<param name="mode" type="GLenum"/>
1263		<param name="count" type="GLsizei"/>
1264		<param name="type" type="GLenum"/>
1265		<param name="indices" type="const GLvoid *"/>
1266	</proto>
1267
1268	<desc name="mode">
1269		<value name="GL_POINTS"/>
1270		<value name="GL_LINES"/>
1271		<value name="GL_LINE_LOOP"/>
1272		<value name="GL_LINE_STRIP"/>
1273		<value name="GL_TRIANGLES"/>
1274		<value name="GL_TRIANGLE_STRIP"/>
1275		<value name="GL_TRIANGLE_FAN"/>
1276	</desc>
1277</template>
1278
1279<template name="EnableClientState">
1280	<proto>
1281		<return type="void"/>
1282		<param name="array" type="GLenum"/>
1283	</proto>
1284
1285	<desc name="array">
1286		<value name="GL_VERTEX_ARRAY"/>
1287		<value name="GL_NORMAL_ARRAY"/>
1288		<value name="GL_COLOR_ARRAY"/>
1289		<value name="GL_TEXTURE_COORD_ARRAY"/>
1290		<value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
1291		<value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
1292		<value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
1293	</desc>
1294</template>
1295
1296<template name="GetPointer" direction="get">
1297	<proto>
1298		<return type="void"/>
1299		<param name="pname" type="GLenum"/>
1300		<vector name="params" type="GLvoid **" size="dynamic"/>
1301	</proto>
1302
1303	<desc name="pname">
1304		<value name="GL_VERTEX_ARRAY_POINTER"/>
1305		<value name="GL_NORMAL_ARRAY_POINTER"/>
1306		<value name="GL_COLOR_ARRAY_POINTER"/>
1307		<value name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
1308		<value name="GL_MATRIX_INDEX_ARRAY_POINTER_OES" category="OES_matrix_palette"/>
1309		<value name="GL_WEIGHT_ARRAY_POINTER_OES" category="OES_matrix_palette"/>
1310		<value name="GL_POINT_SIZE_ARRAY_POINTER_OES" category="OES_point_size_array"/>
1311	</desc>
1312</template>
1313
1314<template name="Normal">
1315	<proto>
1316		<return type="void"/>
1317		<vector name="v" type="const GLtype *" size="3">
1318			<param name="nx" type="GLtype"/>
1319			<param name="ny" type="GLtype"/>
1320			<param name="nz" type="GLtype"/>
1321		</vector>
1322	</proto>
1323</template>
1324
1325<template name="NormalPointer">
1326	<proto>
1327		<return type="void"/>
1328		<param name="type" type="GLenum"/>
1329		<param name="stride" type="GLsizei"/>
1330		<param name="pointer" type="const GLvoid *"/>
1331	</proto>
1332</template>
1333
1334<template name="TexCoordPointer">
1335	<proto>
1336		<return type="void"/>
1337		<param name="size" type="GLint"/>
1338		<param name="type" type="GLenum"/>
1339		<param name="stride" type="GLsizei"/>
1340		<param name="pointer" type="const GLvoid *"/>
1341	</proto>
1342</template>
1343
1344<template name="VertexPointer">
1345	<proto>
1346		<return type="void"/>
1347		<param name="size" type="GLint"/>
1348		<param name="type" type="GLenum"/>
1349		<param name="stride" type="GLsizei"/>
1350		<param name="pointer" type="const GLvoid *"/>
1351	</proto>
1352</template>
1353
1354<template name="PolygonOffset">
1355	<proto>
1356		<return type="void"/>
1357		<param name="factor" type="GLtype"/>
1358		<param name="units" type="GLtype"/>
1359	</proto>
1360</template>
1361
1362<template name="CopyTexImage2D">
1363	<proto>
1364		<return type="void"/>
1365		<param name="target" type="GLenum"/>
1366		<param name="level" type="GLint"/>
1367		<param name="internalFormat" type="GLenum"/>
1368		<param name="x" type="GLint"/>
1369		<param name="y" type="GLint"/>
1370		<param name="width" type="GLsizei"/>
1371		<param name="height" type="GLsizei"/>
1372		<param name="border" type="GLint"/>
1373	</proto>
1374</template>
1375
1376<template name="CopyTexSubImage2D">
1377	<proto>
1378		<return type="void"/>
1379		<param name="target" type="GLenum"/>
1380		<param name="level" type="GLint"/>
1381		<param name="xoffset" type="GLint"/>
1382		<param name="yoffset" type="GLint"/>
1383		<param name="x" type="GLint"/>
1384		<param name="y" type="GLint"/>
1385		<param name="width" type="GLsizei"/>
1386		<param name="height" type="GLsizei"/>
1387	</proto>
1388</template>
1389
1390<template name="TexSubImage2D">
1391	<proto>
1392		<return type="void"/>
1393		<param name="target" type="GLenum"/>
1394		<param name="level" type="GLint"/>
1395		<param name="xoffset" type="GLint"/>
1396		<param name="yoffset" type="GLint"/>
1397		<param name="width" type="GLsizei"/>
1398		<param name="height" type="GLsizei"/>
1399		<param name="format" type="GLenum"/>
1400		<param name="type" type="GLenum"/>
1401		<param name="pixels" type="const GLvoid *"/>
1402	</proto>
1403</template>
1404
1405<template name="BindTexture">
1406	<proto>
1407		<return type="void"/>
1408		<param name="target" type="GLenum"/>
1409		<param name="texture" type="GLuint"/>
1410	</proto>
1411</template>
1412
1413<template name="DeleteTextures">
1414	<proto>
1415		<return type="void"/>
1416		<param name="n" type="GLsizei"/>
1417		<param name="textures" type="const GLuint *"/>
1418	</proto>
1419</template>
1420
1421<template name="GenTextures" direction="get">
1422	<proto>
1423		<return type="void"/>
1424		<param name="n" type="GLsizei"/>
1425		<param name="textures" type="GLuint *"/>
1426	</proto>
1427</template>
1428
1429<template name="IsTexture" direction="get">
1430	<proto>
1431		<return type="GLboolean"/>
1432		<param name="texture" type="GLuint"/>
1433	</proto>
1434</template>
1435
1436<template name="BlendColor">
1437	<proto>
1438		<return type="void"/>
1439		<param name="red" type="GLtype"/>
1440		<param name="green" type="GLtype"/>
1441		<param name="blue" type="GLtype"/>
1442		<param name="alpha" type="GLtype"/>
1443	</proto>
1444</template>
1445
1446<template name="BlendEquation">
1447	<proto>
1448		<return type="void"/>
1449		<param name="mode" type="GLenum"/>
1450	</proto>
1451</template>
1452
1453<template name="BlendEquationSeparate">
1454	<proto>
1455		<return type="void"/>
1456		<param name="modeRGB" type="GLenum"/>
1457		<param name="modeAlpha" type="GLenum"/>
1458	</proto>
1459</template>
1460
1461<template name="TexImage3D">
1462	<proto>
1463		<return type="void"/>
1464		<param name="target" type="GLenum"/>
1465		<param name="level" type="GLint"/>
1466		<param name="internalFormat" type="GLenum"/>
1467		<param name="width" type="GLsizei"/>
1468		<param name="height" type="GLsizei"/>
1469		<param name="depth" type="GLsizei"/>
1470		<param name="border" type="GLint"/>
1471		<param name="format" type="GLenum"/>
1472		<param name="type" type="GLenum"/>
1473		<param name="pixels" type="const GLvoid *"/>
1474	</proto>
1475
1476</template>
1477
1478<template name="TexSubImage3D">
1479	<proto>
1480		<return type="void"/>
1481		<param name="target" type="GLenum"/>
1482		<param name="level" type="GLint"/>
1483		<param name="xoffset" type="GLint"/>
1484		<param name="yoffset" type="GLint"/>
1485		<param name="zoffset" type="GLint"/>
1486		<param name="width" type="GLsizei"/>
1487		<param name="height" type="GLsizei"/>
1488		<param name="depth" type="GLsizei"/>
1489		<param name="format" type="GLenum"/>
1490		<param name="type" type="GLenum"/>
1491		<param name="pixels" type="const GLvoid *"/>
1492	</proto>
1493</template>
1494
1495<template name="CopyTexSubImage3D">
1496	<proto>
1497		<return type="void"/>
1498		<param name="target" type="GLenum"/>
1499		<param name="level" type="GLint"/>
1500		<param name="xoffset" type="GLint"/>
1501		<param name="yoffset" type="GLint"/>
1502		<param name="zoffset" type="GLint"/>
1503		<param name="x" type="GLint"/>
1504		<param name="y" type="GLint"/>
1505		<param name="width" type="GLsizei"/>
1506		<param name="height" type="GLsizei"/>
1507	</proto>
1508</template>
1509
1510<template name="MultiTexCoord">
1511	<proto>
1512		<return type="void"/>
1513		<param name="texture" type="GLenum"/>
1514		<vector name="v" type="const GLtype *" size="dynamic">
1515			<param name="s" type="GLtype"/>
1516			<param name="t" type="GLtype"/>
1517			<param name="r" type="GLtype"/>
1518			<param name="q" type="GLtype"/>
1519		</vector>
1520	</proto>
1521</template>
1522
1523<template name="CompressedTexImage3D">
1524	<proto>
1525		<return type="void"/>
1526		<param name="target" type="GLenum"/>
1527		<param name="level" type="GLint"/>
1528		<param name="internalFormat" type="GLenum"/>
1529		<param name="width" type="GLsizei"/>
1530		<param name="height" type="GLsizei"/>
1531		<param name="depth" type="GLsizei"/>
1532		<param name="border" type="GLint"/>
1533		<param name="imagesize" type="GLsizei"/>
1534		<param name="data" type="const GLvoid *"/>
1535	</proto>
1536</template>
1537
1538<template name="CompressedTexSubImage3D">
1539	<proto>
1540		<return type="void"/>
1541		<param name="target" type="GLenum"/>
1542		<param name="level" type="GLint"/>
1543		<param name="xoffset" type="GLint"/>
1544		<param name="yoffset" type="GLint"/>
1545		<param name="zoffset" type="GLint"/>
1546		<param name="width" type="GLsizei"/>
1547		<param name="height" type="GLsizei"/>
1548		<param name="depth" type="GLsizei"/>
1549		<param name="format" type="GLenum"/>
1550		<param name="imagesize" type="GLsizei"/>
1551		<param name="data" type="const GLvoid *"/>
1552	</proto>
1553</template>
1554
1555<template name="ActiveTexture">
1556	<proto>
1557		<return type="void"/>
1558		<param name="texture" type="GLenum"/>
1559	</proto>
1560</template>
1561
1562<template name="ClientActiveTexture">
1563	<proto>
1564		<return type="void"/>
1565		<param name="texture" type="GLenum"/>
1566	</proto>
1567</template>
1568
1569<template name="SampleCoverage">
1570	<proto>
1571		<return type="void"/>
1572		<param name="value" type="GLtype"/>
1573		<param name="invert" type="GLboolean"/>
1574	</proto>
1575</template>
1576
1577<template name="CompressedTexImage2D">
1578	<proto>
1579		<return type="void"/>
1580		<param name="target" type="GLenum"/>
1581		<param name="level" type="GLint"/>
1582		<param name="internalFormat" type="GLenum"/>
1583		<param name="width" type="GLsizei"/>
1584		<param name="height" type="GLsizei"/>
1585		<param name="border" type="GLint"/>
1586		<param name="imageSize" type="GLsizei"/>
1587		<param name="data" type="const GLvoid *"/>
1588	</proto>
1589</template>
1590
1591<template name="CompressedTexSubImage2D">
1592	<proto>
1593		<return type="void"/>
1594		<param name="target" type="GLenum"/>
1595		<param name="level" type="GLint"/>
1596		<param name="xoffset" type="GLint"/>
1597		<param name="yoffset" type="GLint"/>
1598		<param name="width" type="GLsizei"/>
1599		<param name="height" type="GLsizei"/>
1600		<param name="format" type="GLenum"/>
1601		<param name="imageSize" type="GLsizei"/>
1602		<param name="data" type="const GLvoid *"/>
1603	</proto>
1604</template>
1605
1606<template name="BlendFuncSeparate">
1607	<proto>
1608		<return type="void"/>
1609		<param name="srcRGB" type="GLenum"/>
1610		<param name="dstRGB" type="GLenum"/>
1611		<param name="srcAlpha" type="GLenum"/>
1612		<param name="dstAlpha" type="GLenum"/>
1613	</proto>
1614
1615	<desc name="srcRGB">
1616		<value name="GL_ZERO"/>
1617		<value name="GL_ONE"/>
1618		<value name="GL_SRC_COLOR"/>
1619		<value name="GL_ONE_MINUS_SRC_COLOR"/>
1620		<value name="GL_SRC_ALPHA"/>
1621		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
1622		<value name="GL_DST_ALPHA"/>
1623		<value name="GL_ONE_MINUS_DST_ALPHA"/>
1624		<value name="GL_DST_COLOR"/>
1625		<value name="GL_ONE_MINUS_DST_COLOR"/>
1626		<value name="GL_SRC_ALPHA_SATURATE"/>
1627
1628		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
1629		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
1630		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
1631		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
1632	</desc>
1633
1634	<desc name="dstRGB">
1635		<value name="GL_ZERO"/>
1636		<value name="GL_ONE"/>
1637		<value name="GL_SRC_COLOR"/>
1638		<value name="GL_ONE_MINUS_SRC_COLOR"/>
1639		<value name="GL_SRC_ALPHA"/>
1640		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
1641		<value name="GL_DST_ALPHA"/>
1642		<value name="GL_ONE_MINUS_DST_ALPHA"/>
1643		<value name="GL_DST_COLOR"/>
1644		<value name="GL_ONE_MINUS_DST_COLOR"/>
1645
1646		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
1647		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
1648		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
1649		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
1650	</desc>
1651
1652	<desc name="srcAlpha">
1653		<value name="GL_ZERO"/>
1654		<value name="GL_ONE"/>
1655		<value name="GL_SRC_COLOR"/>
1656		<value name="GL_ONE_MINUS_SRC_COLOR"/>
1657		<value name="GL_SRC_ALPHA"/>
1658		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
1659		<value name="GL_DST_ALPHA"/>
1660		<value name="GL_ONE_MINUS_DST_ALPHA"/>
1661		<value name="GL_DST_COLOR"/>
1662		<value name="GL_ONE_MINUS_DST_COLOR"/>
1663		<value name="GL_SRC_ALPHA_SATURATE"/>
1664
1665		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
1666		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
1667		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
1668		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
1669	</desc>
1670
1671	<desc name="dstAlpha">
1672		<value name="GL_ZERO"/>
1673		<value name="GL_ONE"/>
1674		<value name="GL_SRC_COLOR"/>
1675		<value name="GL_ONE_MINUS_SRC_COLOR"/>
1676		<value name="GL_SRC_ALPHA"/>
1677		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
1678		<value name="GL_DST_ALPHA"/>
1679		<value name="GL_ONE_MINUS_DST_ALPHA"/>
1680		<value name="GL_DST_COLOR"/>
1681		<value name="GL_ONE_MINUS_DST_COLOR"/>
1682
1683		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
1684		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
1685		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
1686		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
1687	</desc>
1688</template>
1689
1690<template name="PointParameter">
1691	<proto>
1692		<return type="void"/>
1693		<param name="pname" type="GLenum"/>
1694		<vector name="params" type="const GLtype *" size="dynamic">
1695			<param name="param" type="GLtype"/>
1696		</vector>
1697	</proto>
1698
1699	<desc name="pname">
1700		<value name="GL_POINT_SIZE_MIN"/>
1701		<value name="GL_POINT_SIZE_MAX"/>
1702		<value name="GL_POINT_FADE_THRESHOLD_SIZE"/>
1703
1704		<desc name="params" vector_size="1"/>
1705	</desc>
1706
1707	<desc name="pname">
1708		<value name="GL_POINT_DISTANCE_ATTENUATION"/>
1709		<desc name="params" vector_size="3"/>
1710	</desc>
1711</template>
1712
1713<template name="VertexAttrib">
1714	<proto>
1715		<return type="void"/>
1716		<param name="index" type="GLuint"/>
1717		<vector name="v" type="const GLtype *" size="dynamic">
1718			<param name="x" type="GLtype"/>
1719			<param name="y" type="GLtype"/>
1720			<param name="z" type="GLtype"/>
1721			<param name="w" type="GLtype"/>
1722		</vector>
1723	</proto>
1724</template>
1725
1726<template name="VertexAttribPointer">
1727	<proto>
1728		<return type="void"/>
1729		<param name="index" type="GLuint"/>
1730		<param name="size" type="GLint"/>
1731		<param name="type" type="GLenum"/>
1732		<param name="normalized" type="GLboolean"/>
1733		<param name="stride" type="GLsizei"/>
1734		<param name="pointer" type="const GLvoid *"/>
1735	</proto>
1736</template>
1737
1738<template name="EnableVertexAttribArray">
1739	<proto>
1740		<return type="void"/>
1741		<param name="index" type="GLuint"/>
1742	</proto>
1743</template>
1744
1745<template name="DisableVertexAttribArray">
1746	<proto>
1747		<return type="void"/>
1748		<param name="index" type="GLuint"/>
1749	</proto>
1750</template>
1751
1752<template name="IsProgram" direction="get">
1753	<proto>
1754		<return type="GLboolean"/>
1755		<param name="program" type="GLuint"/>
1756	</proto>
1757</template>
1758
1759<template name="GetProgram" direction="get">
1760	<proto>
1761		<return type="void"/>
1762		<param name="program" type="GLuint"/>
1763		<param name="pname" type="GLenum"/>
1764		<vector name="params" type="GLtype *" size="dynamic"/>
1765	</proto>
1766</template>
1767
1768<template name="GetVertexAttrib" direction="get">
1769	<proto>
1770		<return type="void"/>
1771		<param name="index" type="GLuint"/>
1772		<param name="pname" type="GLenum"/>
1773		<vector name="params" type="GLtype *" size="dynamic"/>
1774	</proto>
1775
1776	<desc name="pname">
1777		<value name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
1778		<value name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
1779		<value name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
1780		<value name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
1781		<value name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
1782		<value name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
1783
1784		<desc name="params" vector_size="1" convert="false"/>
1785	</desc>
1786
1787	<desc name="pname">
1788		<value name="GL_CURRENT_VERTEX_ATTRIB"/>
1789		<desc name="params" vector_size="16?" convert="false"/>
1790	</desc>
1791</template>
1792
1793<template name="GetVertexAttribPointer" direction="get">
1794	<proto>
1795		<return type="void"/>
1796		<param name="index" type="GLuint"/>
1797		<param name="pname" type="GLenum"/>
1798		<vector name="pointer" type="GLvoid **" size="dynamic"/>
1799	</proto>
1800</template>
1801
1802<template name="GetBufferPointer" direction="get">
1803	<proto>
1804		<return type="void"/>
1805		<param name="target" type="GLenum"/>
1806		<param name="pname" type="GLenum"/>
1807		<vector name="params" type="GLvoid **" size="dynamic"/>
1808	</proto>
1809
1810	<desc name="target">
1811		<value name="GL_ARRAY_BUFFER"/>
1812		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
1813	</desc>
1814</template>
1815
1816<template name="MapBuffer" direction="get">
1817	<proto>
1818		<return type="void *"/>
1819		<param name="target" type="GLenum"/>
1820		<param name="access" type="GLenum"/>
1821	</proto>
1822
1823	<desc name="target">
1824		<value name="GL_ARRAY_BUFFER"/>
1825		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
1826	</desc>
1827
1828	<desc name="access">
1829		<value name="GL_WRITE_ONLY_OES"/>
1830	</desc>
1831</template>
1832
1833<template name="UnmapBuffer" direction="get">
1834	<proto>
1835		<return type="GLboolean"/>
1836		<param name="target" type="GLenum"/>
1837	</proto>
1838
1839	<desc name="target">
1840		<value name="GL_ARRAY_BUFFER"/>
1841		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
1842	</desc>
1843</template>
1844
1845<template name="BindBuffer">
1846	<proto>
1847		<return type="void"/>
1848		<param name="target" type="GLenum"/>
1849		<param name="buffer" type="GLuint"/>
1850	</proto>
1851
1852	<desc name="target">
1853		<value name="GL_ARRAY_BUFFER"/>
1854		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
1855	</desc>
1856</template>
1857
1858<template name="BufferData">
1859	<proto>
1860		<return type="void"/>
1861		<param name="target" type="GLenum"/>
1862		<param name="size" type="GLsizeiptr"/>
1863		<param name="data" type="const GLvoid *"/>
1864		<param name="usage" type="GLenum"/>
1865	</proto>
1866
1867	<desc name="target">
1868		<value name="GL_ARRAY_BUFFER"/>
1869		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
1870	</desc>
1871
1872	<desc name="usage">
1873		<value name="GL_STATIC_DRAW"/>
1874		<value name="GL_DYNAMIC_DRAW"/>
1875		<value name="GL_STREAM_DRAW" category="GLES2.0"/>
1876	</desc>
1877</template>
1878
1879<template name="BufferSubData">
1880	<proto>
1881		<return type="void"/>
1882		<param name="target" type="GLenum"/>
1883		<param name="offset" type="GLintptr"/>
1884		<param name="size" type="GLsizeiptr"/>
1885		<param name="data" type="const GLvoid *"/>
1886	</proto>
1887
1888	<desc name="target">
1889		<value name="GL_ARRAY_BUFFER"/>
1890		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
1891	</desc>
1892</template>
1893
1894<template name="DeleteBuffers">
1895	<proto>
1896		<return type="void"/>
1897		<param name="n" type="GLsizei"/>
1898		<param name="buffer" type="const GLuint *"/>
1899	</proto>
1900</template>
1901
1902<template name="GenBuffers" direction="get">
1903	<proto>
1904		<return type="void"/>
1905		<param name="n" type="GLsizei"/>
1906		<param name="buffer" type="GLuint *"/>
1907	</proto>
1908</template>
1909
1910<template name="GetBufferParameter" direction="get">
1911	<proto>
1912		<return type="void"/>
1913		<param name="target" type="GLenum"/>
1914		<param name="pname" type="GLenum"/>
1915		<vector name="params" type="GLtype *" size="dynamic"/>
1916	</proto>
1917
1918	<desc name="target">
1919		<value name="GL_ARRAY_BUFFER"/>
1920		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
1921	</desc>
1922
1923	<desc name="pname">
1924		<value name="GL_BUFFER_SIZE"/>
1925		<value name="GL_BUFFER_USAGE"/>
1926		<value name="GL_BUFFER_ACCESS_OES" category="OES_mapbuffer"/>
1927		<value name="GL_BUFFER_MAPPED_OES" category="OES_mapbuffer"/>
1928	</desc>
1929</template>
1930
1931<template name="IsBuffer" direction="get">
1932	<proto>
1933		<return type="GLboolean"/>
1934		<param name="buffer" type="GLuint"/>
1935	</proto>
1936</template>
1937
1938<template name="CreateShader">
1939	<proto>
1940		<return type="GLuint"/>
1941		<param name="type" type="GLenum"/>
1942	</proto>
1943</template>
1944
1945<template name="ShaderSource">
1946	<proto>
1947		<return type="void"/>
1948		<param name="shader" type="GLuint"/>
1949		<param name="count" type="GLsizei"/>
1950		<param name="string" type="const GLchar * const *"/>
1951		<param name="length" type="const int *"/>
1952	</proto>
1953</template>
1954
1955<template name="CompileShader">
1956	<proto>
1957		<return type="void"/>
1958		<param name="shader" type="GLuint"/>
1959	</proto>
1960</template>
1961
1962<template name="ReleaseShaderCompiler">
1963	<proto>
1964		<return type="void"/>
1965	</proto>
1966</template>
1967
1968<template name="DeleteShader">
1969	<proto>
1970		<return type="void"/>
1971		<param name="shader" type="GLuint"/>
1972	</proto>
1973</template>
1974
1975<template name="ShaderBinary">
1976	<proto>
1977		<return type="void"/>
1978		<param name="n" type="GLsizei"/>
1979		<param name="shaders" type="const GLuint *"/>
1980		<param name="binaryformat" type="GLenum"/>
1981		<param name="binary" type="const GLvoid *"/>
1982		<param name="length" type="GLsizei"/>
1983	</proto>
1984</template>
1985
1986<template name="CreateProgram">
1987	<proto>
1988		<return type="GLuint"/>
1989	</proto>
1990</template>
1991
1992<template name="AttachShader">
1993	<proto>
1994		<return type="void"/>
1995		<param name="program" type="GLuint"/>
1996		<param name="shader" type="GLuint"/>
1997	</proto>
1998</template>
1999
2000<template name="DetachShader">
2001	<proto>
2002		<return type="void"/>
2003		<param name="program" type="GLuint"/>
2004		<param name="shader" type="GLuint"/>
2005	</proto>
2006</template>
2007
2008<template name="LinkProgram">
2009	<proto>
2010		<return type="void"/>
2011		<param name="program" type="GLuint"/>
2012	</proto>
2013</template>
2014
2015<template name="UseProgram">
2016	<proto>
2017		<return type="void"/>
2018		<param name="program" type="GLuint"/>
2019	</proto>
2020</template>
2021
2022<template name="DeleteProgram">
2023	<proto>
2024		<return type="void"/>
2025		<param name="program" type="GLuint"/>
2026	</proto>
2027</template>
2028
2029<template name="GetActiveAttrib" direction="get">
2030	<proto>
2031		<return type="void"/>
2032		<param name="program" type="GLuint"/>
2033		<param name="index" type="GLuint"/>
2034		<param name="bufSize" type="GLsizei"/>
2035		<param name="length" type="GLsizei *"/>
2036		<param name="size" type="GLint *"/>
2037		<param name="type" type="GLenum *"/>
2038		<param name="name" type="GLchar *"/>
2039	</proto>
2040</template>
2041
2042<template name="GetAttribLocation" direction="get">
2043	<proto>
2044		<return type="GLint"/>
2045		<param name="program" type="GLuint"/>
2046		<param name="name" type="const char *"/>
2047	</proto>
2048</template>
2049
2050<template name="BindAttribLocation">
2051	<proto>
2052		<return type="void"/>
2053		<param name="program" type="GLuint"/>
2054		<param name="index" type="GLuint"/>
2055		<param name="name" type="const char *"/>
2056	</proto>
2057</template>
2058
2059<template name="GetUniformLocation" direction="get">
2060	<proto>
2061		<return type="GLint"/>
2062		<param name="program" type="GLuint"/>
2063		<param name="name" type="const char *"/>
2064	</proto>
2065</template>
2066
2067<template name="GetActiveUniform" direction="get">
2068	<proto>
2069		<return type="void"/>
2070		<param name="program" type="GLuint"/>
2071		<param name="index" type="GLuint"/>
2072		<param name="bufSize" type="GLsizei"/>
2073		<param name="length" type="GLsizei *"/>
2074		<param name="size" type="GLint *"/>
2075		<param name="type" type="GLenum *"/>
2076		<param name="name" type="GLchar *"/>
2077	</proto>
2078</template>
2079
2080<template name="Uniform">
2081	<proto>
2082		<return type="void"/>
2083		<param name="location" type="GLint"/>
2084		<param name="count" type="GLsizei" hide_if_expanded="true"/>
2085		<vector name="values" type="const GLtype *" size="dynamic">
2086			<param name="v0" type="GLtype"/>
2087			<param name="v1" type="GLtype"/>
2088			<param name="v2" type="GLtype"/>
2089			<param name="v3" type="GLtype"/>
2090		</vector>
2091	</proto>
2092</template>
2093
2094<template name="UniformMatrix">
2095	<proto>
2096		<return type="void"/>
2097		<param name="location" type="GLint"/>
2098		<param name="count" type="GLsizei"/>
2099		<param name="transpose" type="GLboolean"/>
2100		<vector name="value" type="const GLtype *" size="dynamic"/>
2101	</proto>
2102</template>
2103
2104<template name="ValidateProgram">
2105	<proto>
2106		<return type="void"/>
2107		<param name="program" type="GLuint"/>
2108	</proto>
2109</template>
2110
2111<template name="GenerateMipmap">
2112	<proto>
2113		<return type="void"/>
2114		<param name="target" type="GLenum"/>
2115	</proto>
2116
2117	<desc name="target">
2118		<value name="GL_TEXTURE_2D"/>
2119		<value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
2120		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
2121		<value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
2122	</desc>
2123</template>
2124
2125<template name="BindFramebuffer">
2126	<proto>
2127		<return type="void"/>
2128		<param name="target" type="GLenum"/>
2129		<param name="framebuffer" type="GLuint"/>
2130	</proto>
2131</template>
2132
2133<template name="DeleteFramebuffers">
2134	<proto>
2135		<return type="void"/>
2136		<param name="n" type="GLsizei"/>
2137		<param name="framebuffers" type="const GLuint *"/>
2138	</proto>
2139</template>
2140
2141<template name="GenFramebuffers">
2142	<proto>
2143		<return type="void"/>
2144		<param name="n" type="GLsizei"/>
2145		<param name="ids" type="GLuint *"/>
2146	</proto>
2147</template>
2148
2149<template name="BindRenderbuffer">
2150	<proto>
2151		<return type="void"/>
2152		<param name="target" type="GLenum"/>
2153		<param name="renderbuffer" type="GLuint"/>
2154	</proto>
2155</template>
2156
2157<template name="DeleteRenderbuffers">
2158	<proto>
2159		<return type="void"/>
2160		<param name="n" type="GLsizei"/>
2161		<param name="renderbuffers" type="const GLuint *"/>
2162	</proto>
2163</template>
2164
2165<template name="GenRenderbuffers">
2166	<proto>
2167		<return type="void"/>
2168		<param name="n" type="GLsizei"/>
2169		<param name="renderbuffers" type="GLuint *"/>
2170	</proto>
2171</template>
2172
2173<template name="RenderbufferStorage">
2174	<proto>
2175		<return type="void"/>
2176		<param name="target" type="GLenum"/>
2177		<param name="internalFormat" type="GLenum"/>
2178		<param name="width" type="GLsizei"/>
2179		<param name="height" type="GLsizei"/>
2180	</proto>
2181
2182	<desc name="internalFormat">
2183		<value name="GL_DEPTH_COMPONENT16_OES" category="OES_framebuffer_object"/>
2184		<value name="GL_RGBA4_OES" category="OES_framebuffer_object"/>
2185		<value name="GL_RGB5_A1_OES" category="OES_framebuffer_object"/>
2186		<value name="GL_RGB565_OES" category="OES_framebuffer_object"/>
2187		<value name="GL_STENCIL_INDEX8_OES" category="OES_stencil8"/>
2188
2189		<value name="GL_DEPTH_COMPONENT16" category="GLES2.0"/>
2190		<value name="GL_RGBA4" category="GLES2.0"/>
2191		<value name="GL_RGB5_A1" category="GLES2.0"/>
2192		<value name="GL_RGB565" category="GLES2.0"/>
2193		<value name="GL_STENCIL_INDEX8" category="GLES2.0"/>
2194
2195		<value name="GL_DEPTH_COMPONENT24_OES" category="OES_depth24"/>
2196		<value name="GL_DEPTH_COMPONENT32_OES" category="OES_depth32"/>
2197		<value name="GL_RGB8_OES" category="OES_rgb8_rgba8"/>
2198		<value name="GL_RGBA8_OES" category="OES_rgb8_rgba8"/>
2199		<value name="GL_STENCIL_INDEX1_OES" category="OES_stencil1"/>
2200		<value name="GL_STENCIL_INDEX4_OES" category="OES_stencil4"/>
2201		<value name="GL_DEPTH24_STENCIL8_OES" category="OES_packed_depth_stencil"/>
2202	</desc>
2203</template>
2204
2205<template name="FramebufferRenderbuffer">
2206	<proto>
2207		<return type="void"/>
2208		<param name="target" type="GLenum"/>
2209		<param name="attachment" type="GLenum"/>
2210		<param name="renderbuffertarget" type="GLenum"/>
2211		<param name="renderbuffer" type="GLuint"/>
2212	</proto>
2213</template>
2214
2215<template name="FramebufferTexture2D">
2216	<proto>
2217		<return type="void"/>
2218		<param name="target" type="GLenum"/>
2219		<param name="attachment" type="GLenum"/>
2220		<param name="textarget" type="GLenum"/>
2221		<param name="texture" type="GLuint"/>
2222		<param name="level" type="GLint"/>
2223	</proto>
2224
2225	<desc name="textarget" error="GL_INVALID_OPERATION">
2226		<value name="GL_TEXTURE_2D"/>
2227		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
2228		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
2229		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
2230		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
2231		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
2232		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
2233		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
2234		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
2235		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
2236		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
2237		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
2238		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
2239	</desc>
2240	<!-- According to the base specification, "level" must be 0.  But
2241	     extension GL_OES_fbo_render_mipmap lifts that restriction,
2242	     so no restriction is placed here. -->
2243</template>
2244
2245<template name="FramebufferTexture3D">
2246	<proto>
2247		<return type="void"/>
2248		<param name="target" type="GLenum"/>
2249		<param name="attachment" type="GLenum"/>
2250		<param name="textarget" type="GLenum"/>
2251		<param name="texture" type="GLuint"/>
2252		<param name="level" type="GLint"/>
2253		<param name="zoffset" type="GLint"/>
2254	</proto>
2255</template>
2256
2257<template name="CheckFramebufferStatus" direction="get">
2258	<proto>
2259		<return type="GLenum"/>
2260		<param name="target" type="GLenum"/>
2261	</proto>
2262</template>
2263
2264<template name="GetFramebufferAttachmentParameter" direction="get">
2265	<proto>
2266		<return type="void"/>
2267		<param name="target" type="GLenum"/>
2268		<param name="attachment" type="GLenum"/>
2269		<param name="pname" type="GLenum"/>
2270		<vector name="params" type="GLtype *" size="dynamic"/>
2271	</proto>
2272
2273	<desc name="pname">
2274		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES" category="OES_framebuffer_object"/>
2275		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES" category="OES_framebuffer_object"/>
2276		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES" category="OES_framebuffer_object"/>
2277		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES" category="OES_framebuffer_object"/>
2278
2279		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE" category="GLES2.0"/>
2280		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" category="GLES2.0"/>
2281		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" category="GLES2.0"/>
2282		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" category="GLES2.0"/>
2283		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES" category="OES_texture_3D"/>
2284
2285		<desc name="params" vector_size="1" convert="false"/>
2286	</desc>
2287</template>
2288
2289<template name="GetRenderbufferParameter" direction="get">
2290	<proto>
2291		<return type="void"/>
2292		<param name="target" type="GLenum"/>
2293		<param name="pname" type="GLenum"/>
2294		<vector name="params" type="GLtype *" size="dynamic"/>
2295	</proto>
2296
2297	<desc name="pname" category="OES_framebuffer_object">
2298		<value name="GL_RENDERBUFFER_WIDTH_OES"/>
2299		<value name="GL_RENDERBUFFER_HEIGHT_OES"/>
2300		<value name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES"/>
2301		<value name="GL_RENDERBUFFER_RED_SIZE_OES"/>
2302		<value name="GL_RENDERBUFFER_GREEN_SIZE_OES"/>
2303		<value name="GL_RENDERBUFFER_BLUE_SIZE_OES"/>
2304		<value name="GL_RENDERBUFFER_ALPHA_SIZE_OES"/>
2305		<value name="GL_RENDERBUFFER_DEPTH_SIZE_OES"/>
2306		<value name="GL_RENDERBUFFER_STENCIL_SIZE_OES"/>
2307
2308		<desc name="params" vector_size="1" convert="false"/>
2309	</desc>
2310
2311	<desc name="pname" category="GLES2.0">
2312		<value name="GL_RENDERBUFFER_WIDTH"/>
2313		<value name="GL_RENDERBUFFER_HEIGHT"/>
2314		<value name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
2315		<value name="GL_RENDERBUFFER_RED_SIZE"/>
2316		<value name="GL_RENDERBUFFER_GREEN_SIZE"/>
2317		<value name="GL_RENDERBUFFER_BLUE_SIZE"/>
2318		<value name="GL_RENDERBUFFER_ALPHA_SIZE"/>
2319		<value name="GL_RENDERBUFFER_DEPTH_SIZE"/>
2320		<value name="GL_RENDERBUFFER_STENCIL_SIZE"/>
2321
2322		<desc name="params" vector_size="1" convert="false"/>
2323	</desc>
2324</template>
2325
2326<template name="IsRenderbuffer" direction="get">
2327	<proto>
2328		<return type="GLboolean"/>
2329		<param name="renderbuffer" type="GLuint"/>
2330	</proto>
2331</template>
2332
2333<template name="IsFramebuffer" direction="get">
2334	<proto>
2335		<return type="GLboolean"/>
2336		<param name="framebuffer" type="GLuint"/>
2337	</proto>
2338</template>
2339
2340<template name="IsShader" direction="get">
2341	<proto>
2342		<return type="GLboolean"/>
2343		<param name="shader" type="GLuint"/>
2344	</proto>
2345</template>
2346
2347<template name="GetShader" direction="get">
2348	<proto>
2349		<return type="void"/>
2350		<param name="shader" type="GLuint"/>
2351		<param name="pname" type="GLenum"/>
2352		<vector name="params" type="GLtype *" size="dynamic"/>
2353	</proto>
2354</template>
2355
2356<template name="GetAttachedShaders" direction="get">
2357	<proto>
2358		<return type="void"/>
2359		<param name="program" type="GLuint"/>
2360		<param name="maxCount" type="GLsizei"/>
2361		<param name="count" type="GLsizei *"/>
2362		<param name="shaders" type="GLuint *"/>
2363	</proto>
2364</template>
2365
2366<template name="GetShaderInfoLog" direction="get">
2367	<proto>
2368		<return type="void"/>
2369		<param name="shader" type="GLuint"/>
2370		<param name="bufSize" type="GLsizei"/>
2371		<param name="length" type="GLsizei *"/>
2372		<param name="infoLog" type="GLchar *"/>
2373	</proto>
2374</template>
2375
2376<template name="GetProgramInfoLog" direction="get">
2377	<proto>
2378		<return type="void"/>
2379		<param name="program" type="GLuint"/>
2380		<param name="bufSize" type="GLsizei"/>
2381		<param name="length" type="GLsizei *"/>
2382		<param name="infoLog" type="GLchar *"/>
2383	</proto>
2384</template>
2385
2386<template name="GetShaderSource" direction="get">
2387	<proto>
2388		<return type="void"/>
2389		<param name="shader" type="GLuint"/>
2390		<param name="bufSize" type="GLsizei"/>
2391		<param name="length" type="GLsizei *"/>
2392		<param name="source" type="GLchar *"/>
2393	</proto>
2394</template>
2395
2396<template name="GetShaderPrecisionFormat" direction="get">
2397	<proto>
2398		<return type="void"/>
2399		<param name="shadertype" type="GLenum"/>
2400		<param name="precisiontype" type="GLenum"/>
2401		<param name="range" type="GLint *"/>
2402		<param name="precision" type="GLint *"/>
2403	</proto>
2404</template>
2405
2406<template name="GetUniform" direction="get">
2407	<proto>
2408		<return type="void"/>
2409		<param name="program" type="GLuint"/>
2410		<param name="location" type="GLint"/>
2411		<vector name="params" type="GLtype *" size="dynamic"/>
2412	</proto>
2413</template>
2414
2415<template name="QueryMatrix" direction="get">
2416	<proto>
2417		<return type="GLbitfield"/>
2418		<vector name="mantissa" type="GLtype *" size="16"/>
2419		<vector name="exponent" type="GLint *" size="16"/>
2420	</proto>
2421</template>
2422
2423<template name="DrawTex">
2424	<proto>
2425		<return type="void"/>
2426		<vector name="coords" type="const GLtype *" size="5">
2427			<param name="x" type="GLtype"/>
2428			<param name="y" type="GLtype"/>
2429			<param name="z" type="GLtype"/>
2430			<param name="w" type="GLtype"/>
2431			<param name="h" type="GLtype"/>
2432		</vector>
2433	</proto>
2434</template>
2435
2436<template name="MultiDrawArrays">
2437	<proto>
2438		<return type="void"/>
2439		<param name="mode" type="GLenum"/>
2440		<param name="first" type="const GLint *"/>
2441		<param name="count" type="const GLsizei *"/>
2442		<param name="primcount" type="GLsizei"/>
2443	</proto>
2444
2445	<desc name="mode">
2446		<value name="GL_POINTS"/>
2447		<value name="GL_LINES"/>
2448		<value name="GL_LINE_LOOP"/>
2449		<value name="GL_LINE_STRIP"/>
2450		<value name="GL_TRIANGLES"/>
2451		<value name="GL_TRIANGLE_STRIP"/>
2452		<value name="GL_TRIANGLE_FAN"/>
2453	</desc>
2454</template>
2455
2456<template name="MultiDrawElements">
2457	<proto>
2458		<return type="void"/>
2459		<param name="mode" type="GLenum"/>
2460		<param name="count" type="const GLsizei *"/>
2461		<param name="type" type="GLenum"/>
2462		<param name="indices" type="const GLvoid **"/>
2463		<param name="primcount" type="GLsizei"/>
2464	</proto>
2465
2466	<desc name="mode">
2467		<value name="GL_POINTS"/>
2468		<value name="GL_LINES"/>
2469		<value name="GL_LINE_LOOP"/>
2470		<value name="GL_LINE_STRIP"/>
2471		<value name="GL_TRIANGLES"/>
2472		<value name="GL_TRIANGLE_STRIP"/>
2473		<value name="GL_TRIANGLE_FAN"/>
2474	</desc>
2475</template>
2476
2477<template name="EGLImageTargetTexture2D">
2478	<proto>
2479		<return type="void"/>
2480		<param name="target" type="GLenum"/>
2481		<param name="image" type="GLeglImageOES"/>
2482	</proto>
2483</template>
2484
2485<template name="EGLImageTargetRenderbufferStorage">
2486	<proto>
2487		<return type="void"/>
2488		<param name="target" type="GLenum"/>
2489		<param name="image" type="GLeglImageOES"/>
2490	</proto>
2491</template>
2492
2493<template name="DrawBuffers">
2494	<proto>
2495		<return type="void"/>
2496		<param name="n" type="GLsizei"/>
2497		<param name="bufs" type="const GLenum *"/>
2498	</proto>
2499</template>
2500
2501<template name="ReadBuffer">
2502	<proto>
2503		<return type="void"/>
2504		<param name="mode" type="GLenum"/>
2505	</proto>
2506</template>
2507
2508<api name="mesa" implementation="true">
2509	<category name="MESA"/>
2510
2511	<function name="Color4f"  default_prefix="_es_" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2512	<function name="ClipPlane" template="ClipPlane" gltype="GLdouble"/>
2513	<function name="CullFace" template="CullFace"/>
2514
2515	<function name="Fogf" template="Fog" gltype="GLfloat" expand_vector="true"/>
2516	<function name="Fogfv" template="Fog" gltype="GLfloat"/>
2517
2518	<function name="FrontFace" template="FrontFace"/>
2519	<function name="Hint" template="Hint"/>
2520
2521	<function name="Lightf" template="Light" gltype="GLfloat" expand_vector="true"/>
2522	<function name="Lightfv" template="Light" gltype="GLfloat"/>
2523
2524	<function name="LightModelf" template="LightModel" gltype="GLfloat" expand_vector="true"/>
2525	<function name="LightModelfv" template="LightModel" gltype="GLfloat"/>
2526
2527	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
2528
2529	<function name="Materialf" default_prefix="_es_" template="Material" gltype="GLfloat" expand_vector="true"/>
2530	<function name="Materialfv" default_prefix="_es_" template="Material" gltype="GLfloat"/>
2531
2532	<function name="PointSize" template="PointSize" gltype="GLfloat"/>
2533	<function name="PointSizePointer" template="PointSizePointer"/>
2534
2535	<function name="Scissor" template="Scissor"/>
2536	<function name="ShadeModel" template="ShadeModel"/>
2537
2538	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
2539	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
2540	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
2541	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
2542
2543	<function name="TexImage2D" template="TexImage2D"/>
2544
2545	<function name="TexEnvf" template="TexEnv" gltype="GLfloat" expand_vector="true"/>
2546	<function name="TexEnvi" template="TexEnv" gltype="GLint" expand_vector="true"/>
2547	<function name="TexEnvfv" template="TexEnv" gltype="GLfloat"/>
2548	<function name="TexEnviv" template="TexEnv" gltype="GLint"/>
2549
2550	<function name="TexGenf" template="TexGen" gltype="GLfloat" expand_vector="true"/>
2551	<function name="TexGenfv" template="TexGen" gltype="GLfloat"/>
2552
2553	<function name="Clear" template="Clear"/>
2554	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
2555	<function name="ClearStencil" template="ClearStencil"/>
2556	<function name="ClearDepth" template="ClearDepth" gltype="GLclampd"/>
2557	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
2558
2559	<function name="StencilMask" template="StencilMask"/>
2560	<function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
2561	<function name="ColorMask" template="ColorMask"/>
2562	<function name="DepthMask" template="DepthMask"/>
2563	<function name="Disable" template="Disable"/>
2564	<function name="Enable" template="Enable"/>
2565	<function name="Finish" template="Finish"/>
2566	<function name="Flush" template="Flush"/>
2567
2568	<function name="AlphaFunc" template="AlphaFunc" gltype="GLclampf"/>
2569
2570	<function name="BlendFunc" template="BlendFunc"/>
2571	<function name="LogicOp" template="LogicOp"/>
2572	<function name="StencilFunc" template="StencilFunc"/>
2573	<function name="StencilFuncSeparate" template="StencilFuncSeparate"/>
2574	<function name="StencilOp" template="StencilOp"/>
2575	<function name="StencilOpSeparate" template="StencilOpSeparate"/>
2576	<function name="DepthFunc" template="DepthFunc"/>
2577	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
2578
2579	<function name="ReadPixels" template="ReadPixels"/>
2580	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
2581	<function name="GetClipPlane" template="GetClipPlane" gltype="GLdouble"/>
2582	<function name="GetError" template="GetError"/>
2583	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
2584	<function name="GetFixedv" template="GetState" gltype="GLfixed"/>
2585	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
2586
2587	<function name="GetLightfv" template="GetLight" gltype="GLfloat"/>
2588	<function name="GetMaterialfv" template="GetMaterial" gltype="GLfloat"/>
2589	<function name="GetMaterialiv" template="GetMaterial" gltype="GLint"/>
2590
2591	<function name="GetString" template="GetString"/>
2592
2593	<function name="GetTexEnvfv" template="GetTexEnv" gltype="GLfloat"/>
2594	<function name="GetTexEnviv" template="GetTexEnv" gltype="GLint"/>
2595	<function name="GetTexGenfv" template="GetTexGen" gltype="GLfloat"/>
2596	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
2597	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
2598
2599	<function name="IsEnabled" template="IsEnabled"/>
2600
2601	<function name="DepthRange" template="DepthRange" gltype="GLclampd"/>
2602	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
2603	<function name="Frustum" template="Frustum" gltype="GLdouble"/>
2604
2605	<function name="LoadIdentity" template="LoadIdentity"/>
2606	<function name="LoadMatrixf" template="LoadMatrix" gltype="GLfloat"/>
2607	<function name="MatrixMode" template="MatrixMode"/>
2608
2609	<function name="MultMatrixf" template="MultMatrix" gltype="GLfloat"/>
2610	<function name="Ortho" template="Ortho" gltype="GLdouble"/>
2611	<function name="PopMatrix" template="PopMatrix"/>
2612	<function name="PushMatrix" template="PushMatrix"/>
2613
2614	<function name="Rotatef" template="Rotate" gltype="GLfloat"/>
2615	<function name="Scalef" template="Scale" gltype="GLfloat"/>
2616	<function name="Translatef" template="Translate" gltype="GLfloat"/>
2617
2618	<function name="Viewport" template="Viewport"/>
2619
2620	<function name="ColorPointer" template="ColorPointer"/>
2621	<function name="DisableClientState" template="DisableClientState"/>
2622	<function name="DrawArrays" template="DrawArrays"/>
2623	<function name="DrawElements" template="DrawElements"/>
2624	<function name="EnableClientState" template="EnableClientState"/>
2625
2626	<function name="GetPointerv" template="GetPointer"/>
2627	<function name="Normal3f" default_prefix="_es_" template="Normal" gltype="GLfloat" expand_vector="true"/>
2628	<function name="NormalPointer" template="NormalPointer"/>
2629	<function name="TexCoordPointer" template="TexCoordPointer"/>
2630	<function name="VertexPointer" template="VertexPointer"/>
2631
2632	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
2633	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
2634	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
2635	<function name="TexSubImage2D" template="TexSubImage2D"/>
2636
2637	<function name="BindTexture" template="BindTexture"/>
2638	<function name="DeleteTextures" template="DeleteTextures"/>
2639	<function name="GenTextures" template="GenTextures"/>
2640	<function name="IsTexture" template="IsTexture"/>
2641
2642	<function name="BlendColor" template="BlendColor" gltype="GLclampf"/>
2643	<function name="BlendEquation" template="BlendEquation"/>
2644	<function name="BlendEquationSeparateEXT" template="BlendEquationSeparate"/>
2645
2646	<function name="TexImage3D" template="TexImage3D"/>
2647	<function name="TexSubImage3D" template="TexSubImage3D"/>
2648	<function name="CopyTexSubImage3D" template="CopyTexSubImage3D"/>
2649
2650	<function name="CompressedTexImage3DARB" template="CompressedTexImage3D"/>
2651	<function name="CompressedTexSubImage3DARB" template="CompressedTexSubImage3D"/>
2652
2653	<function name="ActiveTextureARB" template="ActiveTexture"/>
2654	<function name="ClientActiveTextureARB" template="ClientActiveTexture"/>
2655
2656	<function name="MultiTexCoord4f" default_prefix="_es_" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2657
2658	<function name="SampleCoverageARB" template="SampleCoverage" gltype="GLclampf"/>
2659
2660	<function name="CompressedTexImage2DARB" template="CompressedTexImage2D"/>
2661	<function name="CompressedTexSubImage2DARB" template="CompressedTexSubImage2D"/>
2662
2663	<function name="BlendFuncSeparateEXT" template="BlendFuncSeparate"/>
2664
2665	<function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
2666	<function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
2667
2668	<function name="VertexAttrib1f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
2669	<function name="VertexAttrib2f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
2670	<function name="VertexAttrib3f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
2671	<function name="VertexAttrib4f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2672	<function name="VertexAttrib1fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
2673	<function name="VertexAttrib2fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
2674	<function name="VertexAttrib3fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
2675	<function name="VertexAttrib4fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
2676
2677	<function name="VertexAttribPointerARB" template="VertexAttribPointer"/>
2678	<function name="EnableVertexAttribArrayARB" template="EnableVertexAttribArray"/>
2679	<function name="DisableVertexAttribArrayARB" template="DisableVertexAttribArray"/>
2680
2681	<function name="IsProgram" template="IsProgram"/>
2682	<function name="GetProgramiv" template="GetProgram" gltype="GLint"/>
2683
2684	<function name="GetVertexAttribfvARB" template="GetVertexAttrib" gltype="GLfloat"/>
2685	<function name="GetVertexAttribivARB" template="GetVertexAttrib" gltype="GLint"/>
2686	<function name="GetVertexAttribPointervARB" template="GetVertexAttribPointer"/>
2687
2688	<function name="GetBufferPointervARB" template="GetBufferPointer"/>
2689	<function name="MapBufferARB" template="MapBuffer"/>
2690	<function name="UnmapBufferARB" template="UnmapBuffer"/>
2691	<function name="BindBufferARB" template="BindBuffer"/>
2692	<function name="BufferDataARB" template="BufferData"/>
2693	<function name="BufferSubDataARB" template="BufferSubData"/>
2694	<function name="DeleteBuffersARB" template="DeleteBuffers"/>
2695	<function name="GenBuffersARB" template="GenBuffers"/>
2696	<function name="GetBufferParameterivARB" template="GetBufferParameter" gltype="GLint"/>
2697	<function name="IsBufferARB" template="IsBuffer"/>
2698
2699	<function name="CreateShader" template="CreateShader"/>
2700	<function name="ShaderSourceARB" template="ShaderSource"/>
2701	<function name="CompileShaderARB" template="CompileShader"/>
2702	<function name="ReleaseShaderCompiler" template="ReleaseShaderCompiler"/>
2703	<function name="DeleteShader" template="DeleteShader"/>
2704	<function name="ShaderBinary" template="ShaderBinary"/>
2705	<function name="CreateProgram" template="CreateProgram"/>
2706	<function name="AttachShader" template="AttachShader"/>
2707	<function name="DetachShader" template="DetachShader"/>
2708	<function name="LinkProgramARB" template="LinkProgram"/>
2709	<function name="UseProgramObjectARB" template="UseProgram"/>
2710	<function name="DeleteProgram" template="DeleteProgram"/>
2711
2712	<function name="GetActiveAttribARB" template="GetActiveAttrib"/>
2713	<function name="GetAttribLocationARB" template="GetAttribLocation"/>
2714	<function name="BindAttribLocationARB" template="BindAttribLocation"/>
2715	<function name="GetUniformLocationARB" template="GetUniformLocation"/>
2716	<function name="GetActiveUniformARB" template="GetActiveUniform"/>
2717
2718	<function name="Uniform1fARB" template="Uniform" gltype="GLfloat" vector_size="1" expand_vector="true"/>
2719	<function name="Uniform2fARB" template="Uniform" gltype="GLfloat" vector_size="2" expand_vector="true"/>
2720	<function name="Uniform3fARB" template="Uniform" gltype="GLfloat" vector_size="3" expand_vector="true"/>
2721	<function name="Uniform4fARB" template="Uniform" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2722	<function name="Uniform1iARB" template="Uniform" gltype="GLint" vector_size="1" expand_vector="true"/>
2723	<function name="Uniform2iARB" template="Uniform" gltype="GLint" vector_size="2" expand_vector="true"/>
2724	<function name="Uniform3iARB" template="Uniform" gltype="GLint" vector_size="3" expand_vector="true"/>
2725	<function name="Uniform4iARB" template="Uniform" gltype="GLint" vector_size="4" expand_vector="true"/>
2726	<function name="Uniform1fvARB" template="Uniform" gltype="GLfloat" vector_size="1"/>
2727	<function name="Uniform2fvARB" template="Uniform" gltype="GLfloat" vector_size="2"/>
2728	<function name="Uniform3fvARB" template="Uniform" gltype="GLfloat" vector_size="3"/>
2729	<function name="Uniform4fvARB" template="Uniform" gltype="GLfloat" vector_size="4"/>
2730	<function name="Uniform1ivARB" template="Uniform" gltype="GLint" vector_size="1"/>
2731	<function name="Uniform2ivARB" template="Uniform" gltype="GLint" vector_size="2"/>
2732	<function name="Uniform3ivARB" template="Uniform" gltype="GLint" vector_size="3"/>
2733	<function name="Uniform4ivARB" template="Uniform" gltype="GLint" vector_size="4"/>
2734
2735	<function name="UniformMatrix2fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="2"/>
2736	<function name="UniformMatrix3fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="3"/>
2737	<function name="UniformMatrix4fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="4"/>
2738
2739	<function name="ValidateProgramARB" template="ValidateProgram"/>
2740
2741	<function name="GenerateMipmapEXT" template="GenerateMipmap"/>
2742	<function name="BindFramebufferEXT" template="BindFramebuffer"/>
2743	<function name="DeleteFramebuffersEXT" template="DeleteFramebuffers"/>
2744	<function name="GenFramebuffersEXT" template="GenFramebuffers"/>
2745	<function name="BindRenderbufferEXT" template="BindRenderbuffer"/>
2746	<function name="DeleteRenderbuffersEXT" template="DeleteRenderbuffers"/>
2747	<function name="GenRenderbuffersEXT" template="GenRenderbuffers"/>
2748	<function name="RenderbufferStorageEXT" template="RenderbufferStorage"/>
2749	<function name="FramebufferRenderbufferEXT" template="FramebufferRenderbuffer"/>
2750	<function name="FramebufferTexture2DEXT" template="FramebufferTexture2D"/>
2751	<function name="FramebufferTexture3DEXT" template="FramebufferTexture3D"/>
2752	<function name="CheckFramebufferStatusEXT" template="CheckFramebufferStatus"/>
2753	<function name="GetFramebufferAttachmentParameterivEXT" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
2754	<function name="GetRenderbufferParameterivEXT" template="GetRenderbufferParameter" gltype="GLint"/>
2755	<function name="IsRenderbufferEXT" template="IsRenderbuffer"/>
2756	<function name="IsFramebufferEXT" template="IsFramebuffer"/>
2757
2758	<function name="IsShader" template="IsShader"/>
2759	<function name="GetShaderiv" template="GetShader" gltype="GLint"/>
2760	<function name="GetAttachedShaders" template="GetAttachedShaders"/>
2761	<function name="GetShaderInfoLog" template="GetShaderInfoLog"/>
2762	<function name="GetProgramInfoLog" template="GetProgramInfoLog"/>
2763	<function name="GetShaderSourceARB" template="GetShaderSource"/>
2764	<function name="GetShaderPrecisionFormat" template="GetShaderPrecisionFormat"/>
2765	<function name="GetUniformfvARB" template="GetUniform" gltype="GLfloat"/>
2766	<function name="GetUniformivARB" template="GetUniform" gltype="GLint"/>
2767
2768	<function name="DrawTexf" template="DrawTex" gltype="GLfloat" expand_vector="true"/>
2769	<function name="DrawTexfv" template="DrawTex" gltype="GLfloat"/>
2770	<function name="DrawTexi" template="DrawTex" gltype="GLint" expand_vector="true"/>
2771	<function name="DrawTexiv" template="DrawTex" gltype="GLint"/>
2772	<function name="DrawTexs" template="DrawTex" gltype="GLshort" expand_vector="true"/>
2773	<function name="DrawTexsv" template="DrawTex" gltype="GLshort"/>
2774
2775        <!-- EXT_multi_draw_arrays -->
2776        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
2777        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
2778
2779        <!-- OES_EGL_image -->
2780        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
2781        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
2782
2783	<function name="DrawBuffersARB" template="DrawBuffers"/>
2784
2785	<function name="ReadBuffer" template="ReadBuffer"/>
2786
2787</api>
2788
2789<api name="GLES1.1">
2790	<category name="GLES1.1"/>
2791
2792	<category name="OES_byte_coordinates"/>
2793	<category name="OES_fixed_point"/>
2794	<category name="OES_single_precision"/>
2795	<category name="OES_matrix_get"/>
2796	<category name="OES_read_format"/>
2797	<category name="OES_compressed_paletted_texture"/>
2798	<category name="OES_compressed_ETC1_RGB8_texture"/>
2799	<category name="OES_point_size_array"/>
2800	<category name="OES_point_sprite"/>
2801	<category name="OES_query_matrix"/>
2802	<category name="OES_draw_texture"/>
2803	<category name="OES_blend_equation_separate"/>
2804	<category name="OES_blend_func_separate"/>
2805	<category name="OES_blend_subtract"/>
2806	<category name="OES_stencil_wrap"/>
2807	<category name="OES_texture_cube_map"/>
2808	<category name="OES_texture_env_crossbar"/>
2809	<category name="OES_texture_mirrored_repeat"/>
2810	<category name="OES_framebuffer_object"/>
2811	<category name="OES_depth24"/>
2812	<category name="OES_depth32"/>
2813	<category name="OES_fbo_render_mipmap"/>
2814	<category name="OES_rgb8_rgba8"/>
2815	<category name="OES_stencil1"/>
2816	<category name="OES_stencil4"/>
2817	<category name="OES_stencil8"/>
2818	<category name="OES_element_index_uint"/>
2819	<category name="OES_mapbuffer"/>
2820	<category name="EXT_texture_filter_anisotropic"/>
2821	<category name="EXT_texture_format_BGRA8888"/>
2822	<category name="EXT_read_format_bgra"/>
2823
2824	<category name="ARB_texture_non_power_of_two"/>
2825	<!-- disabled due to missing enums
2826	<category name="EXT_texture_compression_dxt1"/>
2827	-->
2828	<category name="EXT_texture_lod_bias"/>
2829	<category name="EXT_blend_minmax"/>
2830	<category name="EXT_multi_draw_arrays"/>
2831	<category name="OES_EGL_image"/>
2832	<category name="OES_EGL_image_external"/>
2833
2834	<category name="OES_matrix_palette"/>
2835
2836	<function name="Color4f" external="true" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2837	<function name="Color4ub" template="Color" gltype="GLubyte" vector_size="4" expand_vector="true"/>
2838	<function name="Color4x" template="Color" gltype="GLfixed" vector_size="4" expand_vector="true"/>
2839
2840	<function name="ClipPlanef" template="ClipPlane" gltype="GLfloat"/>
2841	<function name="ClipPlanex" template="ClipPlane" gltype="GLfixed"/>
2842
2843	<function name="CullFace" template="CullFace"/>
2844
2845	<function name="Fogf" template="Fog" gltype="GLfloat" expand_vector="true"/>
2846	<function name="Fogx" template="Fog" gltype="GLfixed" expand_vector="true"/>
2847	<function name="Fogfv" template="Fog" gltype="GLfloat"/>
2848	<function name="Fogxv" template="Fog" gltype="GLfixed"/>
2849
2850	<function name="FrontFace" template="FrontFace"/>
2851	<function name="Hint" template="Hint"/>
2852
2853	<function name="Lightf" template="Light" gltype="GLfloat" expand_vector="true"/>
2854	<function name="Lightx" template="Light" gltype="GLfixed" expand_vector="true"/>
2855	<function name="Lightfv" template="Light" gltype="GLfloat"/>
2856	<function name="Lightxv" template="Light" gltype="GLfixed"/>
2857
2858	<function name="LightModelf" template="LightModel" gltype="GLfloat" expand_vector="true"/>
2859	<function name="LightModelx" template="LightModel" gltype="GLfixed" expand_vector="true"/>
2860	<function name="LightModelfv" template="LightModel" gltype="GLfloat"/>
2861	<function name="LightModelxv" template="LightModel" gltype="GLfixed"/>
2862
2863	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
2864	<function name="LineWidthx" template="LineWidth" gltype="GLfixed"/>
2865
2866	<function name="Materialf" external="true" template="Material" gltype="GLfloat" expand_vector="true"/>
2867	<function name="Materialfv" external="true" template="Material" gltype="GLfloat"/>
2868	<function name="Materialx" template="Material" gltype="GLfixed" expand_vector="true"/>
2869	<function name="Materialxv" template="Material" gltype="GLfixed"/>
2870
2871	<function name="PointSize" template="PointSize" gltype="GLfloat"/>
2872	<function name="PointSizex" template="PointSize" gltype="GLfixed"/>
2873	<function name="PointSizePointerOES" template="PointSizePointer"/>
2874
2875	<function name="Scissor" template="Scissor"/>
2876	<function name="ShadeModel" template="ShadeModel"/>
2877
2878	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
2879	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
2880	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
2881	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
2882	<function name="TexParameterx" template="TexParameter" gltype="GLfixed" expand_vector="true"/>
2883	<function name="TexParameterxv" template="TexParameter" gltype="GLfixed"/>
2884
2885	<function name="TexImage2D" template="TexImage2D"/>
2886
2887	<function name="TexEnvf" template="TexEnv" gltype="GLfloat" expand_vector="true"/>
2888	<function name="TexEnvfv" template="TexEnv" gltype="GLfloat"/>
2889	<function name="TexEnvi" template="TexEnv" gltype="GLint" expand_vector="true"/>
2890	<function name="TexEnviv" template="TexEnv" gltype="GLint"/>
2891	<function name="TexEnvx" template="TexEnv" gltype="GLfixed" expand_vector="true"/>
2892	<function name="TexEnvxv" template="TexEnv" gltype="GLfixed"/>
2893
2894	<function name="TexGenfOES" external="true" template="TexGen" gltype="GLfloat" expand_vector="true"/>
2895	<function name="TexGenfvOES" external="true" template="TexGen" gltype="GLfloat"/>
2896	<function name="TexGeniOES" external="true" template="TexGen" gltype="GLint" expand_vector="true"/>
2897	<function name="TexGenivOES" external="true" template="TexGen" gltype="GLint"/>
2898	<function name="TexGenxOES" external="true" template="TexGen" gltype="GLfixed" expand_vector="true"/>
2899	<function name="TexGenxvOES" external="true" template="TexGen" gltype="GLfixed"/>
2900
2901	<function name="Clear" template="Clear"/>
2902	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
2903	<function name="ClearColorx" template="ClearColor" gltype="GLclampx"/>
2904
2905	<function name="ClearStencil" template="ClearStencil"/>
2906	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
2907	<function name="ClearDepthx" template="ClearDepth" gltype="GLclampx"/>
2908
2909	<function name="StencilMask" template="StencilMask"/>
2910	<function name="ColorMask" template="ColorMask"/>
2911	<function name="DepthMask" template="DepthMask"/>
2912
2913	<function name="Disable" template="Disable"/>
2914	<function name="Enable" template="Enable"/>
2915	<function name="Finish" template="Finish"/>
2916	<function name="Flush" template="Flush"/>
2917
2918	<function name="AlphaFunc" template="AlphaFunc" gltype="GLclampf"/>
2919	<function name="AlphaFuncx" template="AlphaFunc" gltype="GLclampx"/>
2920
2921	<function name="BlendFunc" template="BlendFunc"/>
2922	<function name="LogicOp" template="LogicOp"/>
2923	<function name="StencilFunc" template="StencilFunc"/>
2924
2925	<function name="StencilOp" template="StencilOp"/>
2926	<function name="DepthFunc" template="DepthFunc"/>
2927
2928	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
2929	<function name="ReadPixels" template="ReadPixels"/>
2930
2931	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
2932
2933	<function name="GetClipPlanef" template="GetClipPlane" gltype="GLfloat"/>
2934	<function name="GetClipPlanex" template="GetClipPlane" gltype="GLfixed"/>
2935
2936	<function name="GetError" template="GetError"/>
2937	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
2938	<function name="GetFixedv" template="GetState" gltype="GLfixed"/>
2939	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
2940
2941	<function name="GetLightfv" template="GetLight" gltype="GLfloat"/>
2942	<function name="GetLightxv" template="GetLight" gltype="GLfixed"/>
2943
2944	<function name="GetMaterialfv" template="GetMaterial" gltype="GLfloat"/>
2945	<function name="GetMaterialxv" template="GetMaterial" gltype="GLfixed"/>
2946
2947	<function name="GetString" template="GetString"/>
2948
2949	<function name="GetTexEnvfv" template="GetTexEnv" gltype="GLfloat"/>
2950	<function name="GetTexEnviv" template="GetTexEnv" gltype="GLint"/>
2951	<function name="GetTexEnvxv" template="GetTexEnv" gltype="GLfixed"/>
2952
2953	<function name="GetTexGenfvOES" external="true" template="GetTexGen" gltype="GLfloat"/>
2954	<function name="GetTexGenivOES" external="true" template="GetTexGen" gltype="GLint"/>
2955	<function name="GetTexGenxvOES" external="true" template="GetTexGen" gltype="GLfixed"/>
2956
2957	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
2958	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
2959	<function name="GetTexParameterxv" template="GetTexParameter" gltype="GLfixed"/>
2960
2961	<function name="IsEnabled" template="IsEnabled"/>
2962
2963	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
2964	<function name="DepthRangex" template="DepthRange" gltype="GLclampx"/>
2965
2966	<function name="Frustumf" template="Frustum" gltype="GLfloat"/>
2967	<function name="Frustumx" template="Frustum" gltype="GLfixed"/>
2968
2969	<function name="LoadIdentity" template="LoadIdentity"/>
2970	<function name="LoadMatrixf" template="LoadMatrix" gltype="GLfloat"/>
2971	<function name="LoadMatrixx" template="LoadMatrix" gltype="GLfixed"/>
2972	<function name="MatrixMode" template="MatrixMode"/>
2973
2974	<function name="MultMatrixf" template="MultMatrix" gltype="GLfloat"/>
2975	<function name="MultMatrixx" template="MultMatrix" gltype="GLfixed"/>
2976	<function name="Orthof" template="Ortho" gltype="GLfloat"/>
2977	<function name="Orthox" template="Ortho" gltype="GLfixed"/>
2978
2979	<function name="PopMatrix" template="PopMatrix"/>
2980	<function name="PushMatrix" template="PushMatrix"/>
2981
2982	<function name="Rotatef" template="Rotate" gltype="GLfloat"/>
2983	<function name="Rotatex" template="Rotate" gltype="GLfixed"/>
2984	<function name="Scalef" template="Scale" gltype="GLfloat"/>
2985	<function name="Scalex" template="Scale" gltype="GLfixed"/>
2986	<function name="Translatef" template="Translate" gltype="GLfloat"/>
2987	<function name="Translatex" template="Translate" gltype="GLfixed"/>
2988
2989	<function name="Viewport" template="Viewport"/>
2990	<function name="ColorPointer" template="ColorPointer"/>
2991	<function name="DisableClientState" template="DisableClientState"/>
2992	<function name="DrawArrays" template="DrawArrays"/>
2993	<function name="DrawElements" template="DrawElements"/>
2994	<function name="EnableClientState" template="EnableClientState"/>
2995
2996	<function name="GetPointerv" template="GetPointer"/>
2997
2998	<function name="Normal3f" external="true" template="Normal" gltype="GLfloat" expand_vector="true"/>
2999	<function name="Normal3x" template="Normal" gltype="GLfixed" expand_vector="true"/>
3000	<function name="NormalPointer" template="NormalPointer"/>
3001	<function name="TexCoordPointer" template="TexCoordPointer"/>
3002	<function name="VertexPointer" template="VertexPointer"/>
3003
3004	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
3005	<function name="PolygonOffsetx" template="PolygonOffset" gltype="GLfixed"/>
3006
3007	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
3008	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
3009
3010	<function name="TexSubImage2D" template="TexSubImage2D"/>
3011
3012	<function name="BindTexture" template="BindTexture"/>
3013	<function name="DeleteTextures" template="DeleteTextures"/>
3014	<function name="GenTextures" template="GenTextures"/>
3015	<function name="IsTexture" template="IsTexture"/>
3016
3017	<function name="BlendEquationOES" template="BlendEquation"/>
3018	<function name="BlendEquationSeparateOES" template="BlendEquationSeparate"/>
3019
3020	<function name="MultiTexCoord4x" template="MultiTexCoord" gltype="GLfixed" vector_size="4" expand_vector="true"/>
3021
3022	<function name="ActiveTexture" template="ActiveTexture"/>
3023	<function name="ClientActiveTexture" template="ClientActiveTexture"/>
3024
3025	<function name="MultiTexCoord4f" external="true" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3026
3027	<function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
3028	<function name="SampleCoveragex" template="SampleCoverage" gltype="GLclampx"/>
3029
3030	<!-- CompressedTexImage2D calls out to two different functions based on
3031	     whether the image is a paletted image or not -->
3032	<function name="CompressedTexImage2D" template="CompressedTexImage2D"/>
3033	<function name="CompressedTexSubImage2D" template="CompressedTexSubImage2D"/>
3034
3035	<function name="BlendFuncSeparateOES" template="BlendFuncSeparate"/>
3036
3037	<function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
3038	<function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
3039	<function name="PointParameterx" template="PointParameter" gltype="GLfixed" expand_vector="true"/>
3040	<function name="PointParameterxv" template="PointParameter" gltype="GLfixed"/>
3041
3042	<!-- OES_mapbuffer -->
3043	<function name="GetBufferPointervOES" template="GetBufferPointer"/>
3044	<function name="MapBufferOES" template="MapBuffer"/>
3045	<function name="UnmapBufferOES" template="UnmapBuffer"/>
3046
3047	<function name="BindBuffer" template="BindBuffer"/>
3048	<function name="BufferData" template="BufferData"/>
3049	<function name="BufferSubData" template="BufferSubData"/>
3050	<function name="DeleteBuffers" template="DeleteBuffers"/>
3051	<function name="GenBuffers" template="GenBuffers"/>
3052	<function name="GetBufferParameteriv" template="GetBufferParameter" gltype="GLint"/>
3053	<function name="IsBuffer" template="IsBuffer"/>
3054
3055	<!-- OES_framebuffer_object -->
3056	<function name="GenerateMipmapOES" template="GenerateMipmap"/>
3057	<function name="BindFramebufferOES" template="BindFramebuffer"/>
3058	<function name="DeleteFramebuffersOES" template="DeleteFramebuffers"/>
3059	<function name="GenFramebuffersOES" template="GenFramebuffers"/>
3060	<function name="BindRenderbufferOES" template="BindRenderbuffer"/>
3061	<function name="DeleteRenderbuffersOES" template="DeleteRenderbuffers"/>
3062	<function name="GenRenderbuffersOES" template="GenRenderbuffers"/>
3063	<function name="RenderbufferStorageOES" external="true" template="RenderbufferStorage"/>
3064	<function name="FramebufferRenderbufferOES" template="FramebufferRenderbuffer"/>
3065	<function name="FramebufferTexture2DOES" template="FramebufferTexture2D"/>
3066	<function name="CheckFramebufferStatusOES" template="CheckFramebufferStatus"/>
3067	<function name="GetFramebufferAttachmentParameterivOES" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
3068	<function name="GetRenderbufferParameterivOES" template="GetRenderbufferParameter" gltype="GLint"/>
3069	<function name="IsRenderbufferOES" template="IsRenderbuffer"/>
3070	<function name="IsFramebufferOES" template="IsFramebuffer"/>
3071
3072	<!-- OES_query_matrix -->
3073	<!-- QueryMatrixx returns values in an unusual, decomposed, fixed-value
3074	     form; it has its own code for this -->
3075	<function name="QueryMatrixxOES" external="true" template="QueryMatrix" gltype="GLfixed"/>
3076
3077	<!-- OES_draw_texture -->
3078	<function name="DrawTexfOES" template="DrawTex" gltype="GLfloat" expand_vector="true"/>
3079	<function name="DrawTexiOES" template="DrawTex" gltype="GLint" expand_vector="true"/>
3080	<function name="DrawTexsOES" template="DrawTex" gltype="GLshort" expand_vector="true"/>
3081	<function name="DrawTexxOES" template="DrawTex" gltype="GLfixed" expand_vector="true"/>
3082	<function name="DrawTexfvOES" template="DrawTex" gltype="GLfloat"/>
3083	<function name="DrawTexivOES" template="DrawTex" gltype="GLint"/>
3084	<function name="DrawTexsvOES" template="DrawTex" gltype="GLshort"/>
3085	<function name="DrawTexxvOES" template="DrawTex" gltype="GLfixed"/>
3086
3087        <!-- EXT_multi_draw_arrays -->
3088        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
3089        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
3090
3091        <!-- OES_EGL_image -->
3092        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
3093        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
3094</api>
3095
3096<api name="GLES2.0">
3097	<category name="GLES2.0"/>
3098
3099	<category name="OES_compressed_paletted_texture"/>
3100	<category name="OES_compressed_ETC1_RGB8_texture"/>
3101	<category name="OES_depth24"/>
3102	<category name="OES_depth32"/>
3103	<category name="OES_fbo_render_mipmap"/>
3104	<category name="OES_rgb8_rgba8"/>
3105	<category name="OES_stencil1"/>
3106	<category name="OES_stencil4"/>
3107	<category name="OES_element_index_uint"/>
3108	<category name="OES_mapbuffer"/>
3109	<category name="OES_texture_3D"/>
3110	<category name="OES_texture_npot"/>
3111	<category name="EXT_texture_filter_anisotropic"/>
3112	<category name="EXT_texture_type_2_10_10_10_REV"/>
3113	<category name="OES_depth_texture"/>
3114	<category name="OES_packed_depth_stencil"/>
3115	<category name="OES_standard_derivatives"/>
3116	<category name="EXT_texture_format_BGRA8888"/>
3117	<category name="EXT_texture_rg"/>
3118	<category name="EXT_read_format_bgra"/>
3119
3120	<category name="EXT_texture_compression_dxt1"/>
3121	<category name="EXT_blend_minmax"/>
3122	<category name="EXT_multi_draw_arrays"/>
3123	<category name="OES_EGL_image"/>
3124	<category name="OES_EGL_image_external"/>
3125        <category name="EXT_unpack_subimage"/>
3126
3127	<category name="NV_draw_buffers"/>
3128	<category name="NV_read_buffer"/>
3129
3130	<function name="DrawBuffersNV" template="DrawBuffers"/>
3131	<function name="ReadBufferNV" template="ReadBuffer"/> 
3132
3133	<function name="CullFace" template="CullFace"/>
3134
3135	<function name="FrontFace" template="FrontFace"/>
3136	<function name="Hint" template="Hint"/>
3137
3138	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
3139
3140	<function name="Scissor" template="Scissor"/>
3141
3142	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
3143	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
3144	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
3145	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
3146
3147	<function name="TexImage2D" template="TexImage2D"/>
3148
3149	<function name="Clear" template="Clear"/>
3150	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
3151	<function name="ClearStencil" template="ClearStencil"/>
3152	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
3153
3154	<function name="StencilMask" template="StencilMask"/>
3155	<function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
3156	<function name="ColorMask" template="ColorMask"/>
3157	<function name="DepthMask" template="DepthMask"/>
3158	<function name="Disable" template="Disable"/>
3159	<function name="Enable" template="Enable"/>
3160	<function name="Finish" template="Finish"/>
3161	<function name="Flush" template="Flush"/>
3162
3163	<function name="BlendFunc" template="BlendFunc"/>
3164
3165	<function name="StencilFunc" template="StencilFunc"/>
3166	<function name="StencilFuncSeparate" template="StencilFuncSeparate"/>
3167	<function name="StencilOp" template="StencilOp"/>
3168	<function name="StencilOpSeparate" template="StencilOpSeparate"/>
3169
3170	<function name="DepthFunc" template="DepthFunc"/>
3171
3172	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
3173	<function name="ReadPixels" template="ReadPixels"/>
3174
3175	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
3176	<function name="GetError" template="GetError"/>
3177	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
3178	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
3179
3180	<function name="GetString" template="GetString"/>
3181
3182	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
3183	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
3184
3185	<function name="IsEnabled" template="IsEnabled"/>
3186
3187	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
3188
3189	<function name="Viewport" template="Viewport"/>
3190
3191	<function name="DrawArrays" template="DrawArrays"/>
3192	<function name="DrawElements" template="DrawElements"/>
3193
3194	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
3195	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
3196	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
3197	<function name="TexSubImage2D" template="TexSubImage2D"/>
3198
3199	<function name="BindTexture" template="BindTexture"/>
3200	<function name="DeleteTextures" template="DeleteTextures"/>
3201	<function name="GenTextures" template="GenTextures"/>
3202	<function name="IsTexture" template="IsTexture"/>
3203
3204	<function name="BlendColor" template="BlendColor" gltype="GLclampf"/>
3205	<function name="BlendEquation" template="BlendEquation"/>
3206	<function name="BlendEquationSeparate" template="BlendEquationSeparate"/>
3207
3208	<function name="TexImage3DOES" template="TexImage3D"/>
3209	<function name="TexSubImage3DOES" template="TexSubImage3D"/>
3210	<function name="CopyTexSubImage3DOES" template="CopyTexSubImage3D"/>
3211
3212	<function name="CompressedTexImage3DOES" template="CompressedTexImage3D"/>
3213	<function name="CompressedTexSubImage3DOES" template="CompressedTexSubImage3D"/>
3214
3215	<function name="ActiveTexture" template="ActiveTexture"/>
3216
3217	<function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
3218
3219	<function name="CompressedTexImage2D" template="CompressedTexImage2D"/>
3220	<function name="CompressedTexSubImage2D" template="CompressedTexSubImage2D"/>
3221
3222	<function name="BlendFuncSeparate" template="BlendFuncSeparate"/>
3223
3224	<function name="VertexAttrib1f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
3225	<function name="VertexAttrib2f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
3226	<function name="VertexAttrib3f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
3227	<function name="VertexAttrib4f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3228	<function name="VertexAttrib1fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
3229	<function name="VertexAttrib2fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
3230	<function name="VertexAttrib3fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
3231	<function name="VertexAttrib4fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
3232
3233	<function name="VertexAttribPointer" template="VertexAttribPointer"/>
3234
3235	<function name="EnableVertexAttribArray" template="EnableVertexAttribArray"/>
3236	<function name="DisableVertexAttribArray" template="DisableVertexAttribArray"/>
3237
3238	<function name="IsProgram" template="IsProgram"/>
3239	<function name="GetProgramiv" template="GetProgram" gltype="GLint"/>
3240
3241	<function name="GetVertexAttribfv" template="GetVertexAttrib" gltype="GLfloat"/>
3242	<function name="GetVertexAttribiv" template="GetVertexAttrib" gltype="GLint"/>
3243	<function name="GetVertexAttribPointerv" template="GetVertexAttribPointer"/>
3244
3245	<function name="GetBufferPointervOES" template="GetBufferPointer"/>
3246	<function name="MapBufferOES" template="MapBuffer"/>
3247	<function name="UnmapBufferOES" template="UnmapBuffer"/>
3248	<function name="BindBuffer" template="BindBuffer"/>
3249	<function name="BufferData" template="BufferData"/>
3250	<function name="BufferSubData" template="BufferSubData"/>
3251	<function name="DeleteBuffers" template="DeleteBuffers"/>
3252	<function name="GenBuffers" template="GenBuffers"/>
3253	<function name="GetBufferParameteriv" template="GetBufferParameter" gltype="GLint"/>
3254	<function name="IsBuffer" template="IsBuffer"/>
3255
3256	<function name="CreateShader" template="CreateShader"/>
3257	<function name="ShaderSource" template="ShaderSource"/>
3258	<function name="CompileShader" template="CompileShader"/>
3259	<function name="ReleaseShaderCompiler" template="ReleaseShaderCompiler"/>
3260	<function name="DeleteShader" template="DeleteShader"/>
3261	<function name="ShaderBinary" template="ShaderBinary"/>
3262	<function name="CreateProgram" template="CreateProgram"/>
3263	<function name="AttachShader" template="AttachShader"/>
3264	<function name="DetachShader" template="DetachShader"/>
3265	<function name="LinkProgram" template="LinkProgram"/>
3266	<function name="UseProgram" template="UseProgram"/>
3267	<function name="DeleteProgram" template="DeleteProgram"/>
3268
3269	<function name="GetActiveAttrib" template="GetActiveAttrib"/>
3270	<function name="GetAttribLocation" template="GetAttribLocation"/>
3271	<function name="BindAttribLocation" template="BindAttribLocation"/>
3272	<function name="GetUniformLocation" template="GetUniformLocation"/>
3273	<function name="GetActiveUniform" template="GetActiveUniform"/>
3274
3275	<function name="Uniform1f" template="Uniform" gltype="GLfloat" vector_size="1" expand_vector="true"/>
3276	<function name="Uniform2f" template="Uniform" gltype="GLfloat" vector_size="2" expand_vector="true"/>
3277	<function name="Uniform3f" template="Uniform" gltype="GLfloat" vector_size="3" expand_vector="true"/>
3278	<function name="Uniform4f" template="Uniform" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3279	<function name="Uniform1i" template="Uniform" gltype="GLint" vector_size="1" expand_vector="true"/>
3280	<function name="Uniform2i" template="Uniform" gltype="GLint" vector_size="2" expand_vector="true"/>
3281	<function name="Uniform3i" template="Uniform" gltype="GLint" vector_size="3" expand_vector="true"/>
3282	<function name="Uniform4i" template="Uniform" gltype="GLint" vector_size="4" expand_vector="true"/>
3283
3284	<function name="Uniform1fv" template="Uniform" gltype="GLfloat" vector_size="1"/>
3285	<function name="Uniform2fv" template="Uniform" gltype="GLfloat" vector_size="2"/>
3286	<function name="Uniform3fv" template="Uniform" gltype="GLfloat" vector_size="3"/>
3287	<function name="Uniform4fv" template="Uniform" gltype="GLfloat" vector_size="4"/>
3288	<function name="Uniform1iv" template="Uniform" gltype="GLint" vector_size="1"/>
3289	<function name="Uniform2iv" template="Uniform" gltype="GLint" vector_size="2"/>
3290	<function name="Uniform3iv" template="Uniform" gltype="GLint" vector_size="3"/>
3291	<function name="Uniform4iv" template="Uniform" gltype="GLint" vector_size="4"/>
3292
3293	<function name="UniformMatrix2fv" template="UniformMatrix" gltype="GLfloat" vector_size="2"/>
3294	<function name="UniformMatrix3fv" template="UniformMatrix" gltype="GLfloat" vector_size="3"/>
3295	<function name="UniformMatrix4fv" template="UniformMatrix" gltype="GLfloat" vector_size="4"/>
3296
3297	<function name="ValidateProgram" template="ValidateProgram"/>
3298
3299	<function name="GenerateMipmap" template="GenerateMipmap"/>
3300	<function name="BindFramebuffer" template="BindFramebuffer"/>
3301	<function name="DeleteFramebuffers" template="DeleteFramebuffers"/>
3302	<function name="GenFramebuffers" template="GenFramebuffers"/>
3303	<function name="BindRenderbuffer" template="BindRenderbuffer"/>
3304	<function name="DeleteRenderbuffers" template="DeleteRenderbuffers"/>
3305	<function name="GenRenderbuffers" template="GenRenderbuffers"/>
3306	<function name="RenderbufferStorage" external="true" template="RenderbufferStorage"/>
3307	<function name="FramebufferRenderbuffer" template="FramebufferRenderbuffer"/>
3308	<function name="FramebufferTexture2D" template="FramebufferTexture2D"/>
3309	<function name="FramebufferTexture3DOES" template="FramebufferTexture3D"/>
3310	<function name="CheckFramebufferStatus" template="CheckFramebufferStatus"/>
3311	<function name="GetFramebufferAttachmentParameteriv" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
3312	<function name="GetRenderbufferParameteriv" template="GetRenderbufferParameter" gltype="GLint"/>
3313	<function name="IsRenderbuffer" template="IsRenderbuffer"/>
3314	<function name="IsFramebuffer" template="IsFramebuffer"/>
3315
3316	<function name="IsShader" template="IsShader"/>
3317	<function name="GetShaderiv" template="GetShader" gltype="GLint"/>
3318	<function name="GetAttachedShaders" template="GetAttachedShaders"/>
3319	<function name="GetShaderInfoLog" template="GetShaderInfoLog"/>
3320	<function name="GetProgramInfoLog" template="GetProgramInfoLog"/>
3321	<function name="GetShaderSource" template="GetShaderSource"/>
3322	<function name="GetShaderPrecisionFormat" template="GetShaderPrecisionFormat"/>
3323	<function name="GetUniformfv" template="GetUniform" gltype="GLfloat"/>
3324	<function name="GetUniformiv" template="GetUniform" gltype="GLint"/>
3325
3326        <!-- EXT_multi_draw_arrays -->
3327        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
3328        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
3329
3330        <!-- OES_EGL_image -->
3331        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
3332        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
3333</api>
3334
3335</apispec>
3336