APIspec.xml revision c13f36ce4e34821144ca6479e4bc3598b598d855
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</template>
436
437<template name="ClearColor">
438	<proto>
439		<return type="void"/>
440		<param name="red" type="GLtype"/>
441		<param name="green" type="GLtype"/>
442		<param name="blue" type="GLtype"/>
443		<param name="alpha" type="GLtype"/>
444	</proto>
445</template>
446
447<template name="ClearStencil">
448	<proto>
449		<return type="void"/>
450		<param name="s" type="GLint"/>
451	</proto>
452</template>
453
454<template name="ClearDepth">
455	<proto>
456		<return type="void"/>
457		<param name="depth" type="GLtype"/>
458	</proto>
459</template>
460
461<template name="StencilMask">
462	<proto>
463		<return type="void"/>
464		<param name="mask" type="GLuint"/>
465	</proto>
466</template>
467
468<template name="StencilMaskSeparate">
469	<proto>
470		<return type="void"/>
471		<param name="face" type="GLenum"/>
472		<param name="mask" type="GLuint"/>
473	</proto>
474</template>
475
476<template name="ColorMask">
477	<proto>
478		<return type="void"/>
479		<param name="red" type="GLboolean"/>
480		<param name="green" type="GLboolean"/>
481		<param name="blue" type="GLboolean"/>
482		<param name="alpha" type="GLboolean"/>
483	</proto>
484</template>
485
486<template name="DepthMask">
487	<proto>
488		<return type="void"/>
489		<param name="flag" type="GLboolean"/>
490	</proto>
491</template>
492
493<template name="Disable">
494	<proto>
495		<return type="void"/>
496		<param name="cap" type="GLenum"/>
497	</proto>
498
499	<desc name="cap" category="GLES1.1">
500		<value name="GL_NORMALIZE"/>
501		<value name="GL_RESCALE_NORMAL"/>
502
503		<range base="GL_CLIP_PLANE" from="0" to="5"/>
504		<value name="GL_CLIP_PLANE0+6"/>
505		<value name="GL_CLIP_PLANE0+7"/>
506
507		<value name="GL_FOG"/>
508		<value name="GL_LIGHTING"/>
509		<value name="GL_COLOR_MATERIAL"/>
510
511		<range base="GL_LIGHT" from="0" to="7"/>
512
513		<value name="GL_POINT_SMOOTH"/>
514		<value name="GL_LINE_SMOOTH"/>
515		<value name="GL_CULL_FACE"/>
516		<value name="GL_POLYGON_OFFSET_FILL"/>
517		<value name="GL_MULTISAMPLE"/>
518		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
519		<value name="GL_SAMPLE_ALPHA_TO_ONE"/>
520		<value name="GL_SAMPLE_COVERAGE"/>
521		<value name="GL_TEXTURE_2D"/>
522		<value name="GL_SCISSOR_TEST"/>
523		<value name="GL_ALPHA_TEST"/>
524		<value name="GL_STENCIL_TEST"/>
525		<value name="GL_DEPTH_TEST"/>
526		<value name="GL_BLEND"/>
527		<value name="GL_DITHER"/>
528		<value name="GL_COLOR_LOGIC_OP"/>
529
530		<value name="GL_POINT_SPRITE_OES" category="OES_point_sprite"/>
531		<value name="GL_MATRIX_PALETTE_OES" category="OES_matrix_palette"/>
532		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
533		<value name="GL_TEXTURE_GEN_STR_OES" category="OES_texture_cube_map"/>
534		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
535	</desc>
536
537	<desc name="cap" category="GLES2.0">
538		<value name="GL_CULL_FACE"/>
539		<value name="GL_SCISSOR_TEST"/>
540		<value name="GL_POLYGON_OFFSET_FILL"/>
541		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
542		<value name="GL_SAMPLE_COVERAGE"/>
543		<value name="GL_STENCIL_TEST"/>
544		<value name="GL_DEPTH_TEST"/>
545		<value name="GL_DITHER"/>
546		<value name="GL_BLEND"/>
547	</desc>
548</template>
549
550<!-- it is exactly the same as Disable -->
551<template name="Enable">
552	<proto>
553		<return type="void"/>
554		<param name="cap" type="GLenum"/>
555	</proto>
556
557	<desc name="cap" category="GLES1.1">
558		<value name="GL_NORMALIZE"/>
559		<value name="GL_RESCALE_NORMAL"/>
560
561		<range base="GL_CLIP_PLANE" from="0" to="5"/>
562		<value name="GL_CLIP_PLANE0+6"/>
563		<value name="GL_CLIP_PLANE0+7"/>
564
565		<value name="GL_FOG"/>
566		<value name="GL_LIGHTING"/>
567		<value name="GL_COLOR_MATERIAL"/>
568
569		<range base="GL_LIGHT" from="0" to="7"/>
570
571		<value name="GL_POINT_SMOOTH"/>
572		<value name="GL_LINE_SMOOTH"/>
573		<value name="GL_CULL_FACE"/>
574		<value name="GL_POLYGON_OFFSET_FILL"/>
575		<value name="GL_MULTISAMPLE"/>
576		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
577		<value name="GL_SAMPLE_ALPHA_TO_ONE"/>
578		<value name="GL_SAMPLE_COVERAGE"/>
579		<value name="GL_TEXTURE_2D"/>
580		<value name="GL_SCISSOR_TEST"/>
581		<value name="GL_ALPHA_TEST"/>
582		<value name="GL_STENCIL_TEST"/>
583		<value name="GL_DEPTH_TEST"/>
584		<value name="GL_BLEND"/>
585		<value name="GL_DITHER"/>
586		<value name="GL_COLOR_LOGIC_OP"/>
587
588		<value name="GL_POINT_SPRITE_OES" category="OES_point_sprite"/>
589		<value name="GL_MATRIX_PALETTE_OES" category="OES_matrix_palette"/>
590		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
591		<value name="GL_TEXTURE_GEN_STR_OES" category="OES_texture_cube_map"/>
592		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
593	</desc>
594
595	<desc name="cap" category="GLES2.0">
596		<value name="GL_CULL_FACE"/>
597		<value name="GL_SCISSOR_TEST"/>
598		<value name="GL_POLYGON_OFFSET_FILL"/>
599		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
600		<value name="GL_SAMPLE_COVERAGE"/>
601		<value name="GL_STENCIL_TEST"/>
602		<value name="GL_DEPTH_TEST"/>
603		<value name="GL_DITHER"/>
604		<value name="GL_BLEND"/>
605	</desc>
606</template>
607
608<template name="Finish">
609	<proto>
610		<return type="void"/>
611	</proto>
612</template>
613
614<template name="Flush">
615	<proto>
616		<return type="void"/>
617	</proto>
618</template>
619
620<template name="AlphaFunc">
621	<proto>
622		<return type="void"/>
623		<param name="func" type="GLenum"/>
624		<param name="ref" type="GLtype"/>
625	</proto>
626</template>
627
628<template name="BlendFunc">
629	<proto>
630		<return type="void"/>
631		<param name="sfactor" type="GLenum"/>
632		<param name="dfactor" type="GLenum"/>
633	</proto>
634</template>
635
636<template name="LogicOp">
637	<proto>
638		<return type="void"/>
639		<param name="opcode" type="GLenum"/>
640	</proto>
641</template>
642
643<template name="StencilFunc">
644	<proto>
645		<return type="void"/>
646		<param name="func" type="GLenum"/>
647		<param name="ref" type="GLint"/>
648		<param name="mask" type="GLuint"/>
649	</proto>
650</template>
651
652<template name="StencilFuncSeparate">
653	<proto>
654		<return type="void"/>
655		<param name="face" type="GLenum"/>
656		<param name="func" type="GLenum"/>
657		<param name="ref" type="GLint"/>
658		<param name="mask" type="GLuint"/>
659	</proto>
660</template>
661
662<template name="StencilOp">
663	<proto>
664		<return type="void"/>
665		<param name="fail" type="GLenum"/>
666		<param name="zfail" type="GLenum"/>
667		<param name="zpass" type="GLenum"/>
668	</proto>
669</template>
670
671<template name="StencilOpSeparate">
672	<proto>
673		<return type="void"/>
674		<param name="face" type="GLenum"/>
675		<param name="fail" type="GLenum"/>
676		<param name="zfail" type="GLenum"/>
677		<param name="zpass" type="GLenum"/>
678	</proto>
679</template>
680
681<template name="DepthFunc">
682	<proto>
683		<return type="void"/>
684		<param name="func" type="GLenum"/>
685	</proto>
686</template>
687
688<template name="PixelStore">
689	<proto>
690		<return type="void"/>
691		<param name="pname" type="GLenum"/>
692		<param name="param" type="GLtype"/>
693	</proto>
694
695	<desc name="pname">
696		<value name="GL_PACK_ALIGNMENT"/>
697		<desc name="param" error="GL_INVALID_VALUE">
698			<value name="1"/>
699			<value name="2"/>
700			<value name="4"/>
701			<value name="8"/>
702		</desc>
703	</desc>
704
705	<desc name="pname">
706		<value name="GL_UNPACK_ALIGNMENT"/>
707		<desc name="param" error="GL_INVALID_VALUE">
708			<value name="1"/>
709			<value name="2"/>
710			<value name="4"/>
711			<value name="8"/>
712		</desc>
713	</desc>
714
715	<desc name="pname" category="EXT_unpack_subimage">
716		<value name="GL_UNPACK_ROW_LENGTH"/>
717		<value name="GL_UNPACK_SKIP_PIXELS"/>
718		<value name="GL_UNPACK_SKIP_ROWS"/>
719	</desc>
720
721</template>
722
723<template name="ReadPixels" direction="get">
724	<proto>
725		<return type="void"/>
726		<param name="x" type="GLint"/>
727		<param name="y" type="GLint"/>
728		<param name="width" type="GLsizei"/>
729		<param name="height" type="GLsizei"/>
730		<param name="format" type="GLenum"/>
731		<param name="type" type="GLenum"/>
732		<param name="pixels" type="GLvoid *"/>
733	</proto>
734
735	<!-- Technically, only two combinations are actually allowed:
736	     GL_RGBA/GL_UNSIGNED_BYTE, and some implementation-specific
737	     internal preferred combination.  I don't know what that is, so I'm
738	     allowing any valid combination for now; the underlying support
739	     should fail when necessary.-->
740	<desc name="format">
741		<value name="GL_ALPHA"/>
742		<desc name="type" error="GL_INVALID_OPERATION">
743			<value name="GL_UNSIGNED_BYTE"/>
744		</desc>
745	</desc>
746
747	<desc name="format">
748		<value name="GL_RGB"/>
749		<desc name="type" error="GL_INVALID_OPERATION">
750			<value name="GL_UNSIGNED_BYTE"/>
751			<value name="GL_UNSIGNED_SHORT_5_6_5"/>
752		</desc>
753	</desc>
754
755	<desc name="format">
756		<value name="GL_RGBA"/>
757		<desc name="type" error="GL_INVALID_OPERATION">
758			<value name="GL_UNSIGNED_BYTE"/>
759			<value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
760			<value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
761		</desc>
762	</desc>
763
764	<desc name="format">
765		<value name="GL_LUMINANCE"/>
766		<desc name="type" error="GL_INVALID_OPERATION">
767			<value name="GL_UNSIGNED_BYTE"/>
768		</desc>
769	</desc>
770
771	<desc name="format">
772		<value name="GL_LUMINANCE_ALPHA"/>
773		<desc name="type" error="GL_INVALID_OPERATION">
774			<value name="GL_UNSIGNED_BYTE"/>
775		</desc>
776	</desc>
777
778	<desc name="format" category="EXT_read_format_bgra">
779		<value name="GL_BGRA_EXT"/>
780
781		<desc name="type" error="GL_INVALID_OPERATION">
782			<value name="GL_UNSIGNED_BYTE"/>
783			<value name="GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT"/>
784			<value name="GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT"/>
785		</desc>
786	</desc>
787</template>
788
789<template name="GetClipPlane" direction="get">
790	<proto>
791		<return type="void"/>
792		<param name="plane" type="GLenum"/>
793		<vector name="equation" type="GLtype *" size="4"/>
794	</proto>
795</template>
796
797<template name="GetError" direction="get">
798	<proto>
799		<return type="GLenum"/>
800	</proto>
801</template>
802
803<!-- template for GetFloatv, GetIntegerv, GetBoolean, and GetFixedv -->
804<template name="GetState" direction="get">
805	<proto>
806		<return type="void"/>
807		<param name="pname" type="GLenum"/>
808		<vector name="params" type="GLtype *" size="dynamic"/>
809	</proto>
810	<!-- param checking is done in mesa -->
811</template>
812
813<template name="GetLight" direction="get">
814	<proto>
815		<return type="void"/>
816		<param name="light" type="GLenum"/>
817		<param name="pname" type="GLenum"/>
818		<vector name="params" type="GLtype *" size="dynamic"/>
819	</proto>
820</template>
821
822<template name="GetMaterial" direction="get">
823	<proto>
824		<return type="void"/>
825		<param name="face" type="GLenum"/>
826		<param name="pname" type="GLenum"/>
827		<vector name="params" type="GLtype *" size="dynamic">
828			<param name="param" type="GLtype"/>
829		</vector>
830	</proto>
831
832	<desc name="face">
833		<value name="GL_FRONT"/>
834		<value name="GL_BACK"/>
835	</desc>
836
837	<desc name="pname">
838		<value name="GL_SHININESS"/>
839		<desc name="params" vector_size="1"/>
840	</desc>
841
842	<desc name="pname">
843		<value name="GL_AMBIENT"/>
844		<value name="GL_DIFFUSE"/>
845		<value name="GL_AMBIENT_AND_DIFFUSE"/>
846		<value name="GL_SPECULAR"/>
847		<value name="GL_EMISSION"/>
848
849		<desc name="params" vector_size="4"/>
850	</desc>
851</template>
852
853<template name="GetString" direction="get">
854	<proto>
855		<return type="const GLubyte *"/>
856		<param name="name" type="GLenum"/>
857	</proto>
858</template>
859
860<template name="GetTexEnv" direction="get">
861	<proto>
862		<return type="void"/>
863		<param name="target" type="GLenum"/>
864		<param name="pname" type="GLenum"/>
865		<vector name="params" type="GLtype *" size="dynamic"/>
866	</proto>
867
868	<desc name="target" category="OES_point_sprite">
869		<value name="GL_POINT_SPRITE_OES"/>
870		<desc name="pname">
871			<value name="GL_COORD_REPLACE_OES"/>
872		</desc>
873	</desc>
874
875	<desc name="pname" category="OES_point_sprite">
876		<value name="GL_COORD_REPLACE_OES"/>
877		<desc name="params" vector_size="1" convert="false"/>
878	</desc>
879
880	<desc name="target" category="EXT_texture_lod_bias">
881		<value name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
882
883		<desc name="pname">
884			<value name="GL_TEXTURE_LOD_BIAS_EXT"/>
885		</desc>
886	</desc>
887
888	<desc name="pname" category="EXT_texture_lod_bias">
889		<value name="GL_TEXTURE_LOD_BIAS_EXT"/>
890		<desc name="params" vector_size="1"/>
891	</desc>
892
893	<desc name="target">
894		<value name="GL_TEXTURE_ENV"/>
895
896		<desc name="pname">
897			<value name="GL_TEXTURE_ENV_COLOR"/>
898			<value name="GL_RGB_SCALE"/>
899			<value name="GL_ALPHA_SCALE"/>
900			<value name="GL_TEXTURE_ENV_MODE"/>
901			<value name="GL_COMBINE_RGB"/>
902			<value name="GL_COMBINE_ALPHA"/>
903			<value name="GL_SRC0_RGB"/>
904			<value name="GL_SRC1_RGB"/>
905			<value name="GL_SRC2_RGB"/>
906			<value name="GL_SRC0_ALPHA"/>
907			<value name="GL_SRC1_ALPHA"/>
908			<value name="GL_SRC2_ALPHA"/>
909			<value name="GL_OPERAND0_RGB"/>
910			<value name="GL_OPERAND1_RGB"/>
911			<value name="GL_OPERAND2_RGB"/>
912			<value name="GL_OPERAND0_ALPHA"/>
913			<value name="GL_OPERAND1_ALPHA"/>
914			<value name="GL_OPERAND2_ALPHA"/>
915		</desc>
916	</desc>
917
918	<desc name="pname">
919		<value name="GL_TEXTURE_ENV_COLOR"/>
920		<desc name="params" vector_size="4"/>
921	</desc>
922
923	<desc name="pname">
924		<value name="GL_RGB_SCALE"/>
925		<value name="GL_ALPHA_SCALE"/>
926
927		<desc name="params" vector_size="1"/>
928	</desc>
929
930	<desc name="pname">
931		<value name="GL_TEXTURE_ENV_MODE"/>
932		<value name="GL_COMBINE_RGB"/>
933		<value name="GL_COMBINE_ALPHA"/>
934		<value name="GL_SRC0_RGB"/>
935		<value name="GL_SRC1_RGB"/>
936		<value name="GL_SRC2_RGB"/>
937		<value name="GL_SRC0_ALPHA"/>
938		<value name="GL_SRC1_ALPHA"/>
939		<value name="GL_SRC2_ALPHA"/>
940		<value name="GL_OPERAND0_RGB"/>
941		<value name="GL_OPERAND1_RGB"/>
942		<value name="GL_OPERAND2_RGB"/>
943		<value name="GL_OPERAND0_ALPHA"/>
944		<value name="GL_OPERAND1_ALPHA"/>
945		<value name="GL_OPERAND2_ALPHA"/>
946
947		<desc name="params" vector_size="1" convert="false"/>
948	</desc>
949</template>
950
951<template name="GetTexGen" direction="get">
952	<proto>
953		<return type="void"/>
954		<param name="coord" type="GLenum"/>
955		<param name="pname" type="GLenum"/>
956		<vector name="params" type="GLtype *" size="dynamic"/>
957	</proto>
958
959	<desc name="coord">
960		<value name="GL_TEXTURE_GEN_STR_OES"/>
961	</desc>
962	<desc name="pname">
963		<value name="GL_TEXTURE_GEN_MODE_OES"/>
964		<desc name="params" vector_size="1" convert="false"/>
965	</desc>
966</template>
967
968<template name="GetTexParameter" direction="get">
969	<proto>
970		<return type="void"/>
971		<param name="target" type="GLenum"/>
972		<param name="pname" type="GLenum"/>
973		<vector name="params" type="GLtype *" size="dynamic"/>
974	</proto>
975</template>
976
977<template name="IsEnabled" direction="get">
978	<proto>
979		<return type="GLboolean"/>
980		<param name="cap" type="GLenum"/>
981	</proto>
982
983	<desc name="cap" category="GLES1.1">
984		<value name="GL_NORMALIZE"/>
985		<value name="GL_RESCALE_NORMAL"/>
986
987		<range base="GL_CLIP_PLANE" from="0" to="5"/>
988		<value name="GL_CLIP_PLANE0+6"/>
989		<value name="GL_CLIP_PLANE0+7"/>
990
991		<value name="GL_FOG"/>
992		<value name="GL_LIGHTING"/>
993		<value name="GL_COLOR_MATERIAL"/>
994
995		<range base="GL_LIGHT" from="0" to="7"/>
996
997		<value name="GL_POINT_SMOOTH"/>
998		<value name="GL_LINE_SMOOTH"/>
999		<value name="GL_CULL_FACE"/>
1000		<value name="GL_POLYGON_OFFSET_FILL"/>
1001		<value name="GL_MULTISAMPLE"/>
1002		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
1003		<value name="GL_SAMPLE_ALPHA_TO_ONE"/>
1004		<value name="GL_SAMPLE_COVERAGE"/>
1005		<value name="GL_TEXTURE_2D"/>
1006		<value name="GL_SCISSOR_TEST"/>
1007		<value name="GL_ALPHA_TEST"/>
1008		<value name="GL_STENCIL_TEST"/>
1009		<value name="GL_DEPTH_TEST"/>
1010		<value name="GL_BLEND"/>
1011		<value name="GL_DITHER"/>
1012		<value name="GL_COLOR_LOGIC_OP"/>
1013
1014		<value name="GL_POINT_SPRITE_OES" category="OES_point_sprite"/>
1015		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
1016		<value name="GL_TEXTURE_GEN_STR_OES" category="OES_texture_cube_map"/>
1017
1018		<value name="GL_VERTEX_ARRAY"/>
1019		<value name="GL_NORMAL_ARRAY"/>
1020		<value name="GL_COLOR_ARRAY"/>
1021		<value name="GL_TEXTURE_COORD_ARRAY"/>
1022		<value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
1023		<value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
1024		<value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
1025		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
1026	</desc>
1027
1028	<desc name="cap" category="GLES2.0">
1029		<value name="GL_CULL_FACE"/>
1030		<value name="GL_SCISSOR_TEST"/>
1031		<value name="GL_POLYGON_OFFSET_FILL"/>
1032		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
1033		<value name="GL_SAMPLE_COVERAGE"/>
1034		<value name="GL_STENCIL_TEST"/>
1035		<value name="GL_DEPTH_TEST"/>
1036		<value name="GL_DITHER"/>
1037		<value name="GL_BLEND"/>
1038	</desc>
1039</template>
1040
1041<template name="DepthRange">
1042	<proto>
1043		<return type="void"/>
1044		<param name="zNear" type="GLtype"/>
1045		<param name="zFar" type="GLtype"/>
1046	</proto>
1047</template>
1048
1049<template name="Frustum">
1050	<proto>
1051		<return type="void"/>
1052		<param name="left" type="GLtype"/>
1053		<param name="right" type="GLtype"/>
1054		<param name="bottom" type="GLtype"/>
1055		<param name="top" type="GLtype"/>
1056		<param name="zNear" type="GLtype"/>
1057		<param name="zFar" type="GLtype"/>
1058	</proto>
1059</template>
1060
1061<template name="LoadIdentity">
1062	<proto>
1063		<return type="void"/>
1064	</proto>
1065</template>
1066
1067<template name="LoadMatrix">
1068	<proto>
1069		<return type="void"/>
1070		<vector name="m" type="const GLtype *" size="16"/>
1071	</proto>
1072</template>
1073
1074<template name="MatrixMode">
1075	<proto>
1076		<return type="void"/>
1077		<param name="mode" type="GLenum"/>
1078	</proto>
1079
1080	<desc name="mode">
1081		<value name="GL_MODELVIEW"/>
1082		<value name="GL_PROJECTION"/>
1083		<value name="GL_TEXTURE"/>
1084		<value name="GL_MATRIX_PALETTE_OES" category="OES_matrix_palette"/>
1085	</desc>
1086</template>
1087
1088<template name="MultMatrix">
1089	<proto>
1090		<return type="void"/>
1091		<vector name="m" type="const GLtype *" size="16"/>
1092	</proto>
1093</template>
1094
1095<template name="Ortho">
1096	<proto>
1097		<return type="void"/>
1098		<param name="left" type="GLtype"/>
1099		<param name="right" type="GLtype"/>
1100		<param name="bottom" type="GLtype"/>
1101		<param name="top" type="GLtype"/>
1102		<param name="zNear" type="GLtype"/>
1103		<param name="zFar" type="GLtype"/>
1104	</proto>
1105</template>
1106
1107<template name="PopMatrix">
1108	<proto>
1109		<return type="void"/>
1110	</proto>
1111</template>
1112
1113<template name="PushMatrix">
1114	<proto>
1115		<return type="void"/>
1116	</proto>
1117</template>
1118
1119<template name="Rotate">
1120	<proto>
1121		<return type="void"/>
1122		<param name="angle" type="GLtype"/>
1123		<param name="x" type="GLtype"/>
1124		<param name="y" type="GLtype"/>
1125		<param name="z" type="GLtype"/>
1126	</proto>
1127</template>
1128
1129<template name="Scale">
1130	<proto>
1131		<return type="void"/>
1132		<param name="x" type="GLtype"/>
1133		<param name="y" type="GLtype"/>
1134		<param name="z" type="GLtype"/>
1135	</proto>
1136</template>
1137
1138<template name="Translate">
1139	<proto>
1140		<return type="void"/>
1141		<param name="x" type="GLtype"/>
1142		<param name="y" type="GLtype"/>
1143		<param name="z" type="GLtype"/>
1144	</proto>
1145</template>
1146
1147<template name="Viewport">
1148	<proto>
1149		<return type="void"/>
1150		<param name="x" type="GLint"/>
1151		<param name="y" type="GLint"/>
1152		<param name="width" type="GLsizei"/>
1153		<param name="height" type="GLsizei"/>
1154	</proto>
1155</template>
1156
1157<template name="ColorPointer">
1158	<proto>
1159		<return type="void"/>
1160		<param name="size" type="GLint"/>
1161		<param name="type" type="GLenum"/>
1162		<param name="stride" type="GLsizei"/>
1163		<param name="pointer" type="const GLvoid *"/>
1164	</proto>
1165</template>
1166
1167<template name="DisableClientState">
1168	<proto>
1169		<return type="void"/>
1170		<param name="array" type="GLenum"/>
1171	</proto>
1172
1173	<desc name="array">
1174		<value name="GL_VERTEX_ARRAY"/>
1175		<value name="GL_NORMAL_ARRAY"/>
1176		<value name="GL_COLOR_ARRAY"/>
1177		<value name="GL_TEXTURE_COORD_ARRAY"/>
1178		<value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
1179		<value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
1180		<value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
1181	</desc>
1182</template>
1183
1184<template name="DrawArrays">
1185	<proto>
1186		<return type="void"/>
1187		<param name="mode" type="GLenum"/>
1188		<param name="first" type="GLint"/>
1189		<param name="count" type="GLsizei"/>
1190	</proto>
1191</template>
1192
1193<template name="DrawElements">
1194	<proto>
1195		<return type="void"/>
1196		<param name="mode" type="GLenum"/>
1197		<param name="count" type="GLsizei"/>
1198		<param name="type" type="GLenum"/>
1199		<param name="indices" type="const GLvoid *"/>
1200	</proto>
1201</template>
1202
1203<template name="EnableClientState">
1204	<proto>
1205		<return type="void"/>
1206		<param name="array" type="GLenum"/>
1207	</proto>
1208
1209	<desc name="array">
1210		<value name="GL_VERTEX_ARRAY"/>
1211		<value name="GL_NORMAL_ARRAY"/>
1212		<value name="GL_COLOR_ARRAY"/>
1213		<value name="GL_TEXTURE_COORD_ARRAY"/>
1214		<value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
1215		<value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
1216		<value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
1217	</desc>
1218</template>
1219
1220<template name="GetPointer" direction="get">
1221	<proto>
1222		<return type="void"/>
1223		<param name="pname" type="GLenum"/>
1224		<vector name="params" type="GLvoid **" size="dynamic"/>
1225	</proto>
1226
1227	<desc name="pname">
1228		<value name="GL_VERTEX_ARRAY_POINTER"/>
1229		<value name="GL_NORMAL_ARRAY_POINTER"/>
1230		<value name="GL_COLOR_ARRAY_POINTER"/>
1231		<value name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
1232		<value name="GL_MATRIX_INDEX_ARRAY_POINTER_OES" category="OES_matrix_palette"/>
1233		<value name="GL_WEIGHT_ARRAY_POINTER_OES" category="OES_matrix_palette"/>
1234		<value name="GL_POINT_SIZE_ARRAY_POINTER_OES" category="OES_point_size_array"/>
1235	</desc>
1236</template>
1237
1238<template name="Normal">
1239	<proto>
1240		<return type="void"/>
1241		<vector name="v" type="const GLtype *" size="3">
1242			<param name="nx" type="GLtype"/>
1243			<param name="ny" type="GLtype"/>
1244			<param name="nz" type="GLtype"/>
1245		</vector>
1246	</proto>
1247</template>
1248
1249<template name="NormalPointer">
1250	<proto>
1251		<return type="void"/>
1252		<param name="type" type="GLenum"/>
1253		<param name="stride" type="GLsizei"/>
1254		<param name="pointer" type="const GLvoid *"/>
1255	</proto>
1256</template>
1257
1258<template name="TexCoordPointer">
1259	<proto>
1260		<return type="void"/>
1261		<param name="size" type="GLint"/>
1262		<param name="type" type="GLenum"/>
1263		<param name="stride" type="GLsizei"/>
1264		<param name="pointer" type="const GLvoid *"/>
1265	</proto>
1266</template>
1267
1268<template name="VertexPointer">
1269	<proto>
1270		<return type="void"/>
1271		<param name="size" type="GLint"/>
1272		<param name="type" type="GLenum"/>
1273		<param name="stride" type="GLsizei"/>
1274		<param name="pointer" type="const GLvoid *"/>
1275	</proto>
1276</template>
1277
1278<template name="PolygonOffset">
1279	<proto>
1280		<return type="void"/>
1281		<param name="factor" type="GLtype"/>
1282		<param name="units" type="GLtype"/>
1283	</proto>
1284</template>
1285
1286<template name="CopyTexImage2D">
1287	<proto>
1288		<return type="void"/>
1289		<param name="target" type="GLenum"/>
1290		<param name="level" type="GLint"/>
1291		<param name="internalFormat" type="GLenum"/>
1292		<param name="x" type="GLint"/>
1293		<param name="y" type="GLint"/>
1294		<param name="width" type="GLsizei"/>
1295		<param name="height" type="GLsizei"/>
1296		<param name="border" type="GLint"/>
1297	</proto>
1298</template>
1299
1300<template name="CopyTexSubImage2D">
1301	<proto>
1302		<return type="void"/>
1303		<param name="target" type="GLenum"/>
1304		<param name="level" type="GLint"/>
1305		<param name="xoffset" type="GLint"/>
1306		<param name="yoffset" type="GLint"/>
1307		<param name="x" type="GLint"/>
1308		<param name="y" type="GLint"/>
1309		<param name="width" type="GLsizei"/>
1310		<param name="height" type="GLsizei"/>
1311	</proto>
1312</template>
1313
1314<template name="TexSubImage2D">
1315	<proto>
1316		<return type="void"/>
1317		<param name="target" type="GLenum"/>
1318		<param name="level" type="GLint"/>
1319		<param name="xoffset" type="GLint"/>
1320		<param name="yoffset" type="GLint"/>
1321		<param name="width" type="GLsizei"/>
1322		<param name="height" type="GLsizei"/>
1323		<param name="format" type="GLenum"/>
1324		<param name="type" type="GLenum"/>
1325		<param name="pixels" type="const GLvoid *"/>
1326	</proto>
1327</template>
1328
1329<template name="BindTexture">
1330	<proto>
1331		<return type="void"/>
1332		<param name="target" type="GLenum"/>
1333		<param name="texture" type="GLuint"/>
1334	</proto>
1335</template>
1336
1337<template name="DeleteTextures">
1338	<proto>
1339		<return type="void"/>
1340		<param name="n" type="GLsizei"/>
1341		<param name="textures" type="const GLuint *"/>
1342	</proto>
1343</template>
1344
1345<template name="GenTextures" direction="get">
1346	<proto>
1347		<return type="void"/>
1348		<param name="n" type="GLsizei"/>
1349		<param name="textures" type="GLuint *"/>
1350	</proto>
1351</template>
1352
1353<template name="IsTexture" direction="get">
1354	<proto>
1355		<return type="GLboolean"/>
1356		<param name="texture" type="GLuint"/>
1357	</proto>
1358</template>
1359
1360<template name="BlendColor">
1361	<proto>
1362		<return type="void"/>
1363		<param name="red" type="GLtype"/>
1364		<param name="green" type="GLtype"/>
1365		<param name="blue" type="GLtype"/>
1366		<param name="alpha" type="GLtype"/>
1367	</proto>
1368</template>
1369
1370<template name="BlendEquation">
1371	<proto>
1372		<return type="void"/>
1373		<param name="mode" type="GLenum"/>
1374	</proto>
1375</template>
1376
1377<template name="BlendEquationSeparate">
1378	<proto>
1379		<return type="void"/>
1380		<param name="modeRGB" type="GLenum"/>
1381		<param name="modeAlpha" type="GLenum"/>
1382	</proto>
1383</template>
1384
1385<template name="TexImage3D">
1386	<proto>
1387		<return type="void"/>
1388		<param name="target" type="GLenum"/>
1389		<param name="level" type="GLint"/>
1390		<param name="internalFormat" type="GLenum"/>
1391		<param name="width" type="GLsizei"/>
1392		<param name="height" type="GLsizei"/>
1393		<param name="depth" type="GLsizei"/>
1394		<param name="border" type="GLint"/>
1395		<param name="format" type="GLenum"/>
1396		<param name="type" type="GLenum"/>
1397		<param name="pixels" type="const GLvoid *"/>
1398	</proto>
1399
1400</template>
1401
1402<template name="TexSubImage3D">
1403	<proto>
1404		<return type="void"/>
1405		<param name="target" type="GLenum"/>
1406		<param name="level" type="GLint"/>
1407		<param name="xoffset" type="GLint"/>
1408		<param name="yoffset" type="GLint"/>
1409		<param name="zoffset" type="GLint"/>
1410		<param name="width" type="GLsizei"/>
1411		<param name="height" type="GLsizei"/>
1412		<param name="depth" type="GLsizei"/>
1413		<param name="format" type="GLenum"/>
1414		<param name="type" type="GLenum"/>
1415		<param name="pixels" type="const GLvoid *"/>
1416	</proto>
1417</template>
1418
1419<template name="CopyTexSubImage3D">
1420	<proto>
1421		<return type="void"/>
1422		<param name="target" type="GLenum"/>
1423		<param name="level" type="GLint"/>
1424		<param name="xoffset" type="GLint"/>
1425		<param name="yoffset" type="GLint"/>
1426		<param name="zoffset" type="GLint"/>
1427		<param name="x" type="GLint"/>
1428		<param name="y" type="GLint"/>
1429		<param name="width" type="GLsizei"/>
1430		<param name="height" type="GLsizei"/>
1431	</proto>
1432</template>
1433
1434<template name="MultiTexCoord">
1435	<proto>
1436		<return type="void"/>
1437		<param name="texture" type="GLenum"/>
1438		<vector name="v" type="const GLtype *" size="dynamic">
1439			<param name="s" type="GLtype"/>
1440			<param name="t" type="GLtype"/>
1441			<param name="r" type="GLtype"/>
1442			<param name="q" type="GLtype"/>
1443		</vector>
1444	</proto>
1445</template>
1446
1447<template name="CompressedTexImage3D">
1448	<proto>
1449		<return type="void"/>
1450		<param name="target" type="GLenum"/>
1451		<param name="level" type="GLint"/>
1452		<param name="internalFormat" type="GLenum"/>
1453		<param name="width" type="GLsizei"/>
1454		<param name="height" type="GLsizei"/>
1455		<param name="depth" type="GLsizei"/>
1456		<param name="border" type="GLint"/>
1457		<param name="imagesize" type="GLsizei"/>
1458		<param name="data" type="const GLvoid *"/>
1459	</proto>
1460</template>
1461
1462<template name="CompressedTexSubImage3D">
1463	<proto>
1464		<return type="void"/>
1465		<param name="target" type="GLenum"/>
1466		<param name="level" type="GLint"/>
1467		<param name="xoffset" type="GLint"/>
1468		<param name="yoffset" type="GLint"/>
1469		<param name="zoffset" type="GLint"/>
1470		<param name="width" type="GLsizei"/>
1471		<param name="height" type="GLsizei"/>
1472		<param name="depth" type="GLsizei"/>
1473		<param name="format" type="GLenum"/>
1474		<param name="imagesize" type="GLsizei"/>
1475		<param name="data" type="const GLvoid *"/>
1476	</proto>
1477</template>
1478
1479<template name="ActiveTexture">
1480	<proto>
1481		<return type="void"/>
1482		<param name="texture" type="GLenum"/>
1483	</proto>
1484</template>
1485
1486<template name="ClientActiveTexture">
1487	<proto>
1488		<return type="void"/>
1489		<param name="texture" type="GLenum"/>
1490	</proto>
1491</template>
1492
1493<template name="SampleCoverage">
1494	<proto>
1495		<return type="void"/>
1496		<param name="value" type="GLtype"/>
1497		<param name="invert" type="GLboolean"/>
1498	</proto>
1499</template>
1500
1501<template name="CompressedTexImage2D">
1502	<proto>
1503		<return type="void"/>
1504		<param name="target" type="GLenum"/>
1505		<param name="level" type="GLint"/>
1506		<param name="internalFormat" type="GLenum"/>
1507		<param name="width" type="GLsizei"/>
1508		<param name="height" type="GLsizei"/>
1509		<param name="border" type="GLint"/>
1510		<param name="imageSize" type="GLsizei"/>
1511		<param name="data" type="const GLvoid *"/>
1512	</proto>
1513</template>
1514
1515<template name="CompressedTexSubImage2D">
1516	<proto>
1517		<return type="void"/>
1518		<param name="target" type="GLenum"/>
1519		<param name="level" type="GLint"/>
1520		<param name="xoffset" type="GLint"/>
1521		<param name="yoffset" type="GLint"/>
1522		<param name="width" type="GLsizei"/>
1523		<param name="height" type="GLsizei"/>
1524		<param name="format" type="GLenum"/>
1525		<param name="imageSize" type="GLsizei"/>
1526		<param name="data" type="const GLvoid *"/>
1527	</proto>
1528</template>
1529
1530<template name="BlendFuncSeparate">
1531	<proto>
1532		<return type="void"/>
1533		<param name="srcRGB" type="GLenum"/>
1534		<param name="dstRGB" type="GLenum"/>
1535		<param name="srcAlpha" type="GLenum"/>
1536		<param name="dstAlpha" type="GLenum"/>
1537	</proto>
1538</template>
1539
1540<template name="PointParameter">
1541	<proto>
1542		<return type="void"/>
1543		<param name="pname" type="GLenum"/>
1544		<vector name="params" type="const GLtype *" size="dynamic">
1545			<param name="param" type="GLtype"/>
1546		</vector>
1547	</proto>
1548
1549	<desc name="pname">
1550		<value name="GL_POINT_SIZE_MIN"/>
1551		<value name="GL_POINT_SIZE_MAX"/>
1552		<value name="GL_POINT_FADE_THRESHOLD_SIZE"/>
1553
1554		<desc name="params" vector_size="1"/>
1555	</desc>
1556
1557	<desc name="pname">
1558		<value name="GL_POINT_DISTANCE_ATTENUATION"/>
1559		<desc name="params" vector_size="3"/>
1560	</desc>
1561</template>
1562
1563<template name="VertexAttrib">
1564	<proto>
1565		<return type="void"/>
1566		<param name="index" type="GLuint"/>
1567		<vector name="v" type="const GLtype *" size="dynamic">
1568			<param name="x" type="GLtype"/>
1569			<param name="y" type="GLtype"/>
1570			<param name="z" type="GLtype"/>
1571			<param name="w" type="GLtype"/>
1572		</vector>
1573	</proto>
1574</template>
1575
1576<template name="VertexAttribPointer">
1577	<proto>
1578		<return type="void"/>
1579		<param name="index" type="GLuint"/>
1580		<param name="size" type="GLint"/>
1581		<param name="type" type="GLenum"/>
1582		<param name="normalized" type="GLboolean"/>
1583		<param name="stride" type="GLsizei"/>
1584		<param name="pointer" type="const GLvoid *"/>
1585	</proto>
1586</template>
1587
1588<template name="EnableVertexAttribArray">
1589	<proto>
1590		<return type="void"/>
1591		<param name="index" type="GLuint"/>
1592	</proto>
1593</template>
1594
1595<template name="DisableVertexAttribArray">
1596	<proto>
1597		<return type="void"/>
1598		<param name="index" type="GLuint"/>
1599	</proto>
1600</template>
1601
1602<template name="IsProgram" direction="get">
1603	<proto>
1604		<return type="GLboolean"/>
1605		<param name="program" type="GLuint"/>
1606	</proto>
1607</template>
1608
1609<template name="GetProgram" direction="get">
1610	<proto>
1611		<return type="void"/>
1612		<param name="program" type="GLuint"/>
1613		<param name="pname" type="GLenum"/>
1614		<vector name="params" type="GLtype *" size="dynamic"/>
1615	</proto>
1616</template>
1617
1618<template name="GetVertexAttrib" direction="get">
1619	<proto>
1620		<return type="void"/>
1621		<param name="index" type="GLuint"/>
1622		<param name="pname" type="GLenum"/>
1623		<vector name="params" type="GLtype *" size="dynamic"/>
1624	</proto>
1625
1626	<desc name="pname">
1627		<value name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
1628		<value name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
1629		<value name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
1630		<value name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
1631		<value name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
1632		<value name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
1633
1634		<desc name="params" vector_size="1" convert="false"/>
1635	</desc>
1636
1637	<desc name="pname">
1638		<value name="GL_CURRENT_VERTEX_ATTRIB"/>
1639		<desc name="params" vector_size="16?" convert="false"/>
1640	</desc>
1641</template>
1642
1643<template name="GetVertexAttribPointer" direction="get">
1644	<proto>
1645		<return type="void"/>
1646		<param name="index" type="GLuint"/>
1647		<param name="pname" type="GLenum"/>
1648		<vector name="pointer" type="GLvoid **" size="dynamic"/>
1649	</proto>
1650</template>
1651
1652<template name="GetBufferPointer" direction="get">
1653	<proto>
1654		<return type="void"/>
1655		<param name="target" type="GLenum"/>
1656		<param name="pname" type="GLenum"/>
1657		<vector name="params" type="GLvoid **" size="dynamic"/>
1658	</proto>
1659</template>
1660
1661<template name="MapBuffer" direction="get">
1662	<proto>
1663		<return type="void *"/>
1664		<param name="target" type="GLenum"/>
1665		<param name="access" type="GLenum"/>
1666	</proto>
1667</template>
1668
1669<template name="UnmapBuffer" direction="get">
1670	<proto>
1671		<return type="GLboolean"/>
1672		<param name="target" type="GLenum"/>
1673	</proto>
1674</template>
1675
1676<template name="BindBuffer">
1677	<proto>
1678		<return type="void"/>
1679		<param name="target" type="GLenum"/>
1680		<param name="buffer" type="GLuint"/>
1681	</proto>
1682</template>
1683
1684<template name="BufferData">
1685	<proto>
1686		<return type="void"/>
1687		<param name="target" type="GLenum"/>
1688		<param name="size" type="GLsizeiptr"/>
1689		<param name="data" type="const GLvoid *"/>
1690		<param name="usage" type="GLenum"/>
1691	</proto>
1692</template>
1693
1694<template name="BufferSubData">
1695	<proto>
1696		<return type="void"/>
1697		<param name="target" type="GLenum"/>
1698		<param name="offset" type="GLintptr"/>
1699		<param name="size" type="GLsizeiptr"/>
1700		<param name="data" type="const GLvoid *"/>
1701	</proto>
1702</template>
1703
1704<template name="DeleteBuffers">
1705	<proto>
1706		<return type="void"/>
1707		<param name="n" type="GLsizei"/>
1708		<param name="buffer" type="const GLuint *"/>
1709	</proto>
1710</template>
1711
1712<template name="GenBuffers" direction="get">
1713	<proto>
1714		<return type="void"/>
1715		<param name="n" type="GLsizei"/>
1716		<param name="buffer" type="GLuint *"/>
1717	</proto>
1718</template>
1719
1720<template name="GetBufferParameter" direction="get">
1721	<proto>
1722		<return type="void"/>
1723		<param name="target" type="GLenum"/>
1724		<param name="pname" type="GLenum"/>
1725		<vector name="params" type="GLtype *" size="dynamic"/>
1726	</proto>
1727</template>
1728
1729<template name="IsBuffer" direction="get">
1730	<proto>
1731		<return type="GLboolean"/>
1732		<param name="buffer" type="GLuint"/>
1733	</proto>
1734</template>
1735
1736<template name="CreateShader">
1737	<proto>
1738		<return type="GLuint"/>
1739		<param name="type" type="GLenum"/>
1740	</proto>
1741</template>
1742
1743<template name="ShaderSource">
1744	<proto>
1745		<return type="void"/>
1746		<param name="shader" type="GLuint"/>
1747		<param name="count" type="GLsizei"/>
1748		<param name="string" type="const GLchar * const *"/>
1749		<param name="length" type="const int *"/>
1750	</proto>
1751</template>
1752
1753<template name="CompileShader">
1754	<proto>
1755		<return type="void"/>
1756		<param name="shader" type="GLuint"/>
1757	</proto>
1758</template>
1759
1760<template name="ReleaseShaderCompiler">
1761	<proto>
1762		<return type="void"/>
1763	</proto>
1764</template>
1765
1766<template name="DeleteShader">
1767	<proto>
1768		<return type="void"/>
1769		<param name="shader" type="GLuint"/>
1770	</proto>
1771</template>
1772
1773<template name="ShaderBinary">
1774	<proto>
1775		<return type="void"/>
1776		<param name="n" type="GLsizei"/>
1777		<param name="shaders" type="const GLuint *"/>
1778		<param name="binaryformat" type="GLenum"/>
1779		<param name="binary" type="const GLvoid *"/>
1780		<param name="length" type="GLsizei"/>
1781	</proto>
1782</template>
1783
1784<template name="CreateProgram">
1785	<proto>
1786		<return type="GLuint"/>
1787	</proto>
1788</template>
1789
1790<template name="AttachShader">
1791	<proto>
1792		<return type="void"/>
1793		<param name="program" type="GLuint"/>
1794		<param name="shader" type="GLuint"/>
1795	</proto>
1796</template>
1797
1798<template name="DetachShader">
1799	<proto>
1800		<return type="void"/>
1801		<param name="program" type="GLuint"/>
1802		<param name="shader" type="GLuint"/>
1803	</proto>
1804</template>
1805
1806<template name="LinkProgram">
1807	<proto>
1808		<return type="void"/>
1809		<param name="program" type="GLuint"/>
1810	</proto>
1811</template>
1812
1813<template name="UseProgram">
1814	<proto>
1815		<return type="void"/>
1816		<param name="program" type="GLuint"/>
1817	</proto>
1818</template>
1819
1820<template name="DeleteProgram">
1821	<proto>
1822		<return type="void"/>
1823		<param name="program" type="GLuint"/>
1824	</proto>
1825</template>
1826
1827<template name="GetActiveAttrib" direction="get">
1828	<proto>
1829		<return type="void"/>
1830		<param name="program" type="GLuint"/>
1831		<param name="index" type="GLuint"/>
1832		<param name="bufSize" type="GLsizei"/>
1833		<param name="length" type="GLsizei *"/>
1834		<param name="size" type="GLint *"/>
1835		<param name="type" type="GLenum *"/>
1836		<param name="name" type="GLchar *"/>
1837	</proto>
1838</template>
1839
1840<template name="GetAttribLocation" direction="get">
1841	<proto>
1842		<return type="GLint"/>
1843		<param name="program" type="GLuint"/>
1844		<param name="name" type="const char *"/>
1845	</proto>
1846</template>
1847
1848<template name="BindAttribLocation">
1849	<proto>
1850		<return type="void"/>
1851		<param name="program" type="GLuint"/>
1852		<param name="index" type="GLuint"/>
1853		<param name="name" type="const char *"/>
1854	</proto>
1855</template>
1856
1857<template name="GetUniformLocation" direction="get">
1858	<proto>
1859		<return type="GLint"/>
1860		<param name="program" type="GLuint"/>
1861		<param name="name" type="const char *"/>
1862	</proto>
1863</template>
1864
1865<template name="GetActiveUniform" direction="get">
1866	<proto>
1867		<return type="void"/>
1868		<param name="program" type="GLuint"/>
1869		<param name="index" type="GLuint"/>
1870		<param name="bufSize" type="GLsizei"/>
1871		<param name="length" type="GLsizei *"/>
1872		<param name="size" type="GLint *"/>
1873		<param name="type" type="GLenum *"/>
1874		<param name="name" type="GLchar *"/>
1875	</proto>
1876</template>
1877
1878<template name="Uniform">
1879	<proto>
1880		<return type="void"/>
1881		<param name="location" type="GLint"/>
1882		<param name="count" type="GLsizei" hide_if_expanded="true"/>
1883		<vector name="values" type="const GLtype *" size="dynamic">
1884			<param name="v0" type="GLtype"/>
1885			<param name="v1" type="GLtype"/>
1886			<param name="v2" type="GLtype"/>
1887			<param name="v3" type="GLtype"/>
1888		</vector>
1889	</proto>
1890</template>
1891
1892<template name="UniformMatrix">
1893	<proto>
1894		<return type="void"/>
1895		<param name="location" type="GLint"/>
1896		<param name="count" type="GLsizei"/>
1897		<param name="transpose" type="GLboolean"/>
1898		<vector name="value" type="const GLtype *" size="dynamic"/>
1899	</proto>
1900</template>
1901
1902<template name="ValidateProgram">
1903	<proto>
1904		<return type="void"/>
1905		<param name="program" type="GLuint"/>
1906	</proto>
1907</template>
1908
1909<template name="GenerateMipmap">
1910	<proto>
1911		<return type="void"/>
1912		<param name="target" type="GLenum"/>
1913	</proto>
1914</template>
1915
1916<template name="BindFramebuffer">
1917	<proto>
1918		<return type="void"/>
1919		<param name="target" type="GLenum"/>
1920		<param name="framebuffer" type="GLuint"/>
1921	</proto>
1922</template>
1923
1924<template name="DeleteFramebuffers">
1925	<proto>
1926		<return type="void"/>
1927		<param name="n" type="GLsizei"/>
1928		<param name="framebuffers" type="const GLuint *"/>
1929	</proto>
1930</template>
1931
1932<template name="GenFramebuffers">
1933	<proto>
1934		<return type="void"/>
1935		<param name="n" type="GLsizei"/>
1936		<param name="ids" type="GLuint *"/>
1937	</proto>
1938</template>
1939
1940<template name="BindRenderbuffer">
1941	<proto>
1942		<return type="void"/>
1943		<param name="target" type="GLenum"/>
1944		<param name="renderbuffer" type="GLuint"/>
1945	</proto>
1946</template>
1947
1948<template name="DeleteRenderbuffers">
1949	<proto>
1950		<return type="void"/>
1951		<param name="n" type="GLsizei"/>
1952		<param name="renderbuffers" type="const GLuint *"/>
1953	</proto>
1954</template>
1955
1956<template name="GenRenderbuffers">
1957	<proto>
1958		<return type="void"/>
1959		<param name="n" type="GLsizei"/>
1960		<param name="renderbuffers" type="GLuint *"/>
1961	</proto>
1962</template>
1963
1964<template name="RenderbufferStorage">
1965	<proto>
1966		<return type="void"/>
1967		<param name="target" type="GLenum"/>
1968		<param name="internalFormat" type="GLenum"/>
1969		<param name="width" type="GLsizei"/>
1970		<param name="height" type="GLsizei"/>
1971	</proto>
1972</template>
1973
1974<template name="FramebufferRenderbuffer">
1975	<proto>
1976		<return type="void"/>
1977		<param name="target" type="GLenum"/>
1978		<param name="attachment" type="GLenum"/>
1979		<param name="renderbuffertarget" type="GLenum"/>
1980		<param name="renderbuffer" type="GLuint"/>
1981	</proto>
1982</template>
1983
1984<template name="FramebufferTexture2D">
1985	<proto>
1986		<return type="void"/>
1987		<param name="target" type="GLenum"/>
1988		<param name="attachment" type="GLenum"/>
1989		<param name="textarget" type="GLenum"/>
1990		<param name="texture" type="GLuint"/>
1991		<param name="level" type="GLint"/>
1992	</proto>
1993	<!-- According to the base specification, "level" must be 0.  But
1994	     extension GL_OES_fbo_render_mipmap lifts that restriction,
1995	     so no restriction is placed here. -->
1996</template>
1997
1998<template name="FramebufferTexture3D">
1999	<proto>
2000		<return type="void"/>
2001		<param name="target" type="GLenum"/>
2002		<param name="attachment" type="GLenum"/>
2003		<param name="textarget" type="GLenum"/>
2004		<param name="texture" type="GLuint"/>
2005		<param name="level" type="GLint"/>
2006		<param name="zoffset" type="GLint"/>
2007	</proto>
2008</template>
2009
2010<template name="CheckFramebufferStatus" direction="get">
2011	<proto>
2012		<return type="GLenum"/>
2013		<param name="target" type="GLenum"/>
2014	</proto>
2015</template>
2016
2017<template name="GetFramebufferAttachmentParameter" direction="get">
2018	<proto>
2019		<return type="void"/>
2020		<param name="target" type="GLenum"/>
2021		<param name="attachment" type="GLenum"/>
2022		<param name="pname" type="GLenum"/>
2023		<vector name="params" type="GLtype *" size="dynamic"/>
2024	</proto>
2025</template>
2026
2027<template name="GetRenderbufferParameter" direction="get">
2028	<proto>
2029		<return type="void"/>
2030		<param name="target" type="GLenum"/>
2031		<param name="pname" type="GLenum"/>
2032		<vector name="params" type="GLtype *" size="dynamic"/>
2033	</proto>
2034</template>
2035
2036<template name="IsRenderbuffer" direction="get">
2037	<proto>
2038		<return type="GLboolean"/>
2039		<param name="renderbuffer" type="GLuint"/>
2040	</proto>
2041</template>
2042
2043<template name="IsFramebuffer" direction="get">
2044	<proto>
2045		<return type="GLboolean"/>
2046		<param name="framebuffer" type="GLuint"/>
2047	</proto>
2048</template>
2049
2050<template name="IsShader" direction="get">
2051	<proto>
2052		<return type="GLboolean"/>
2053		<param name="shader" type="GLuint"/>
2054	</proto>
2055</template>
2056
2057<template name="GetShader" direction="get">
2058	<proto>
2059		<return type="void"/>
2060		<param name="shader" type="GLuint"/>
2061		<param name="pname" type="GLenum"/>
2062		<vector name="params" type="GLtype *" size="dynamic"/>
2063	</proto>
2064</template>
2065
2066<template name="GetAttachedShaders" direction="get">
2067	<proto>
2068		<return type="void"/>
2069		<param name="program" type="GLuint"/>
2070		<param name="maxCount" type="GLsizei"/>
2071		<param name="count" type="GLsizei *"/>
2072		<param name="shaders" type="GLuint *"/>
2073	</proto>
2074</template>
2075
2076<template name="GetShaderInfoLog" direction="get">
2077	<proto>
2078		<return type="void"/>
2079		<param name="shader" type="GLuint"/>
2080		<param name="bufSize" type="GLsizei"/>
2081		<param name="length" type="GLsizei *"/>
2082		<param name="infoLog" type="GLchar *"/>
2083	</proto>
2084</template>
2085
2086<template name="GetProgramInfoLog" direction="get">
2087	<proto>
2088		<return type="void"/>
2089		<param name="program" type="GLuint"/>
2090		<param name="bufSize" type="GLsizei"/>
2091		<param name="length" type="GLsizei *"/>
2092		<param name="infoLog" type="GLchar *"/>
2093	</proto>
2094</template>
2095
2096<template name="GetShaderSource" direction="get">
2097	<proto>
2098		<return type="void"/>
2099		<param name="shader" type="GLuint"/>
2100		<param name="bufSize" type="GLsizei"/>
2101		<param name="length" type="GLsizei *"/>
2102		<param name="source" type="GLchar *"/>
2103	</proto>
2104</template>
2105
2106<template name="GetShaderPrecisionFormat" direction="get">
2107	<proto>
2108		<return type="void"/>
2109		<param name="shadertype" type="GLenum"/>
2110		<param name="precisiontype" type="GLenum"/>
2111		<param name="range" type="GLint *"/>
2112		<param name="precision" type="GLint *"/>
2113	</proto>
2114</template>
2115
2116<template name="GetUniform" direction="get">
2117	<proto>
2118		<return type="void"/>
2119		<param name="program" type="GLuint"/>
2120		<param name="location" type="GLint"/>
2121		<vector name="params" type="GLtype *" size="dynamic"/>
2122	</proto>
2123</template>
2124
2125<template name="QueryMatrix" direction="get">
2126	<proto>
2127		<return type="GLbitfield"/>
2128		<vector name="mantissa" type="GLtype *" size="16"/>
2129		<vector name="exponent" type="GLint *" size="16"/>
2130	</proto>
2131</template>
2132
2133<template name="DrawTex">
2134	<proto>
2135		<return type="void"/>
2136		<vector name="coords" type="const GLtype *" size="5">
2137			<param name="x" type="GLtype"/>
2138			<param name="y" type="GLtype"/>
2139			<param name="z" type="GLtype"/>
2140			<param name="w" type="GLtype"/>
2141			<param name="h" type="GLtype"/>
2142		</vector>
2143	</proto>
2144</template>
2145
2146<template name="MultiDrawArrays">
2147	<proto>
2148		<return type="void"/>
2149		<param name="mode" type="GLenum"/>
2150		<param name="first" type="const GLint *"/>
2151		<param name="count" type="const GLsizei *"/>
2152		<param name="primcount" type="GLsizei"/>
2153	</proto>
2154</template>
2155
2156<template name="MultiDrawElements">
2157	<proto>
2158		<return type="void"/>
2159		<param name="mode" type="GLenum"/>
2160		<param name="count" type="const GLsizei *"/>
2161		<param name="type" type="GLenum"/>
2162		<param name="indices" type="const GLvoid **"/>
2163		<param name="primcount" type="GLsizei"/>
2164	</proto>
2165</template>
2166
2167<template name="EGLImageTargetTexture2D">
2168	<proto>
2169		<return type="void"/>
2170		<param name="target" type="GLenum"/>
2171		<param name="image" type="GLeglImageOES"/>
2172	</proto>
2173</template>
2174
2175<template name="EGLImageTargetRenderbufferStorage">
2176	<proto>
2177		<return type="void"/>
2178		<param name="target" type="GLenum"/>
2179		<param name="image" type="GLeglImageOES"/>
2180	</proto>
2181</template>
2182
2183<template name="DrawBuffers">
2184	<proto>
2185		<return type="void"/>
2186		<param name="n" type="GLsizei"/>
2187		<param name="bufs" type="const GLenum *"/>
2188	</proto>
2189</template>
2190
2191<template name="ReadBuffer">
2192	<proto>
2193		<return type="void"/>
2194		<param name="mode" type="GLenum"/>
2195	</proto>
2196</template>
2197
2198<api name="mesa" implementation="true">
2199	<category name="MESA"/>
2200
2201	<function name="Color4f"  default_prefix="_es_" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2202	<function name="ClipPlane" template="ClipPlane" gltype="GLdouble"/>
2203	<function name="CullFace" template="CullFace"/>
2204
2205	<function name="Fogf" template="Fog" gltype="GLfloat" expand_vector="true"/>
2206	<function name="Fogfv" template="Fog" gltype="GLfloat"/>
2207
2208	<function name="FrontFace" template="FrontFace"/>
2209	<function name="Hint" template="Hint"/>
2210
2211	<function name="Lightf" template="Light" gltype="GLfloat" expand_vector="true"/>
2212	<function name="Lightfv" template="Light" gltype="GLfloat"/>
2213
2214	<function name="LightModelf" template="LightModel" gltype="GLfloat" expand_vector="true"/>
2215	<function name="LightModelfv" template="LightModel" gltype="GLfloat"/>
2216
2217	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
2218
2219	<function name="Materialf" default_prefix="_es_" template="Material" gltype="GLfloat" expand_vector="true"/>
2220	<function name="Materialfv" default_prefix="_es_" template="Material" gltype="GLfloat"/>
2221
2222	<function name="PointSize" template="PointSize" gltype="GLfloat"/>
2223	<function name="PointSizePointer" template="PointSizePointer"/>
2224
2225	<function name="Scissor" template="Scissor"/>
2226	<function name="ShadeModel" template="ShadeModel"/>
2227
2228	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
2229	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
2230	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
2231	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
2232
2233	<function name="TexImage2D" template="TexImage2D"/>
2234
2235	<function name="TexEnvf" template="TexEnv" gltype="GLfloat" expand_vector="true"/>
2236	<function name="TexEnvi" template="TexEnv" gltype="GLint" expand_vector="true"/>
2237	<function name="TexEnvfv" template="TexEnv" gltype="GLfloat"/>
2238	<function name="TexEnviv" template="TexEnv" gltype="GLint"/>
2239
2240	<function name="TexGenf" template="TexGen" gltype="GLfloat" expand_vector="true"/>
2241	<function name="TexGenfv" template="TexGen" gltype="GLfloat"/>
2242
2243	<function name="Clear" template="Clear"/>
2244	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
2245	<function name="ClearStencil" template="ClearStencil"/>
2246	<function name="ClearDepth" template="ClearDepth" gltype="GLclampd"/>
2247	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
2248
2249	<function name="StencilMask" template="StencilMask"/>
2250	<function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
2251	<function name="ColorMask" template="ColorMask"/>
2252	<function name="DepthMask" template="DepthMask"/>
2253	<function name="Disable" template="Disable"/>
2254	<function name="Enable" template="Enable"/>
2255	<function name="Finish" template="Finish"/>
2256	<function name="Flush" template="Flush"/>
2257
2258	<function name="AlphaFunc" template="AlphaFunc" gltype="GLclampf"/>
2259
2260	<function name="BlendFunc" template="BlendFunc"/>
2261	<function name="LogicOp" template="LogicOp"/>
2262	<function name="StencilFunc" template="StencilFunc"/>
2263	<function name="StencilFuncSeparate" template="StencilFuncSeparate"/>
2264	<function name="StencilOp" template="StencilOp"/>
2265	<function name="StencilOpSeparate" template="StencilOpSeparate"/>
2266	<function name="DepthFunc" template="DepthFunc"/>
2267	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
2268
2269	<function name="ReadPixels" template="ReadPixels"/>
2270	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
2271	<function name="GetClipPlane" template="GetClipPlane" gltype="GLdouble"/>
2272	<function name="GetError" template="GetError"/>
2273	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
2274	<function name="GetFixedv" template="GetState" gltype="GLfixed"/>
2275	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
2276
2277	<function name="GetLightfv" template="GetLight" gltype="GLfloat"/>
2278	<function name="GetMaterialfv" template="GetMaterial" gltype="GLfloat"/>
2279	<function name="GetMaterialiv" template="GetMaterial" gltype="GLint"/>
2280
2281	<function name="GetString" template="GetString"/>
2282
2283	<function name="GetTexEnvfv" template="GetTexEnv" gltype="GLfloat"/>
2284	<function name="GetTexEnviv" template="GetTexEnv" gltype="GLint"/>
2285	<function name="GetTexGenfv" template="GetTexGen" gltype="GLfloat"/>
2286	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
2287	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
2288
2289	<function name="IsEnabled" template="IsEnabled"/>
2290
2291	<function name="DepthRange" template="DepthRange" gltype="GLclampd"/>
2292	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
2293	<function name="Frustum" template="Frustum" gltype="GLdouble"/>
2294
2295	<function name="LoadIdentity" template="LoadIdentity"/>
2296	<function name="LoadMatrixf" template="LoadMatrix" gltype="GLfloat"/>
2297	<function name="MatrixMode" template="MatrixMode"/>
2298
2299	<function name="MultMatrixf" template="MultMatrix" gltype="GLfloat"/>
2300	<function name="Ortho" template="Ortho" gltype="GLdouble"/>
2301	<function name="PopMatrix" template="PopMatrix"/>
2302	<function name="PushMatrix" template="PushMatrix"/>
2303
2304	<function name="Rotatef" template="Rotate" gltype="GLfloat"/>
2305	<function name="Scalef" template="Scale" gltype="GLfloat"/>
2306	<function name="Translatef" template="Translate" gltype="GLfloat"/>
2307
2308	<function name="Viewport" template="Viewport"/>
2309
2310	<function name="ColorPointer" template="ColorPointer"/>
2311	<function name="DisableClientState" template="DisableClientState"/>
2312	<function name="DrawArrays" template="DrawArrays"/>
2313	<function name="DrawElements" template="DrawElements"/>
2314	<function name="EnableClientState" template="EnableClientState"/>
2315
2316	<function name="GetPointerv" template="GetPointer"/>
2317	<function name="Normal3f" default_prefix="_es_" template="Normal" gltype="GLfloat" expand_vector="true"/>
2318	<function name="NormalPointer" template="NormalPointer"/>
2319	<function name="TexCoordPointer" template="TexCoordPointer"/>
2320	<function name="VertexPointer" template="VertexPointer"/>
2321
2322	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
2323	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
2324	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
2325	<function name="TexSubImage2D" template="TexSubImage2D"/>
2326
2327	<function name="BindTexture" template="BindTexture"/>
2328	<function name="DeleteTextures" template="DeleteTextures"/>
2329	<function name="GenTextures" template="GenTextures"/>
2330	<function name="IsTexture" template="IsTexture"/>
2331
2332	<function name="BlendColor" template="BlendColor" gltype="GLclampf"/>
2333	<function name="BlendEquation" template="BlendEquation"/>
2334	<function name="BlendEquationSeparateEXT" template="BlendEquationSeparate"/>
2335
2336	<function name="TexImage3D" template="TexImage3D"/>
2337	<function name="TexSubImage3D" template="TexSubImage3D"/>
2338	<function name="CopyTexSubImage3D" template="CopyTexSubImage3D"/>
2339
2340	<function name="CompressedTexImage3DARB" template="CompressedTexImage3D"/>
2341	<function name="CompressedTexSubImage3DARB" template="CompressedTexSubImage3D"/>
2342
2343	<function name="ActiveTextureARB" template="ActiveTexture"/>
2344	<function name="ClientActiveTextureARB" template="ClientActiveTexture"/>
2345
2346	<function name="MultiTexCoord4f" default_prefix="_es_" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2347
2348	<function name="SampleCoverageARB" template="SampleCoverage" gltype="GLclampf"/>
2349
2350	<function name="CompressedTexImage2DARB" template="CompressedTexImage2D"/>
2351	<function name="CompressedTexSubImage2DARB" template="CompressedTexSubImage2D"/>
2352
2353	<function name="BlendFuncSeparateEXT" template="BlendFuncSeparate"/>
2354
2355	<function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
2356	<function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
2357
2358	<function name="VertexAttrib1f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
2359	<function name="VertexAttrib2f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
2360	<function name="VertexAttrib3f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
2361	<function name="VertexAttrib4f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2362	<function name="VertexAttrib1fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
2363	<function name="VertexAttrib2fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
2364	<function name="VertexAttrib3fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
2365	<function name="VertexAttrib4fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
2366
2367	<function name="VertexAttribPointerARB" template="VertexAttribPointer"/>
2368	<function name="EnableVertexAttribArrayARB" template="EnableVertexAttribArray"/>
2369	<function name="DisableVertexAttribArrayARB" template="DisableVertexAttribArray"/>
2370
2371	<function name="IsProgram" template="IsProgram"/>
2372	<function name="GetProgramiv" template="GetProgram" gltype="GLint"/>
2373
2374	<function name="GetVertexAttribfvARB" template="GetVertexAttrib" gltype="GLfloat"/>
2375	<function name="GetVertexAttribivARB" template="GetVertexAttrib" gltype="GLint"/>
2376	<function name="GetVertexAttribPointervARB" template="GetVertexAttribPointer"/>
2377
2378	<function name="GetBufferPointervARB" template="GetBufferPointer"/>
2379	<function name="MapBufferARB" template="MapBuffer"/>
2380	<function name="UnmapBufferARB" template="UnmapBuffer"/>
2381	<function name="BindBufferARB" template="BindBuffer"/>
2382	<function name="BufferDataARB" template="BufferData"/>
2383	<function name="BufferSubDataARB" template="BufferSubData"/>
2384	<function name="DeleteBuffersARB" template="DeleteBuffers"/>
2385	<function name="GenBuffersARB" template="GenBuffers"/>
2386	<function name="GetBufferParameterivARB" template="GetBufferParameter" gltype="GLint"/>
2387	<function name="IsBufferARB" template="IsBuffer"/>
2388
2389	<function name="CreateShader" template="CreateShader"/>
2390	<function name="ShaderSourceARB" template="ShaderSource"/>
2391	<function name="CompileShaderARB" template="CompileShader"/>
2392	<function name="ReleaseShaderCompiler" template="ReleaseShaderCompiler"/>
2393	<function name="DeleteShader" template="DeleteShader"/>
2394	<function name="ShaderBinary" template="ShaderBinary"/>
2395	<function name="CreateProgram" template="CreateProgram"/>
2396	<function name="AttachShader" template="AttachShader"/>
2397	<function name="DetachShader" template="DetachShader"/>
2398	<function name="LinkProgramARB" template="LinkProgram"/>
2399	<function name="UseProgramObjectARB" template="UseProgram"/>
2400	<function name="DeleteProgram" template="DeleteProgram"/>
2401
2402	<function name="GetActiveAttribARB" template="GetActiveAttrib"/>
2403	<function name="GetAttribLocationARB" template="GetAttribLocation"/>
2404	<function name="BindAttribLocationARB" template="BindAttribLocation"/>
2405	<function name="GetUniformLocationARB" template="GetUniformLocation"/>
2406	<function name="GetActiveUniformARB" template="GetActiveUniform"/>
2407
2408	<function name="Uniform1fARB" template="Uniform" gltype="GLfloat" vector_size="1" expand_vector="true"/>
2409	<function name="Uniform2fARB" template="Uniform" gltype="GLfloat" vector_size="2" expand_vector="true"/>
2410	<function name="Uniform3fARB" template="Uniform" gltype="GLfloat" vector_size="3" expand_vector="true"/>
2411	<function name="Uniform4fARB" template="Uniform" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2412	<function name="Uniform1iARB" template="Uniform" gltype="GLint" vector_size="1" expand_vector="true"/>
2413	<function name="Uniform2iARB" template="Uniform" gltype="GLint" vector_size="2" expand_vector="true"/>
2414	<function name="Uniform3iARB" template="Uniform" gltype="GLint" vector_size="3" expand_vector="true"/>
2415	<function name="Uniform4iARB" template="Uniform" gltype="GLint" vector_size="4" expand_vector="true"/>
2416	<function name="Uniform1fvARB" template="Uniform" gltype="GLfloat" vector_size="1"/>
2417	<function name="Uniform2fvARB" template="Uniform" gltype="GLfloat" vector_size="2"/>
2418	<function name="Uniform3fvARB" template="Uniform" gltype="GLfloat" vector_size="3"/>
2419	<function name="Uniform4fvARB" template="Uniform" gltype="GLfloat" vector_size="4"/>
2420	<function name="Uniform1ivARB" template="Uniform" gltype="GLint" vector_size="1"/>
2421	<function name="Uniform2ivARB" template="Uniform" gltype="GLint" vector_size="2"/>
2422	<function name="Uniform3ivARB" template="Uniform" gltype="GLint" vector_size="3"/>
2423	<function name="Uniform4ivARB" template="Uniform" gltype="GLint" vector_size="4"/>
2424
2425	<function name="UniformMatrix2fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="2"/>
2426	<function name="UniformMatrix3fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="3"/>
2427	<function name="UniformMatrix4fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="4"/>
2428
2429	<function name="ValidateProgramARB" template="ValidateProgram"/>
2430
2431	<function name="GenerateMipmapEXT" template="GenerateMipmap"/>
2432	<function name="BindFramebufferEXT" template="BindFramebuffer"/>
2433	<function name="DeleteFramebuffersEXT" template="DeleteFramebuffers"/>
2434	<function name="GenFramebuffersEXT" template="GenFramebuffers"/>
2435	<function name="BindRenderbufferEXT" template="BindRenderbuffer"/>
2436	<function name="DeleteRenderbuffersEXT" template="DeleteRenderbuffers"/>
2437	<function name="GenRenderbuffersEXT" template="GenRenderbuffers"/>
2438	<function name="RenderbufferStorageEXT" template="RenderbufferStorage"/>
2439	<function name="FramebufferRenderbufferEXT" template="FramebufferRenderbuffer"/>
2440	<function name="FramebufferTexture2DEXT" template="FramebufferTexture2D"/>
2441	<function name="FramebufferTexture3DEXT" template="FramebufferTexture3D"/>
2442	<function name="CheckFramebufferStatusEXT" template="CheckFramebufferStatus"/>
2443	<function name="GetFramebufferAttachmentParameterivEXT" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
2444	<function name="GetRenderbufferParameterivEXT" template="GetRenderbufferParameter" gltype="GLint"/>
2445	<function name="IsRenderbufferEXT" template="IsRenderbuffer"/>
2446	<function name="IsFramebufferEXT" template="IsFramebuffer"/>
2447
2448	<function name="IsShader" template="IsShader"/>
2449	<function name="GetShaderiv" template="GetShader" gltype="GLint"/>
2450	<function name="GetAttachedShaders" template="GetAttachedShaders"/>
2451	<function name="GetShaderInfoLog" template="GetShaderInfoLog"/>
2452	<function name="GetProgramInfoLog" template="GetProgramInfoLog"/>
2453	<function name="GetShaderSourceARB" template="GetShaderSource"/>
2454	<function name="GetShaderPrecisionFormat" template="GetShaderPrecisionFormat"/>
2455	<function name="GetUniformfvARB" template="GetUniform" gltype="GLfloat"/>
2456	<function name="GetUniformivARB" template="GetUniform" gltype="GLint"/>
2457
2458	<function name="DrawTexf" template="DrawTex" gltype="GLfloat" expand_vector="true"/>
2459	<function name="DrawTexfv" template="DrawTex" gltype="GLfloat"/>
2460	<function name="DrawTexi" template="DrawTex" gltype="GLint" expand_vector="true"/>
2461	<function name="DrawTexiv" template="DrawTex" gltype="GLint"/>
2462	<function name="DrawTexs" template="DrawTex" gltype="GLshort" expand_vector="true"/>
2463	<function name="DrawTexsv" template="DrawTex" gltype="GLshort"/>
2464
2465        <!-- EXT_multi_draw_arrays -->
2466        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
2467        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
2468
2469        <!-- OES_EGL_image -->
2470        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
2471        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
2472
2473	<function name="DrawBuffersARB" template="DrawBuffers"/>
2474
2475	<function name="ReadBuffer" template="ReadBuffer"/>
2476
2477</api>
2478
2479<api name="GLES1.1">
2480	<category name="GLES1.1"/>
2481
2482	<category name="OES_byte_coordinates"/>
2483	<category name="OES_fixed_point"/>
2484	<category name="OES_single_precision"/>
2485	<category name="OES_matrix_get"/>
2486	<category name="OES_read_format"/>
2487	<category name="OES_compressed_paletted_texture"/>
2488	<category name="OES_compressed_ETC1_RGB8_texture"/>
2489	<category name="OES_point_size_array"/>
2490	<category name="OES_point_sprite"/>
2491	<category name="OES_query_matrix"/>
2492	<category name="OES_draw_texture"/>
2493	<category name="OES_blend_equation_separate"/>
2494	<category name="OES_blend_func_separate"/>
2495	<category name="OES_blend_subtract"/>
2496	<category name="OES_stencil_wrap"/>
2497	<category name="OES_texture_cube_map"/>
2498	<category name="OES_texture_env_crossbar"/>
2499	<category name="OES_texture_mirrored_repeat"/>
2500	<category name="OES_framebuffer_object"/>
2501	<category name="OES_depth24"/>
2502	<category name="OES_depth32"/>
2503	<category name="OES_fbo_render_mipmap"/>
2504	<category name="OES_rgb8_rgba8"/>
2505	<category name="OES_stencil1"/>
2506	<category name="OES_stencil4"/>
2507	<category name="OES_stencil8"/>
2508	<category name="OES_element_index_uint"/>
2509	<category name="OES_mapbuffer"/>
2510	<category name="EXT_texture_filter_anisotropic"/>
2511	<category name="EXT_texture_format_BGRA8888"/>
2512	<category name="EXT_read_format_bgra"/>
2513
2514	<category name="ARB_texture_non_power_of_two"/>
2515	<!-- disabled due to missing enums
2516	<category name="EXT_texture_compression_dxt1"/>
2517	-->
2518	<category name="EXT_texture_lod_bias"/>
2519	<category name="EXT_blend_minmax"/>
2520	<category name="EXT_multi_draw_arrays"/>
2521	<category name="OES_EGL_image"/>
2522	<category name="OES_EGL_image_external"/>
2523
2524	<category name="OES_matrix_palette"/>
2525
2526	<function name="Color4f" external="true" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2527	<function name="Color4ub" template="Color" gltype="GLubyte" vector_size="4" expand_vector="true"/>
2528	<function name="Color4x" template="Color" gltype="GLfixed" vector_size="4" expand_vector="true"/>
2529
2530	<function name="ClipPlanef" template="ClipPlane" gltype="GLfloat"/>
2531	<function name="ClipPlanex" template="ClipPlane" gltype="GLfixed"/>
2532
2533	<function name="CullFace" template="CullFace"/>
2534
2535	<function name="Fogf" template="Fog" gltype="GLfloat" expand_vector="true"/>
2536	<function name="Fogx" template="Fog" gltype="GLfixed" expand_vector="true"/>
2537	<function name="Fogfv" template="Fog" gltype="GLfloat"/>
2538	<function name="Fogxv" template="Fog" gltype="GLfixed"/>
2539
2540	<function name="FrontFace" template="FrontFace"/>
2541	<function name="Hint" template="Hint"/>
2542
2543	<function name="Lightf" template="Light" gltype="GLfloat" expand_vector="true"/>
2544	<function name="Lightx" template="Light" gltype="GLfixed" expand_vector="true"/>
2545	<function name="Lightfv" template="Light" gltype="GLfloat"/>
2546	<function name="Lightxv" template="Light" gltype="GLfixed"/>
2547
2548	<function name="LightModelf" template="LightModel" gltype="GLfloat" expand_vector="true"/>
2549	<function name="LightModelx" template="LightModel" gltype="GLfixed" expand_vector="true"/>
2550	<function name="LightModelfv" template="LightModel" gltype="GLfloat"/>
2551	<function name="LightModelxv" template="LightModel" gltype="GLfixed"/>
2552
2553	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
2554	<function name="LineWidthx" template="LineWidth" gltype="GLfixed"/>
2555
2556	<function name="Materialf" external="true" template="Material" gltype="GLfloat" expand_vector="true"/>
2557	<function name="Materialfv" external="true" template="Material" gltype="GLfloat"/>
2558	<function name="Materialx" template="Material" gltype="GLfixed" expand_vector="true"/>
2559	<function name="Materialxv" template="Material" gltype="GLfixed"/>
2560
2561	<function name="PointSize" template="PointSize" gltype="GLfloat"/>
2562	<function name="PointSizex" template="PointSize" gltype="GLfixed"/>
2563	<function name="PointSizePointerOES" template="PointSizePointer"/>
2564
2565	<function name="Scissor" template="Scissor"/>
2566	<function name="ShadeModel" template="ShadeModel"/>
2567
2568	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
2569	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
2570	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
2571	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
2572	<function name="TexParameterx" template="TexParameter" gltype="GLfixed" expand_vector="true"/>
2573	<function name="TexParameterxv" template="TexParameter" gltype="GLfixed"/>
2574
2575	<function name="TexImage2D" template="TexImage2D"/>
2576
2577	<function name="TexEnvf" template="TexEnv" gltype="GLfloat" expand_vector="true"/>
2578	<function name="TexEnvfv" template="TexEnv" gltype="GLfloat"/>
2579	<function name="TexEnvi" template="TexEnv" gltype="GLint" expand_vector="true"/>
2580	<function name="TexEnviv" template="TexEnv" gltype="GLint"/>
2581	<function name="TexEnvx" template="TexEnv" gltype="GLfixed" expand_vector="true"/>
2582	<function name="TexEnvxv" template="TexEnv" gltype="GLfixed"/>
2583
2584	<function name="TexGenfOES" external="true" template="TexGen" gltype="GLfloat" expand_vector="true"/>
2585	<function name="TexGenfvOES" external="true" template="TexGen" gltype="GLfloat"/>
2586	<function name="TexGeniOES" external="true" template="TexGen" gltype="GLint" expand_vector="true"/>
2587	<function name="TexGenivOES" external="true" template="TexGen" gltype="GLint"/>
2588	<function name="TexGenxOES" external="true" template="TexGen" gltype="GLfixed" expand_vector="true"/>
2589	<function name="TexGenxvOES" external="true" template="TexGen" gltype="GLfixed"/>
2590
2591	<function name="Clear" template="Clear"/>
2592	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
2593	<function name="ClearColorx" template="ClearColor" gltype="GLclampx"/>
2594
2595	<function name="ClearStencil" template="ClearStencil"/>
2596	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
2597	<function name="ClearDepthx" template="ClearDepth" gltype="GLclampx"/>
2598
2599	<function name="StencilMask" template="StencilMask"/>
2600	<function name="ColorMask" template="ColorMask"/>
2601	<function name="DepthMask" template="DepthMask"/>
2602
2603	<function name="Disable" template="Disable"/>
2604	<function name="Enable" template="Enable"/>
2605	<function name="Finish" template="Finish"/>
2606	<function name="Flush" template="Flush"/>
2607
2608	<function name="AlphaFunc" template="AlphaFunc" gltype="GLclampf"/>
2609	<function name="AlphaFuncx" template="AlphaFunc" gltype="GLclampx"/>
2610
2611	<function name="BlendFunc" template="BlendFunc"/>
2612	<function name="LogicOp" template="LogicOp"/>
2613	<function name="StencilFunc" template="StencilFunc"/>
2614
2615	<function name="StencilOp" template="StencilOp"/>
2616	<function name="DepthFunc" template="DepthFunc"/>
2617
2618	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
2619	<function name="ReadPixels" template="ReadPixels"/>
2620
2621	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
2622
2623	<function name="GetClipPlanef" template="GetClipPlane" gltype="GLfloat"/>
2624	<function name="GetClipPlanex" template="GetClipPlane" gltype="GLfixed"/>
2625
2626	<function name="GetError" template="GetError"/>
2627	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
2628	<function name="GetFixedv" template="GetState" gltype="GLfixed"/>
2629	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
2630
2631	<function name="GetLightfv" template="GetLight" gltype="GLfloat"/>
2632	<function name="GetLightxv" template="GetLight" gltype="GLfixed"/>
2633
2634	<function name="GetMaterialfv" template="GetMaterial" gltype="GLfloat"/>
2635	<function name="GetMaterialxv" template="GetMaterial" gltype="GLfixed"/>
2636
2637	<function name="GetString" template="GetString"/>
2638
2639	<function name="GetTexEnvfv" template="GetTexEnv" gltype="GLfloat"/>
2640	<function name="GetTexEnviv" template="GetTexEnv" gltype="GLint"/>
2641	<function name="GetTexEnvxv" template="GetTexEnv" gltype="GLfixed"/>
2642
2643	<function name="GetTexGenfvOES" external="true" template="GetTexGen" gltype="GLfloat"/>
2644	<function name="GetTexGenivOES" external="true" template="GetTexGen" gltype="GLint"/>
2645	<function name="GetTexGenxvOES" external="true" template="GetTexGen" gltype="GLfixed"/>
2646
2647	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
2648	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
2649	<function name="GetTexParameterxv" template="GetTexParameter" gltype="GLfixed"/>
2650
2651	<function name="IsEnabled" template="IsEnabled"/>
2652
2653	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
2654	<function name="DepthRangex" template="DepthRange" gltype="GLclampx"/>
2655
2656	<function name="Frustumf" template="Frustum" gltype="GLfloat"/>
2657	<function name="Frustumx" template="Frustum" gltype="GLfixed"/>
2658
2659	<function name="LoadIdentity" template="LoadIdentity"/>
2660	<function name="LoadMatrixf" template="LoadMatrix" gltype="GLfloat"/>
2661	<function name="LoadMatrixx" template="LoadMatrix" gltype="GLfixed"/>
2662	<function name="MatrixMode" template="MatrixMode"/>
2663
2664	<function name="MultMatrixf" template="MultMatrix" gltype="GLfloat"/>
2665	<function name="MultMatrixx" template="MultMatrix" gltype="GLfixed"/>
2666	<function name="Orthof" template="Ortho" gltype="GLfloat"/>
2667	<function name="Orthox" template="Ortho" gltype="GLfixed"/>
2668
2669	<function name="PopMatrix" template="PopMatrix"/>
2670	<function name="PushMatrix" template="PushMatrix"/>
2671
2672	<function name="Rotatef" template="Rotate" gltype="GLfloat"/>
2673	<function name="Rotatex" template="Rotate" gltype="GLfixed"/>
2674	<function name="Scalef" template="Scale" gltype="GLfloat"/>
2675	<function name="Scalex" template="Scale" gltype="GLfixed"/>
2676	<function name="Translatef" template="Translate" gltype="GLfloat"/>
2677	<function name="Translatex" template="Translate" gltype="GLfixed"/>
2678
2679	<function name="Viewport" template="Viewport"/>
2680	<function name="ColorPointer" template="ColorPointer"/>
2681	<function name="DisableClientState" template="DisableClientState"/>
2682	<function name="DrawArrays" template="DrawArrays"/>
2683	<function name="DrawElements" template="DrawElements"/>
2684	<function name="EnableClientState" template="EnableClientState"/>
2685
2686	<function name="GetPointerv" template="GetPointer"/>
2687
2688	<function name="Normal3f" external="true" template="Normal" gltype="GLfloat" expand_vector="true"/>
2689	<function name="Normal3x" template="Normal" gltype="GLfixed" expand_vector="true"/>
2690	<function name="NormalPointer" template="NormalPointer"/>
2691	<function name="TexCoordPointer" template="TexCoordPointer"/>
2692	<function name="VertexPointer" template="VertexPointer"/>
2693
2694	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
2695	<function name="PolygonOffsetx" template="PolygonOffset" gltype="GLfixed"/>
2696
2697	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
2698	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
2699
2700	<function name="TexSubImage2D" template="TexSubImage2D"/>
2701
2702	<function name="BindTexture" template="BindTexture"/>
2703	<function name="DeleteTextures" template="DeleteTextures"/>
2704	<function name="GenTextures" template="GenTextures"/>
2705	<function name="IsTexture" template="IsTexture"/>
2706
2707	<function name="BlendEquationOES" template="BlendEquation"/>
2708	<function name="BlendEquationSeparateOES" template="BlendEquationSeparate"/>
2709
2710	<function name="MultiTexCoord4x" template="MultiTexCoord" gltype="GLfixed" vector_size="4" expand_vector="true"/>
2711
2712	<function name="ActiveTexture" template="ActiveTexture"/>
2713	<function name="ClientActiveTexture" template="ClientActiveTexture"/>
2714
2715	<function name="MultiTexCoord4f" external="true" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2716
2717	<function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
2718	<function name="SampleCoveragex" template="SampleCoverage" gltype="GLclampx"/>
2719
2720	<!-- CompressedTexImage2D calls out to two different functions based on
2721	     whether the image is a paletted image or not -->
2722	<function name="CompressedTexImage2D" template="CompressedTexImage2D"/>
2723	<function name="CompressedTexSubImage2D" template="CompressedTexSubImage2D"/>
2724
2725	<function name="BlendFuncSeparateOES" template="BlendFuncSeparate"/>
2726
2727	<function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
2728	<function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
2729	<function name="PointParameterx" template="PointParameter" gltype="GLfixed" expand_vector="true"/>
2730	<function name="PointParameterxv" template="PointParameter" gltype="GLfixed"/>
2731
2732	<!-- OES_mapbuffer -->
2733	<function name="GetBufferPointervOES" template="GetBufferPointer"/>
2734	<function name="MapBufferOES" template="MapBuffer"/>
2735	<function name="UnmapBufferOES" template="UnmapBuffer"/>
2736
2737	<function name="BindBuffer" template="BindBuffer"/>
2738	<function name="BufferData" template="BufferData"/>
2739	<function name="BufferSubData" template="BufferSubData"/>
2740	<function name="DeleteBuffers" template="DeleteBuffers"/>
2741	<function name="GenBuffers" template="GenBuffers"/>
2742	<function name="GetBufferParameteriv" template="GetBufferParameter" gltype="GLint"/>
2743	<function name="IsBuffer" template="IsBuffer"/>
2744
2745	<!-- OES_framebuffer_object -->
2746	<function name="GenerateMipmapOES" template="GenerateMipmap"/>
2747	<function name="BindFramebufferOES" template="BindFramebuffer"/>
2748	<function name="DeleteFramebuffersOES" template="DeleteFramebuffers"/>
2749	<function name="GenFramebuffersOES" template="GenFramebuffers"/>
2750	<function name="BindRenderbufferOES" template="BindRenderbuffer"/>
2751	<function name="DeleteRenderbuffersOES" template="DeleteRenderbuffers"/>
2752	<function name="GenRenderbuffersOES" template="GenRenderbuffers"/>
2753	<function name="RenderbufferStorageOES" external="true" template="RenderbufferStorage"/>
2754	<function name="FramebufferRenderbufferOES" template="FramebufferRenderbuffer"/>
2755	<function name="FramebufferTexture2DOES" template="FramebufferTexture2D"/>
2756	<function name="CheckFramebufferStatusOES" template="CheckFramebufferStatus"/>
2757	<function name="GetFramebufferAttachmentParameterivOES" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
2758	<function name="GetRenderbufferParameterivOES" template="GetRenderbufferParameter" gltype="GLint"/>
2759	<function name="IsRenderbufferOES" template="IsRenderbuffer"/>
2760	<function name="IsFramebufferOES" template="IsFramebuffer"/>
2761
2762	<!-- OES_query_matrix -->
2763	<!-- QueryMatrixx returns values in an unusual, decomposed, fixed-value
2764	     form; it has its own code for this -->
2765	<function name="QueryMatrixxOES" external="true" template="QueryMatrix" gltype="GLfixed"/>
2766
2767	<!-- OES_draw_texture -->
2768	<function name="DrawTexfOES" template="DrawTex" gltype="GLfloat" expand_vector="true"/>
2769	<function name="DrawTexiOES" template="DrawTex" gltype="GLint" expand_vector="true"/>
2770	<function name="DrawTexsOES" template="DrawTex" gltype="GLshort" expand_vector="true"/>
2771	<function name="DrawTexxOES" template="DrawTex" gltype="GLfixed" expand_vector="true"/>
2772	<function name="DrawTexfvOES" template="DrawTex" gltype="GLfloat"/>
2773	<function name="DrawTexivOES" template="DrawTex" gltype="GLint"/>
2774	<function name="DrawTexsvOES" template="DrawTex" gltype="GLshort"/>
2775	<function name="DrawTexxvOES" template="DrawTex" gltype="GLfixed"/>
2776
2777        <!-- EXT_multi_draw_arrays -->
2778        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
2779        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
2780
2781        <!-- OES_EGL_image -->
2782        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
2783        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
2784</api>
2785
2786<api name="GLES2.0">
2787	<category name="GLES2.0"/>
2788
2789	<category name="OES_compressed_paletted_texture"/>
2790	<category name="OES_compressed_ETC1_RGB8_texture"/>
2791	<category name="OES_depth24"/>
2792	<category name="OES_depth32"/>
2793	<category name="OES_fbo_render_mipmap"/>
2794	<category name="OES_rgb8_rgba8"/>
2795	<category name="OES_stencil1"/>
2796	<category name="OES_stencil4"/>
2797	<category name="OES_element_index_uint"/>
2798	<category name="OES_mapbuffer"/>
2799	<category name="OES_texture_3D"/>
2800	<category name="OES_texture_npot"/>
2801	<category name="EXT_texture_filter_anisotropic"/>
2802	<category name="EXT_texture_type_2_10_10_10_REV"/>
2803	<category name="OES_depth_texture"/>
2804	<category name="OES_packed_depth_stencil"/>
2805	<category name="OES_standard_derivatives"/>
2806	<category name="EXT_texture_format_BGRA8888"/>
2807	<category name="EXT_texture_rg"/>
2808	<category name="EXT_read_format_bgra"/>
2809
2810	<category name="EXT_texture_compression_dxt1"/>
2811	<category name="EXT_blend_minmax"/>
2812	<category name="EXT_multi_draw_arrays"/>
2813	<category name="OES_EGL_image"/>
2814	<category name="OES_EGL_image_external"/>
2815        <category name="EXT_unpack_subimage"/>
2816
2817	<category name="NV_draw_buffers"/>
2818	<category name="NV_read_buffer"/>
2819
2820	<function name="DrawBuffersNV" template="DrawBuffers"/>
2821	<function name="ReadBufferNV" template="ReadBuffer"/> 
2822
2823	<function name="CullFace" template="CullFace"/>
2824
2825	<function name="FrontFace" template="FrontFace"/>
2826	<function name="Hint" template="Hint"/>
2827
2828	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
2829
2830	<function name="Scissor" template="Scissor"/>
2831
2832	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
2833	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
2834	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
2835	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
2836
2837	<function name="TexImage2D" template="TexImage2D"/>
2838
2839	<function name="Clear" template="Clear"/>
2840	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
2841	<function name="ClearStencil" template="ClearStencil"/>
2842	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
2843
2844	<function name="StencilMask" template="StencilMask"/>
2845	<function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
2846	<function name="ColorMask" template="ColorMask"/>
2847	<function name="DepthMask" template="DepthMask"/>
2848	<function name="Disable" template="Disable"/>
2849	<function name="Enable" template="Enable"/>
2850	<function name="Finish" template="Finish"/>
2851	<function name="Flush" template="Flush"/>
2852
2853	<function name="BlendFunc" template="BlendFunc"/>
2854
2855	<function name="StencilFunc" template="StencilFunc"/>
2856	<function name="StencilFuncSeparate" template="StencilFuncSeparate"/>
2857	<function name="StencilOp" template="StencilOp"/>
2858	<function name="StencilOpSeparate" template="StencilOpSeparate"/>
2859
2860	<function name="DepthFunc" template="DepthFunc"/>
2861
2862	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
2863	<function name="ReadPixels" template="ReadPixels"/>
2864
2865	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
2866	<function name="GetError" template="GetError"/>
2867	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
2868	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
2869
2870	<function name="GetString" template="GetString"/>
2871
2872	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
2873	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
2874
2875	<function name="IsEnabled" template="IsEnabled"/>
2876
2877	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
2878
2879	<function name="Viewport" template="Viewport"/>
2880
2881	<function name="DrawArrays" template="DrawArrays"/>
2882	<function name="DrawElements" template="DrawElements"/>
2883
2884	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
2885	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
2886	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
2887	<function name="TexSubImage2D" template="TexSubImage2D"/>
2888
2889	<function name="BindTexture" template="BindTexture"/>
2890	<function name="DeleteTextures" template="DeleteTextures"/>
2891	<function name="GenTextures" template="GenTextures"/>
2892	<function name="IsTexture" template="IsTexture"/>
2893
2894	<function name="BlendColor" template="BlendColor" gltype="GLclampf"/>
2895	<function name="BlendEquation" template="BlendEquation"/>
2896	<function name="BlendEquationSeparate" template="BlendEquationSeparate"/>
2897
2898	<function name="TexImage3DOES" template="TexImage3D"/>
2899	<function name="TexSubImage3DOES" template="TexSubImage3D"/>
2900	<function name="CopyTexSubImage3DOES" template="CopyTexSubImage3D"/>
2901
2902	<function name="CompressedTexImage3DOES" template="CompressedTexImage3D"/>
2903	<function name="CompressedTexSubImage3DOES" template="CompressedTexSubImage3D"/>
2904
2905	<function name="ActiveTexture" template="ActiveTexture"/>
2906
2907	<function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
2908
2909	<function name="CompressedTexImage2D" template="CompressedTexImage2D"/>
2910	<function name="CompressedTexSubImage2D" template="CompressedTexSubImage2D"/>
2911
2912	<function name="BlendFuncSeparate" template="BlendFuncSeparate"/>
2913
2914	<function name="VertexAttrib1f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
2915	<function name="VertexAttrib2f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
2916	<function name="VertexAttrib3f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
2917	<function name="VertexAttrib4f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2918	<function name="VertexAttrib1fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
2919	<function name="VertexAttrib2fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
2920	<function name="VertexAttrib3fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
2921	<function name="VertexAttrib4fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
2922
2923	<function name="VertexAttribPointer" template="VertexAttribPointer"/>
2924
2925	<function name="EnableVertexAttribArray" template="EnableVertexAttribArray"/>
2926	<function name="DisableVertexAttribArray" template="DisableVertexAttribArray"/>
2927
2928	<function name="IsProgram" template="IsProgram"/>
2929	<function name="GetProgramiv" template="GetProgram" gltype="GLint"/>
2930
2931	<function name="GetVertexAttribfv" template="GetVertexAttrib" gltype="GLfloat"/>
2932	<function name="GetVertexAttribiv" template="GetVertexAttrib" gltype="GLint"/>
2933	<function name="GetVertexAttribPointerv" template="GetVertexAttribPointer"/>
2934
2935	<function name="GetBufferPointervOES" template="GetBufferPointer"/>
2936	<function name="MapBufferOES" template="MapBuffer"/>
2937	<function name="UnmapBufferOES" template="UnmapBuffer"/>
2938	<function name="BindBuffer" template="BindBuffer"/>
2939	<function name="BufferData" template="BufferData"/>
2940	<function name="BufferSubData" template="BufferSubData"/>
2941	<function name="DeleteBuffers" template="DeleteBuffers"/>
2942	<function name="GenBuffers" template="GenBuffers"/>
2943	<function name="GetBufferParameteriv" template="GetBufferParameter" gltype="GLint"/>
2944	<function name="IsBuffer" template="IsBuffer"/>
2945
2946	<function name="CreateShader" template="CreateShader"/>
2947	<function name="ShaderSource" template="ShaderSource"/>
2948	<function name="CompileShader" template="CompileShader"/>
2949	<function name="ReleaseShaderCompiler" template="ReleaseShaderCompiler"/>
2950	<function name="DeleteShader" template="DeleteShader"/>
2951	<function name="ShaderBinary" template="ShaderBinary"/>
2952	<function name="CreateProgram" template="CreateProgram"/>
2953	<function name="AttachShader" template="AttachShader"/>
2954	<function name="DetachShader" template="DetachShader"/>
2955	<function name="LinkProgram" template="LinkProgram"/>
2956	<function name="UseProgram" template="UseProgram"/>
2957	<function name="DeleteProgram" template="DeleteProgram"/>
2958
2959	<function name="GetActiveAttrib" template="GetActiveAttrib"/>
2960	<function name="GetAttribLocation" template="GetAttribLocation"/>
2961	<function name="BindAttribLocation" template="BindAttribLocation"/>
2962	<function name="GetUniformLocation" template="GetUniformLocation"/>
2963	<function name="GetActiveUniform" template="GetActiveUniform"/>
2964
2965	<function name="Uniform1f" template="Uniform" gltype="GLfloat" vector_size="1" expand_vector="true"/>
2966	<function name="Uniform2f" template="Uniform" gltype="GLfloat" vector_size="2" expand_vector="true"/>
2967	<function name="Uniform3f" template="Uniform" gltype="GLfloat" vector_size="3" expand_vector="true"/>
2968	<function name="Uniform4f" template="Uniform" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2969	<function name="Uniform1i" template="Uniform" gltype="GLint" vector_size="1" expand_vector="true"/>
2970	<function name="Uniform2i" template="Uniform" gltype="GLint" vector_size="2" expand_vector="true"/>
2971	<function name="Uniform3i" template="Uniform" gltype="GLint" vector_size="3" expand_vector="true"/>
2972	<function name="Uniform4i" template="Uniform" gltype="GLint" vector_size="4" expand_vector="true"/>
2973
2974	<function name="Uniform1fv" template="Uniform" gltype="GLfloat" vector_size="1"/>
2975	<function name="Uniform2fv" template="Uniform" gltype="GLfloat" vector_size="2"/>
2976	<function name="Uniform3fv" template="Uniform" gltype="GLfloat" vector_size="3"/>
2977	<function name="Uniform4fv" template="Uniform" gltype="GLfloat" vector_size="4"/>
2978	<function name="Uniform1iv" template="Uniform" gltype="GLint" vector_size="1"/>
2979	<function name="Uniform2iv" template="Uniform" gltype="GLint" vector_size="2"/>
2980	<function name="Uniform3iv" template="Uniform" gltype="GLint" vector_size="3"/>
2981	<function name="Uniform4iv" template="Uniform" gltype="GLint" vector_size="4"/>
2982
2983	<function name="UniformMatrix2fv" template="UniformMatrix" gltype="GLfloat" vector_size="2"/>
2984	<function name="UniformMatrix3fv" template="UniformMatrix" gltype="GLfloat" vector_size="3"/>
2985	<function name="UniformMatrix4fv" template="UniformMatrix" gltype="GLfloat" vector_size="4"/>
2986
2987	<function name="ValidateProgram" template="ValidateProgram"/>
2988
2989	<function name="GenerateMipmap" template="GenerateMipmap"/>
2990	<function name="BindFramebuffer" template="BindFramebuffer"/>
2991	<function name="DeleteFramebuffers" template="DeleteFramebuffers"/>
2992	<function name="GenFramebuffers" template="GenFramebuffers"/>
2993	<function name="BindRenderbuffer" template="BindRenderbuffer"/>
2994	<function name="DeleteRenderbuffers" template="DeleteRenderbuffers"/>
2995	<function name="GenRenderbuffers" template="GenRenderbuffers"/>
2996	<function name="RenderbufferStorage" external="true" template="RenderbufferStorage"/>
2997	<function name="FramebufferRenderbuffer" template="FramebufferRenderbuffer"/>
2998	<function name="FramebufferTexture2D" template="FramebufferTexture2D"/>
2999	<function name="FramebufferTexture3DOES" template="FramebufferTexture3D"/>
3000	<function name="CheckFramebufferStatus" template="CheckFramebufferStatus"/>
3001	<function name="GetFramebufferAttachmentParameteriv" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
3002	<function name="GetRenderbufferParameteriv" template="GetRenderbufferParameter" gltype="GLint"/>
3003	<function name="IsRenderbuffer" template="IsRenderbuffer"/>
3004	<function name="IsFramebuffer" template="IsFramebuffer"/>
3005
3006	<function name="IsShader" template="IsShader"/>
3007	<function name="GetShaderiv" template="GetShader" gltype="GLint"/>
3008	<function name="GetAttachedShaders" template="GetAttachedShaders"/>
3009	<function name="GetShaderInfoLog" template="GetShaderInfoLog"/>
3010	<function name="GetProgramInfoLog" template="GetProgramInfoLog"/>
3011	<function name="GetShaderSource" template="GetShaderSource"/>
3012	<function name="GetShaderPrecisionFormat" template="GetShaderPrecisionFormat"/>
3013	<function name="GetUniformfv" template="GetUniform" gltype="GLfloat"/>
3014	<function name="GetUniformiv" template="GetUniform" gltype="GLint"/>
3015
3016        <!-- EXT_multi_draw_arrays -->
3017        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
3018        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
3019
3020        <!-- OES_EGL_image -->
3021        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
3022        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
3023</api>
3024
3025</apispec>
3026