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