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