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