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