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