APIspec.xml revision ae633d0b2e1ef85191027aca6987557091345fc1
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
1222	<desc name="size" error="GL_INVALID_VALUE">
1223		<value name="4"/>
1224	</desc>
1225
1226	<desc name="type">
1227		<value name="GL_UNSIGNED_BYTE"/>
1228		<value name="GL_FLOAT"/>
1229		<value name="GL_FIXED"/>
1230		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
1231	</desc>
1232</template>
1233
1234<template name="DisableClientState">
1235	<proto>
1236		<return type="void"/>
1237		<param name="array" type="GLenum"/>
1238	</proto>
1239
1240	<desc name="array">
1241		<value name="GL_VERTEX_ARRAY"/>
1242		<value name="GL_NORMAL_ARRAY"/>
1243		<value name="GL_COLOR_ARRAY"/>
1244		<value name="GL_TEXTURE_COORD_ARRAY"/>
1245		<value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
1246		<value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
1247		<value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
1248	</desc>
1249</template>
1250
1251<template name="DrawArrays">
1252	<proto>
1253		<return type="void"/>
1254		<param name="mode" type="GLenum"/>
1255		<param name="first" type="GLint"/>
1256		<param name="count" type="GLsizei"/>
1257	</proto>
1258
1259	<desc name="mode">
1260		<value name="GL_POINTS"/>
1261		<value name="GL_LINES"/>
1262		<value name="GL_LINE_LOOP"/>
1263		<value name="GL_LINE_STRIP"/>
1264		<value name="GL_TRIANGLES"/>
1265		<value name="GL_TRIANGLE_STRIP"/>
1266		<value name="GL_TRIANGLE_FAN"/>
1267	</desc>
1268</template>
1269
1270<template name="DrawElements">
1271	<proto>
1272		<return type="void"/>
1273		<param name="mode" type="GLenum"/>
1274		<param name="count" type="GLsizei"/>
1275		<param name="type" type="GLenum"/>
1276		<param name="indices" type="const GLvoid *"/>
1277	</proto>
1278
1279	<desc name="mode">
1280		<value name="GL_POINTS"/>
1281		<value name="GL_LINES"/>
1282		<value name="GL_LINE_LOOP"/>
1283		<value name="GL_LINE_STRIP"/>
1284		<value name="GL_TRIANGLES"/>
1285		<value name="GL_TRIANGLE_STRIP"/>
1286		<value name="GL_TRIANGLE_FAN"/>
1287	</desc>
1288</template>
1289
1290<template name="EnableClientState">
1291	<proto>
1292		<return type="void"/>
1293		<param name="array" type="GLenum"/>
1294	</proto>
1295
1296	<desc name="array">
1297		<value name="GL_VERTEX_ARRAY"/>
1298		<value name="GL_NORMAL_ARRAY"/>
1299		<value name="GL_COLOR_ARRAY"/>
1300		<value name="GL_TEXTURE_COORD_ARRAY"/>
1301		<value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
1302		<value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
1303		<value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
1304	</desc>
1305</template>
1306
1307<template name="GetPointer" direction="get">
1308	<proto>
1309		<return type="void"/>
1310		<param name="pname" type="GLenum"/>
1311		<vector name="params" type="GLvoid **" size="dynamic"/>
1312	</proto>
1313
1314	<desc name="pname">
1315		<value name="GL_VERTEX_ARRAY_POINTER"/>
1316		<value name="GL_NORMAL_ARRAY_POINTER"/>
1317		<value name="GL_COLOR_ARRAY_POINTER"/>
1318		<value name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
1319		<value name="GL_MATRIX_INDEX_ARRAY_POINTER_OES" category="OES_matrix_palette"/>
1320		<value name="GL_WEIGHT_ARRAY_POINTER_OES" category="OES_matrix_palette"/>
1321		<value name="GL_POINT_SIZE_ARRAY_POINTER_OES" category="OES_point_size_array"/>
1322	</desc>
1323</template>
1324
1325<template name="Normal">
1326	<proto>
1327		<return type="void"/>
1328		<vector name="v" type="const GLtype *" size="3">
1329			<param name="nx" type="GLtype"/>
1330			<param name="ny" type="GLtype"/>
1331			<param name="nz" type="GLtype"/>
1332		</vector>
1333	</proto>
1334</template>
1335
1336<template name="NormalPointer">
1337	<proto>
1338		<return type="void"/>
1339		<param name="type" type="GLenum"/>
1340		<param name="stride" type="GLsizei"/>
1341		<param name="pointer" type="const GLvoid *"/>
1342	</proto>
1343
1344	<desc name="type">
1345		<value name="GL_BYTE"/>
1346		<value name="GL_SHORT"/>
1347		<value name="GL_FLOAT"/>
1348		<value name="GL_FIXED"/>
1349		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
1350	</desc>
1351</template>
1352
1353<template name="TexCoordPointer">
1354	<proto>
1355		<return type="void"/>
1356		<param name="size" type="GLint"/>
1357		<param name="type" type="GLenum"/>
1358		<param name="stride" type="GLsizei"/>
1359		<param name="pointer" type="const GLvoid *"/>
1360	</proto>
1361
1362	<desc name="size" error="GL_INVALID_VALUE">
1363		<value name="2"/>
1364		<value name="3"/>
1365		<value name="4"/>
1366	</desc>
1367
1368	<desc name="type">
1369		<value name="GL_BYTE"/>
1370		<value name="GL_SHORT"/>
1371		<value name="GL_FLOAT"/>
1372		<value name="GL_FIXED"/>
1373		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
1374	</desc>
1375</template>
1376
1377<template name="VertexPointer">
1378	<proto>
1379		<return type="void"/>
1380		<param name="size" type="GLint"/>
1381		<param name="type" type="GLenum"/>
1382		<param name="stride" type="GLsizei"/>
1383		<param name="pointer" type="const GLvoid *"/>
1384	</proto>
1385
1386	<desc name="size" error="GL_INVALID_VALUE">
1387		<value name="2"/>
1388		<value name="3"/>
1389		<value name="4"/>
1390	</desc>
1391
1392	<desc name="type">
1393		<value name="GL_BYTE"/>
1394		<value name="GL_SHORT"/>
1395		<value name="GL_FLOAT"/>
1396		<value name="GL_FIXED"/>
1397		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
1398	</desc>
1399</template>
1400
1401<template name="PolygonOffset">
1402	<proto>
1403		<return type="void"/>
1404		<param name="factor" type="GLtype"/>
1405		<param name="units" type="GLtype"/>
1406	</proto>
1407</template>
1408
1409<template name="CopyTexImage2D">
1410	<proto>
1411		<return type="void"/>
1412		<param name="target" type="GLenum"/>
1413		<param name="level" type="GLint"/>
1414		<param name="internalFormat" type="GLenum"/>
1415		<param name="x" type="GLint"/>
1416		<param name="y" type="GLint"/>
1417		<param name="width" type="GLsizei"/>
1418		<param name="height" type="GLsizei"/>
1419		<param name="border" type="GLint"/>
1420	</proto>
1421</template>
1422
1423<template name="CopyTexSubImage2D">
1424	<proto>
1425		<return type="void"/>
1426		<param name="target" type="GLenum"/>
1427		<param name="level" type="GLint"/>
1428		<param name="xoffset" type="GLint"/>
1429		<param name="yoffset" type="GLint"/>
1430		<param name="x" type="GLint"/>
1431		<param name="y" type="GLint"/>
1432		<param name="width" type="GLsizei"/>
1433		<param name="height" type="GLsizei"/>
1434	</proto>
1435</template>
1436
1437<template name="TexSubImage2D">
1438	<proto>
1439		<return type="void"/>
1440		<param name="target" type="GLenum"/>
1441		<param name="level" type="GLint"/>
1442		<param name="xoffset" type="GLint"/>
1443		<param name="yoffset" type="GLint"/>
1444		<param name="width" type="GLsizei"/>
1445		<param name="height" type="GLsizei"/>
1446		<param name="format" type="GLenum"/>
1447		<param name="type" type="GLenum"/>
1448		<param name="pixels" type="const GLvoid *"/>
1449	</proto>
1450</template>
1451
1452<template name="BindTexture">
1453	<proto>
1454		<return type="void"/>
1455		<param name="target" type="GLenum"/>
1456		<param name="texture" type="GLuint"/>
1457	</proto>
1458</template>
1459
1460<template name="DeleteTextures">
1461	<proto>
1462		<return type="void"/>
1463		<param name="n" type="GLsizei"/>
1464		<param name="textures" type="const GLuint *"/>
1465	</proto>
1466</template>
1467
1468<template name="GenTextures" direction="get">
1469	<proto>
1470		<return type="void"/>
1471		<param name="n" type="GLsizei"/>
1472		<param name="textures" type="GLuint *"/>
1473	</proto>
1474</template>
1475
1476<template name="IsTexture" direction="get">
1477	<proto>
1478		<return type="GLboolean"/>
1479		<param name="texture" type="GLuint"/>
1480	</proto>
1481</template>
1482
1483<template name="BlendColor">
1484	<proto>
1485		<return type="void"/>
1486		<param name="red" type="GLtype"/>
1487		<param name="green" type="GLtype"/>
1488		<param name="blue" type="GLtype"/>
1489		<param name="alpha" type="GLtype"/>
1490	</proto>
1491</template>
1492
1493<template name="BlendEquation">
1494	<proto>
1495		<return type="void"/>
1496		<param name="mode" type="GLenum"/>
1497	</proto>
1498</template>
1499
1500<template name="BlendEquationSeparate">
1501	<proto>
1502		<return type="void"/>
1503		<param name="modeRGB" type="GLenum"/>
1504		<param name="modeAlpha" type="GLenum"/>
1505	</proto>
1506</template>
1507
1508<template name="TexImage3D">
1509	<proto>
1510		<return type="void"/>
1511		<param name="target" type="GLenum"/>
1512		<param name="level" type="GLint"/>
1513		<param name="internalFormat" type="GLenum"/>
1514		<param name="width" type="GLsizei"/>
1515		<param name="height" type="GLsizei"/>
1516		<param name="depth" type="GLsizei"/>
1517		<param name="border" type="GLint"/>
1518		<param name="format" type="GLenum"/>
1519		<param name="type" type="GLenum"/>
1520		<param name="pixels" type="const GLvoid *"/>
1521	</proto>
1522
1523</template>
1524
1525<template name="TexSubImage3D">
1526	<proto>
1527		<return type="void"/>
1528		<param name="target" type="GLenum"/>
1529		<param name="level" type="GLint"/>
1530		<param name="xoffset" type="GLint"/>
1531		<param name="yoffset" type="GLint"/>
1532		<param name="zoffset" type="GLint"/>
1533		<param name="width" type="GLsizei"/>
1534		<param name="height" type="GLsizei"/>
1535		<param name="depth" type="GLsizei"/>
1536		<param name="format" type="GLenum"/>
1537		<param name="type" type="GLenum"/>
1538		<param name="pixels" type="const GLvoid *"/>
1539	</proto>
1540</template>
1541
1542<template name="CopyTexSubImage3D">
1543	<proto>
1544		<return type="void"/>
1545		<param name="target" type="GLenum"/>
1546		<param name="level" type="GLint"/>
1547		<param name="xoffset" type="GLint"/>
1548		<param name="yoffset" type="GLint"/>
1549		<param name="zoffset" type="GLint"/>
1550		<param name="x" type="GLint"/>
1551		<param name="y" type="GLint"/>
1552		<param name="width" type="GLsizei"/>
1553		<param name="height" type="GLsizei"/>
1554	</proto>
1555</template>
1556
1557<template name="MultiTexCoord">
1558	<proto>
1559		<return type="void"/>
1560		<param name="texture" type="GLenum"/>
1561		<vector name="v" type="const GLtype *" size="dynamic">
1562			<param name="s" type="GLtype"/>
1563			<param name="t" type="GLtype"/>
1564			<param name="r" type="GLtype"/>
1565			<param name="q" type="GLtype"/>
1566		</vector>
1567	</proto>
1568</template>
1569
1570<template name="CompressedTexImage3D">
1571	<proto>
1572		<return type="void"/>
1573		<param name="target" type="GLenum"/>
1574		<param name="level" type="GLint"/>
1575		<param name="internalFormat" type="GLenum"/>
1576		<param name="width" type="GLsizei"/>
1577		<param name="height" type="GLsizei"/>
1578		<param name="depth" type="GLsizei"/>
1579		<param name="border" type="GLint"/>
1580		<param name="imagesize" type="GLsizei"/>
1581		<param name="data" type="const GLvoid *"/>
1582	</proto>
1583</template>
1584
1585<template name="CompressedTexSubImage3D">
1586	<proto>
1587		<return type="void"/>
1588		<param name="target" type="GLenum"/>
1589		<param name="level" type="GLint"/>
1590		<param name="xoffset" type="GLint"/>
1591		<param name="yoffset" type="GLint"/>
1592		<param name="zoffset" type="GLint"/>
1593		<param name="width" type="GLsizei"/>
1594		<param name="height" type="GLsizei"/>
1595		<param name="depth" type="GLsizei"/>
1596		<param name="format" type="GLenum"/>
1597		<param name="imagesize" type="GLsizei"/>
1598		<param name="data" type="const GLvoid *"/>
1599	</proto>
1600</template>
1601
1602<template name="ActiveTexture">
1603	<proto>
1604		<return type="void"/>
1605		<param name="texture" type="GLenum"/>
1606	</proto>
1607</template>
1608
1609<template name="ClientActiveTexture">
1610	<proto>
1611		<return type="void"/>
1612		<param name="texture" type="GLenum"/>
1613	</proto>
1614</template>
1615
1616<template name="SampleCoverage">
1617	<proto>
1618		<return type="void"/>
1619		<param name="value" type="GLtype"/>
1620		<param name="invert" type="GLboolean"/>
1621	</proto>
1622</template>
1623
1624<template name="CompressedTexImage2D">
1625	<proto>
1626		<return type="void"/>
1627		<param name="target" type="GLenum"/>
1628		<param name="level" type="GLint"/>
1629		<param name="internalFormat" type="GLenum"/>
1630		<param name="width" type="GLsizei"/>
1631		<param name="height" type="GLsizei"/>
1632		<param name="border" type="GLint"/>
1633		<param name="imageSize" type="GLsizei"/>
1634		<param name="data" type="const GLvoid *"/>
1635	</proto>
1636</template>
1637
1638<template name="CompressedTexSubImage2D">
1639	<proto>
1640		<return type="void"/>
1641		<param name="target" type="GLenum"/>
1642		<param name="level" type="GLint"/>
1643		<param name="xoffset" type="GLint"/>
1644		<param name="yoffset" type="GLint"/>
1645		<param name="width" type="GLsizei"/>
1646		<param name="height" type="GLsizei"/>
1647		<param name="format" type="GLenum"/>
1648		<param name="imageSize" type="GLsizei"/>
1649		<param name="data" type="const GLvoid *"/>
1650	</proto>
1651</template>
1652
1653<template name="BlendFuncSeparate">
1654	<proto>
1655		<return type="void"/>
1656		<param name="srcRGB" type="GLenum"/>
1657		<param name="dstRGB" type="GLenum"/>
1658		<param name="srcAlpha" type="GLenum"/>
1659		<param name="dstAlpha" type="GLenum"/>
1660	</proto>
1661
1662	<desc name="srcRGB">
1663		<value name="GL_ZERO"/>
1664		<value name="GL_ONE"/>
1665		<value name="GL_SRC_COLOR"/>
1666		<value name="GL_ONE_MINUS_SRC_COLOR"/>
1667		<value name="GL_SRC_ALPHA"/>
1668		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
1669		<value name="GL_DST_ALPHA"/>
1670		<value name="GL_ONE_MINUS_DST_ALPHA"/>
1671		<value name="GL_DST_COLOR"/>
1672		<value name="GL_ONE_MINUS_DST_COLOR"/>
1673		<value name="GL_SRC_ALPHA_SATURATE"/>
1674
1675		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
1676		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
1677		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
1678		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
1679	</desc>
1680
1681	<desc name="dstRGB">
1682		<value name="GL_ZERO"/>
1683		<value name="GL_ONE"/>
1684		<value name="GL_SRC_COLOR"/>
1685		<value name="GL_ONE_MINUS_SRC_COLOR"/>
1686		<value name="GL_SRC_ALPHA"/>
1687		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
1688		<value name="GL_DST_ALPHA"/>
1689		<value name="GL_ONE_MINUS_DST_ALPHA"/>
1690		<value name="GL_DST_COLOR"/>
1691		<value name="GL_ONE_MINUS_DST_COLOR"/>
1692
1693		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
1694		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
1695		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
1696		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
1697	</desc>
1698
1699	<desc name="srcAlpha">
1700		<value name="GL_ZERO"/>
1701		<value name="GL_ONE"/>
1702		<value name="GL_SRC_COLOR"/>
1703		<value name="GL_ONE_MINUS_SRC_COLOR"/>
1704		<value name="GL_SRC_ALPHA"/>
1705		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
1706		<value name="GL_DST_ALPHA"/>
1707		<value name="GL_ONE_MINUS_DST_ALPHA"/>
1708		<value name="GL_DST_COLOR"/>
1709		<value name="GL_ONE_MINUS_DST_COLOR"/>
1710		<value name="GL_SRC_ALPHA_SATURATE"/>
1711
1712		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
1713		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
1714		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
1715		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
1716	</desc>
1717
1718	<desc name="dstAlpha">
1719		<value name="GL_ZERO"/>
1720		<value name="GL_ONE"/>
1721		<value name="GL_SRC_COLOR"/>
1722		<value name="GL_ONE_MINUS_SRC_COLOR"/>
1723		<value name="GL_SRC_ALPHA"/>
1724		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
1725		<value name="GL_DST_ALPHA"/>
1726		<value name="GL_ONE_MINUS_DST_ALPHA"/>
1727		<value name="GL_DST_COLOR"/>
1728		<value name="GL_ONE_MINUS_DST_COLOR"/>
1729
1730		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
1731		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
1732		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
1733		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
1734	</desc>
1735</template>
1736
1737<template name="PointParameter">
1738	<proto>
1739		<return type="void"/>
1740		<param name="pname" type="GLenum"/>
1741		<vector name="params" type="const GLtype *" size="dynamic">
1742			<param name="param" type="GLtype"/>
1743		</vector>
1744	</proto>
1745
1746	<desc name="pname">
1747		<value name="GL_POINT_SIZE_MIN"/>
1748		<value name="GL_POINT_SIZE_MAX"/>
1749		<value name="GL_POINT_FADE_THRESHOLD_SIZE"/>
1750
1751		<desc name="params" vector_size="1"/>
1752	</desc>
1753
1754	<desc name="pname">
1755		<value name="GL_POINT_DISTANCE_ATTENUATION"/>
1756		<desc name="params" vector_size="3"/>
1757	</desc>
1758</template>
1759
1760<template name="VertexAttrib">
1761	<proto>
1762		<return type="void"/>
1763		<param name="index" type="GLuint"/>
1764		<vector name="v" type="const GLtype *" size="dynamic">
1765			<param name="x" type="GLtype"/>
1766			<param name="y" type="GLtype"/>
1767			<param name="z" type="GLtype"/>
1768			<param name="w" type="GLtype"/>
1769		</vector>
1770	</proto>
1771</template>
1772
1773<template name="VertexAttribPointer">
1774	<proto>
1775		<return type="void"/>
1776		<param name="index" type="GLuint"/>
1777		<param name="size" type="GLint"/>
1778		<param name="type" type="GLenum"/>
1779		<param name="normalized" type="GLboolean"/>
1780		<param name="stride" type="GLsizei"/>
1781		<param name="pointer" type="const GLvoid *"/>
1782	</proto>
1783
1784	<desc name="type" error="GL_INVALID_VALUE">
1785		<value name="GL_BYTE"/>
1786		<value name="GL_UNSIGNED_BYTE"/>
1787		<value name="GL_SHORT"/>
1788		<value name="GL_UNSIGNED_SHORT"/>
1789		<value name="GL_FLOAT"/>
1790		<value name="GL_FIXED"/>
1791		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
1792		<value name="GL_UNSIGNED_INT_10_10_10_2_OES" category="OES_vertex_type_10_10_10_2"/>
1793		<value name="GL_INT_10_10_10_2_OES" category="OES_vertex_type_10_10_10_2"/>
1794	</desc>
1795
1796	<desc name="type" category="OES_vertex_type_10_10_10_2">
1797		<value name="GL_UNSIGNED_INT_10_10_10_2_OES"/>
1798		<value name="GL_INT_10_10_10_2_OES"/>
1799
1800		<desc name="size">
1801			<value name="3"/>
1802			<value name="4"/>
1803		</desc>
1804	</desc>
1805</template>
1806
1807<template name="EnableVertexAttribArray">
1808	<proto>
1809		<return type="void"/>
1810		<param name="index" type="GLuint"/>
1811	</proto>
1812</template>
1813
1814<template name="DisableVertexAttribArray">
1815	<proto>
1816		<return type="void"/>
1817		<param name="index" type="GLuint"/>
1818	</proto>
1819</template>
1820
1821<template name="IsProgram" direction="get">
1822	<proto>
1823		<return type="GLboolean"/>
1824		<param name="program" type="GLuint"/>
1825	</proto>
1826</template>
1827
1828<template name="GetProgram" direction="get">
1829	<proto>
1830		<return type="void"/>
1831		<param name="program" type="GLuint"/>
1832		<param name="pname" type="GLenum"/>
1833		<vector name="params" type="GLtype *" size="dynamic"/>
1834	</proto>
1835</template>
1836
1837<template name="GetVertexAttrib" direction="get">
1838	<proto>
1839		<return type="void"/>
1840		<param name="index" type="GLuint"/>
1841		<param name="pname" type="GLenum"/>
1842		<vector name="params" type="GLtype *" size="dynamic"/>
1843	</proto>
1844
1845	<desc name="pname">
1846		<value name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
1847		<value name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
1848		<value name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
1849		<value name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
1850		<value name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
1851		<value name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
1852
1853		<desc name="params" vector_size="1" convert="false"/>
1854	</desc>
1855
1856	<desc name="pname">
1857		<value name="GL_CURRENT_VERTEX_ATTRIB"/>
1858		<desc name="params" vector_size="16?" convert="false"/>
1859	</desc>
1860</template>
1861
1862<template name="GetVertexAttribPointer" direction="get">
1863	<proto>
1864		<return type="void"/>
1865		<param name="index" type="GLuint"/>
1866		<param name="pname" type="GLenum"/>
1867		<vector name="pointer" type="GLvoid **" size="dynamic"/>
1868	</proto>
1869</template>
1870
1871<template name="GetBufferPointer" direction="get">
1872	<proto>
1873		<return type="void"/>
1874		<param name="target" type="GLenum"/>
1875		<param name="pname" type="GLenum"/>
1876		<vector name="params" type="GLvoid **" size="dynamic"/>
1877	</proto>
1878
1879	<desc name="target">
1880		<value name="GL_ARRAY_BUFFER"/>
1881		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
1882	</desc>
1883</template>
1884
1885<template name="MapBuffer" direction="get">
1886	<proto>
1887		<return type="void *"/>
1888		<param name="target" type="GLenum"/>
1889		<param name="access" type="GLenum"/>
1890	</proto>
1891
1892	<desc name="target">
1893		<value name="GL_ARRAY_BUFFER"/>
1894		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
1895	</desc>
1896
1897	<desc name="access">
1898		<value name="GL_WRITE_ONLY_OES"/>
1899	</desc>
1900</template>
1901
1902<template name="UnmapBuffer" direction="get">
1903	<proto>
1904		<return type="GLboolean"/>
1905		<param name="target" type="GLenum"/>
1906	</proto>
1907
1908	<desc name="target">
1909		<value name="GL_ARRAY_BUFFER"/>
1910		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
1911	</desc>
1912</template>
1913
1914<template name="BindBuffer">
1915	<proto>
1916		<return type="void"/>
1917		<param name="target" type="GLenum"/>
1918		<param name="buffer" type="GLuint"/>
1919	</proto>
1920
1921	<desc name="target">
1922		<value name="GL_ARRAY_BUFFER"/>
1923		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
1924	</desc>
1925</template>
1926
1927<template name="BufferData">
1928	<proto>
1929		<return type="void"/>
1930		<param name="target" type="GLenum"/>
1931		<param name="size" type="GLsizeiptr"/>
1932		<param name="data" type="const GLvoid *"/>
1933		<param name="usage" type="GLenum"/>
1934	</proto>
1935
1936	<desc name="target">
1937		<value name="GL_ARRAY_BUFFER"/>
1938		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
1939	</desc>
1940
1941	<desc name="usage">
1942		<value name="GL_STATIC_DRAW"/>
1943		<value name="GL_DYNAMIC_DRAW"/>
1944		<value name="GL_STREAM_DRAW" category="GLES2.0"/>
1945	</desc>
1946</template>
1947
1948<template name="BufferSubData">
1949	<proto>
1950		<return type="void"/>
1951		<param name="target" type="GLenum"/>
1952		<param name="offset" type="GLintptr"/>
1953		<param name="size" type="GLsizeiptr"/>
1954		<param name="data" type="const GLvoid *"/>
1955	</proto>
1956
1957	<desc name="target">
1958		<value name="GL_ARRAY_BUFFER"/>
1959		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
1960	</desc>
1961</template>
1962
1963<template name="DeleteBuffers">
1964	<proto>
1965		<return type="void"/>
1966		<param name="n" type="GLsizei"/>
1967		<param name="buffer" type="const GLuint *"/>
1968	</proto>
1969</template>
1970
1971<template name="GenBuffers" direction="get">
1972	<proto>
1973		<return type="void"/>
1974		<param name="n" type="GLsizei"/>
1975		<param name="buffer" type="GLuint *"/>
1976	</proto>
1977</template>
1978
1979<template name="GetBufferParameter" direction="get">
1980	<proto>
1981		<return type="void"/>
1982		<param name="target" type="GLenum"/>
1983		<param name="pname" type="GLenum"/>
1984		<vector name="params" type="GLtype *" size="dynamic"/>
1985	</proto>
1986
1987	<desc name="target">
1988		<value name="GL_ARRAY_BUFFER"/>
1989		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
1990	</desc>
1991
1992	<desc name="pname">
1993		<value name="GL_BUFFER_SIZE"/>
1994		<value name="GL_BUFFER_USAGE"/>
1995		<value name="GL_BUFFER_ACCESS_OES" category="OES_mapbuffer"/>
1996		<value name="GL_BUFFER_MAPPED_OES" category="OES_mapbuffer"/>
1997	</desc>
1998</template>
1999
2000<template name="IsBuffer" direction="get">
2001	<proto>
2002		<return type="GLboolean"/>
2003		<param name="buffer" type="GLuint"/>
2004	</proto>
2005</template>
2006
2007<template name="CreateShader">
2008	<proto>
2009		<return type="GLuint"/>
2010		<param name="type" type="GLenum"/>
2011	</proto>
2012</template>
2013
2014<template name="ShaderSource">
2015	<proto>
2016		<return type="void"/>
2017		<param name="shader" type="GLuint"/>
2018		<param name="count" type="GLsizei"/>
2019		<param name="string" type="const GLchar * const *"/>
2020		<param name="length" type="const int *"/>
2021	</proto>
2022</template>
2023
2024<template name="CompileShader">
2025	<proto>
2026		<return type="void"/>
2027		<param name="shader" type="GLuint"/>
2028	</proto>
2029</template>
2030
2031<template name="ReleaseShaderCompiler">
2032	<proto>
2033		<return type="void"/>
2034	</proto>
2035</template>
2036
2037<template name="DeleteShader">
2038	<proto>
2039		<return type="void"/>
2040		<param name="shader" type="GLuint"/>
2041	</proto>
2042</template>
2043
2044<template name="ShaderBinary">
2045	<proto>
2046		<return type="void"/>
2047		<param name="n" type="GLsizei"/>
2048		<param name="shaders" type="const GLuint *"/>
2049		<param name="binaryformat" type="GLenum"/>
2050		<param name="binary" type="const GLvoid *"/>
2051		<param name="length" type="GLsizei"/>
2052	</proto>
2053</template>
2054
2055<template name="CreateProgram">
2056	<proto>
2057		<return type="GLuint"/>
2058	</proto>
2059</template>
2060
2061<template name="AttachShader">
2062	<proto>
2063		<return type="void"/>
2064		<param name="program" type="GLuint"/>
2065		<param name="shader" type="GLuint"/>
2066	</proto>
2067</template>
2068
2069<template name="DetachShader">
2070	<proto>
2071		<return type="void"/>
2072		<param name="program" type="GLuint"/>
2073		<param name="shader" type="GLuint"/>
2074	</proto>
2075</template>
2076
2077<template name="LinkProgram">
2078	<proto>
2079		<return type="void"/>
2080		<param name="program" type="GLuint"/>
2081	</proto>
2082</template>
2083
2084<template name="UseProgram">
2085	<proto>
2086		<return type="void"/>
2087		<param name="program" type="GLuint"/>
2088	</proto>
2089</template>
2090
2091<template name="DeleteProgram">
2092	<proto>
2093		<return type="void"/>
2094		<param name="program" type="GLuint"/>
2095	</proto>
2096</template>
2097
2098<template name="GetActiveAttrib" direction="get">
2099	<proto>
2100		<return type="void"/>
2101		<param name="program" type="GLuint"/>
2102		<param name="index" type="GLuint"/>
2103		<param name="bufSize" type="GLsizei"/>
2104		<param name="length" type="GLsizei *"/>
2105		<param name="size" type="GLint *"/>
2106		<param name="type" type="GLenum *"/>
2107		<param name="name" type="GLchar *"/>
2108	</proto>
2109</template>
2110
2111<template name="GetAttribLocation" direction="get">
2112	<proto>
2113		<return type="GLint"/>
2114		<param name="program" type="GLuint"/>
2115		<param name="name" type="const char *"/>
2116	</proto>
2117</template>
2118
2119<template name="BindAttribLocation">
2120	<proto>
2121		<return type="void"/>
2122		<param name="program" type="GLuint"/>
2123		<param name="index" type="GLuint"/>
2124		<param name="name" type="const char *"/>
2125	</proto>
2126</template>
2127
2128<template name="GetUniformLocation" direction="get">
2129	<proto>
2130		<return type="GLint"/>
2131		<param name="program" type="GLuint"/>
2132		<param name="name" type="const char *"/>
2133	</proto>
2134</template>
2135
2136<template name="GetActiveUniform" direction="get">
2137	<proto>
2138		<return type="void"/>
2139		<param name="program" type="GLuint"/>
2140		<param name="index" type="GLuint"/>
2141		<param name="bufSize" type="GLsizei"/>
2142		<param name="length" type="GLsizei *"/>
2143		<param name="size" type="GLint *"/>
2144		<param name="type" type="GLenum *"/>
2145		<param name="name" type="GLchar *"/>
2146	</proto>
2147</template>
2148
2149<template name="Uniform">
2150	<proto>
2151		<return type="void"/>
2152		<param name="location" type="GLint"/>
2153		<param name="count" type="GLsizei" hide_if_expanded="true"/>
2154		<vector name="values" type="const GLtype *" size="dynamic">
2155			<param name="v0" type="GLtype"/>
2156			<param name="v1" type="GLtype"/>
2157			<param name="v2" type="GLtype"/>
2158			<param name="v3" type="GLtype"/>
2159		</vector>
2160	</proto>
2161</template>
2162
2163<template name="UniformMatrix">
2164	<proto>
2165		<return type="void"/>
2166		<param name="location" type="GLint"/>
2167		<param name="count" type="GLsizei"/>
2168		<param name="transpose" type="GLboolean"/>
2169		<vector name="value" type="const GLtype *" size="dynamic"/>
2170	</proto>
2171</template>
2172
2173<template name="ValidateProgram">
2174	<proto>
2175		<return type="void"/>
2176		<param name="program" type="GLuint"/>
2177	</proto>
2178</template>
2179
2180<template name="GenerateMipmap">
2181	<proto>
2182		<return type="void"/>
2183		<param name="target" type="GLenum"/>
2184	</proto>
2185
2186	<desc name="target">
2187		<value name="GL_TEXTURE_2D"/>
2188		<value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
2189		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
2190		<value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
2191	</desc>
2192</template>
2193
2194<template name="BindFramebuffer">
2195	<proto>
2196		<return type="void"/>
2197		<param name="target" type="GLenum"/>
2198		<param name="framebuffer" type="GLuint"/>
2199	</proto>
2200</template>
2201
2202<template name="DeleteFramebuffers">
2203	<proto>
2204		<return type="void"/>
2205		<param name="n" type="GLsizei"/>
2206		<param name="framebuffers" type="const GLuint *"/>
2207	</proto>
2208</template>
2209
2210<template name="GenFramebuffers">
2211	<proto>
2212		<return type="void"/>
2213		<param name="n" type="GLsizei"/>
2214		<param name="ids" type="GLuint *"/>
2215	</proto>
2216</template>
2217
2218<template name="BindRenderbuffer">
2219	<proto>
2220		<return type="void"/>
2221		<param name="target" type="GLenum"/>
2222		<param name="renderbuffer" type="GLuint"/>
2223	</proto>
2224</template>
2225
2226<template name="DeleteRenderbuffers">
2227	<proto>
2228		<return type="void"/>
2229		<param name="n" type="GLsizei"/>
2230		<param name="renderbuffers" type="const GLuint *"/>
2231	</proto>
2232</template>
2233
2234<template name="GenRenderbuffers">
2235	<proto>
2236		<return type="void"/>
2237		<param name="n" type="GLsizei"/>
2238		<param name="renderbuffers" type="GLuint *"/>
2239	</proto>
2240</template>
2241
2242<template name="RenderbufferStorage">
2243	<proto>
2244		<return type="void"/>
2245		<param name="target" type="GLenum"/>
2246		<param name="internalFormat" type="GLenum"/>
2247		<param name="width" type="GLsizei"/>
2248		<param name="height" type="GLsizei"/>
2249	</proto>
2250
2251	<desc name="internalFormat">
2252		<value name="GL_DEPTH_COMPONENT16_OES" category="OES_framebuffer_object"/>
2253		<value name="GL_RGBA4_OES" category="OES_framebuffer_object"/>
2254		<value name="GL_RGB5_A1_OES" category="OES_framebuffer_object"/>
2255		<value name="GL_RGB565_OES" category="OES_framebuffer_object"/>
2256		<value name="GL_STENCIL_INDEX8_OES" category="OES_stencil8"/>
2257
2258		<value name="GL_DEPTH_COMPONENT16" category="GLES2.0"/>
2259		<value name="GL_RGBA4" category="GLES2.0"/>
2260		<value name="GL_RGB5_A1" category="GLES2.0"/>
2261		<value name="GL_RGB565" category="GLES2.0"/>
2262		<value name="GL_STENCIL_INDEX8" category="GLES2.0"/>
2263
2264		<value name="GL_DEPTH_COMPONENT24_OES" category="OES_depth24"/>
2265		<value name="GL_DEPTH_COMPONENT32_OES" category="OES_depth32"/>
2266		<value name="GL_RGB8_OES" category="OES_rgb8_rgba8"/>
2267		<value name="GL_RGBA8_OES" category="OES_rgb8_rgba8"/>
2268		<value name="GL_STENCIL_INDEX1_OES" category="OES_stencil1"/>
2269		<value name="GL_STENCIL_INDEX4_OES" category="OES_stencil4"/>
2270		<value name="GL_DEPTH24_STENCIL8_OES" category="OES_packed_depth_stencil"/>
2271	</desc>
2272</template>
2273
2274<template name="FramebufferRenderbuffer">
2275	<proto>
2276		<return type="void"/>
2277		<param name="target" type="GLenum"/>
2278		<param name="attachment" type="GLenum"/>
2279		<param name="renderbuffertarget" type="GLenum"/>
2280		<param name="renderbuffer" type="GLuint"/>
2281	</proto>
2282</template>
2283
2284<template name="FramebufferTexture2D">
2285	<proto>
2286		<return type="void"/>
2287		<param name="target" type="GLenum"/>
2288		<param name="attachment" type="GLenum"/>
2289		<param name="textarget" type="GLenum"/>
2290		<param name="texture" type="GLuint"/>
2291		<param name="level" type="GLint"/>
2292	</proto>
2293
2294	<desc name="textarget" error="GL_INVALID_OPERATION">
2295		<value name="GL_TEXTURE_2D"/>
2296		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
2297		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
2298		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
2299		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
2300		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
2301		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
2302		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
2303		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
2304		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
2305		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
2306		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
2307		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
2308	</desc>
2309	<!-- According to the base specification, "level" must be 0.  But
2310	     extension GL_OES_fbo_render_mipmap lifts that restriction,
2311	     so no restriction is placed here. -->
2312</template>
2313
2314<template name="FramebufferTexture3D">
2315	<proto>
2316		<return type="void"/>
2317		<param name="target" type="GLenum"/>
2318		<param name="attachment" type="GLenum"/>
2319		<param name="textarget" type="GLenum"/>
2320		<param name="texture" type="GLuint"/>
2321		<param name="level" type="GLint"/>
2322		<param name="zoffset" type="GLint"/>
2323	</proto>
2324</template>
2325
2326<template name="CheckFramebufferStatus" direction="get">
2327	<proto>
2328		<return type="GLenum"/>
2329		<param name="target" type="GLenum"/>
2330	</proto>
2331</template>
2332
2333<template name="GetFramebufferAttachmentParameter" direction="get">
2334	<proto>
2335		<return type="void"/>
2336		<param name="target" type="GLenum"/>
2337		<param name="attachment" type="GLenum"/>
2338		<param name="pname" type="GLenum"/>
2339		<vector name="params" type="GLtype *" size="dynamic"/>
2340	</proto>
2341
2342	<desc name="pname">
2343		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES" category="OES_framebuffer_object"/>
2344		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES" category="OES_framebuffer_object"/>
2345		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES" category="OES_framebuffer_object"/>
2346		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES" category="OES_framebuffer_object"/>
2347
2348		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE" category="GLES2.0"/>
2349		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" category="GLES2.0"/>
2350		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" category="GLES2.0"/>
2351		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" category="GLES2.0"/>
2352		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES" category="OES_texture_3D"/>
2353
2354		<desc name="params" vector_size="1" convert="false"/>
2355	</desc>
2356</template>
2357
2358<template name="GetRenderbufferParameter" direction="get">
2359	<proto>
2360		<return type="void"/>
2361		<param name="target" type="GLenum"/>
2362		<param name="pname" type="GLenum"/>
2363		<vector name="params" type="GLtype *" size="dynamic"/>
2364	</proto>
2365
2366	<desc name="pname" category="OES_framebuffer_object">
2367		<value name="GL_RENDERBUFFER_WIDTH_OES"/>
2368		<value name="GL_RENDERBUFFER_HEIGHT_OES"/>
2369		<value name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES"/>
2370		<value name="GL_RENDERBUFFER_RED_SIZE_OES"/>
2371		<value name="GL_RENDERBUFFER_GREEN_SIZE_OES"/>
2372		<value name="GL_RENDERBUFFER_BLUE_SIZE_OES"/>
2373		<value name="GL_RENDERBUFFER_ALPHA_SIZE_OES"/>
2374		<value name="GL_RENDERBUFFER_DEPTH_SIZE_OES"/>
2375		<value name="GL_RENDERBUFFER_STENCIL_SIZE_OES"/>
2376
2377		<desc name="params" vector_size="1" convert="false"/>
2378	</desc>
2379
2380	<desc name="pname" category="GLES2.0">
2381		<value name="GL_RENDERBUFFER_WIDTH"/>
2382		<value name="GL_RENDERBUFFER_HEIGHT"/>
2383		<value name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
2384		<value name="GL_RENDERBUFFER_RED_SIZE"/>
2385		<value name="GL_RENDERBUFFER_GREEN_SIZE"/>
2386		<value name="GL_RENDERBUFFER_BLUE_SIZE"/>
2387		<value name="GL_RENDERBUFFER_ALPHA_SIZE"/>
2388		<value name="GL_RENDERBUFFER_DEPTH_SIZE"/>
2389		<value name="GL_RENDERBUFFER_STENCIL_SIZE"/>
2390
2391		<desc name="params" vector_size="1" convert="false"/>
2392	</desc>
2393</template>
2394
2395<template name="IsRenderbuffer" direction="get">
2396	<proto>
2397		<return type="GLboolean"/>
2398		<param name="renderbuffer" type="GLuint"/>
2399	</proto>
2400</template>
2401
2402<template name="IsFramebuffer" direction="get">
2403	<proto>
2404		<return type="GLboolean"/>
2405		<param name="framebuffer" type="GLuint"/>
2406	</proto>
2407</template>
2408
2409<template name="IsShader" direction="get">
2410	<proto>
2411		<return type="GLboolean"/>
2412		<param name="shader" type="GLuint"/>
2413	</proto>
2414</template>
2415
2416<template name="GetShader" direction="get">
2417	<proto>
2418		<return type="void"/>
2419		<param name="shader" type="GLuint"/>
2420		<param name="pname" type="GLenum"/>
2421		<vector name="params" type="GLtype *" size="dynamic"/>
2422	</proto>
2423</template>
2424
2425<template name="GetAttachedShaders" direction="get">
2426	<proto>
2427		<return type="void"/>
2428		<param name="program" type="GLuint"/>
2429		<param name="maxCount" type="GLsizei"/>
2430		<param name="count" type="GLsizei *"/>
2431		<param name="shaders" type="GLuint *"/>
2432	</proto>
2433</template>
2434
2435<template name="GetShaderInfoLog" direction="get">
2436	<proto>
2437		<return type="void"/>
2438		<param name="shader" type="GLuint"/>
2439		<param name="bufSize" type="GLsizei"/>
2440		<param name="length" type="GLsizei *"/>
2441		<param name="infoLog" type="GLchar *"/>
2442	</proto>
2443</template>
2444
2445<template name="GetProgramInfoLog" direction="get">
2446	<proto>
2447		<return type="void"/>
2448		<param name="program" type="GLuint"/>
2449		<param name="bufSize" type="GLsizei"/>
2450		<param name="length" type="GLsizei *"/>
2451		<param name="infoLog" type="GLchar *"/>
2452	</proto>
2453</template>
2454
2455<template name="GetShaderSource" direction="get">
2456	<proto>
2457		<return type="void"/>
2458		<param name="shader" type="GLuint"/>
2459		<param name="bufSize" type="GLsizei"/>
2460		<param name="length" type="GLsizei *"/>
2461		<param name="source" type="GLchar *"/>
2462	</proto>
2463</template>
2464
2465<template name="GetShaderPrecisionFormat" direction="get">
2466	<proto>
2467		<return type="void"/>
2468		<param name="shadertype" type="GLenum"/>
2469		<param name="precisiontype" type="GLenum"/>
2470		<param name="range" type="GLint *"/>
2471		<param name="precision" type="GLint *"/>
2472	</proto>
2473</template>
2474
2475<template name="GetUniform" direction="get">
2476	<proto>
2477		<return type="void"/>
2478		<param name="program" type="GLuint"/>
2479		<param name="location" type="GLint"/>
2480		<vector name="params" type="GLtype *" size="dynamic"/>
2481	</proto>
2482</template>
2483
2484<template name="QueryMatrix" direction="get">
2485	<proto>
2486		<return type="GLbitfield"/>
2487		<vector name="mantissa" type="GLtype *" size="16"/>
2488		<vector name="exponent" type="GLint *" size="16"/>
2489	</proto>
2490</template>
2491
2492<template name="DrawTex">
2493	<proto>
2494		<return type="void"/>
2495		<vector name="coords" type="const GLtype *" size="5">
2496			<param name="x" type="GLtype"/>
2497			<param name="y" type="GLtype"/>
2498			<param name="z" type="GLtype"/>
2499			<param name="w" type="GLtype"/>
2500			<param name="h" type="GLtype"/>
2501		</vector>
2502	</proto>
2503</template>
2504
2505<template name="MultiDrawArrays">
2506	<proto>
2507		<return type="void"/>
2508		<param name="mode" type="GLenum"/>
2509		<param name="first" type="const GLint *"/>
2510		<param name="count" type="const GLsizei *"/>
2511		<param name="primcount" type="GLsizei"/>
2512	</proto>
2513
2514	<desc name="mode">
2515		<value name="GL_POINTS"/>
2516		<value name="GL_LINES"/>
2517		<value name="GL_LINE_LOOP"/>
2518		<value name="GL_LINE_STRIP"/>
2519		<value name="GL_TRIANGLES"/>
2520		<value name="GL_TRIANGLE_STRIP"/>
2521		<value name="GL_TRIANGLE_FAN"/>
2522	</desc>
2523</template>
2524
2525<template name="MultiDrawElements">
2526	<proto>
2527		<return type="void"/>
2528		<param name="mode" type="GLenum"/>
2529		<param name="count" type="const GLsizei *"/>
2530		<param name="type" type="GLenum"/>
2531		<param name="indices" type="const GLvoid **"/>
2532		<param name="primcount" type="GLsizei"/>
2533	</proto>
2534
2535	<desc name="mode">
2536		<value name="GL_POINTS"/>
2537		<value name="GL_LINES"/>
2538		<value name="GL_LINE_LOOP"/>
2539		<value name="GL_LINE_STRIP"/>
2540		<value name="GL_TRIANGLES"/>
2541		<value name="GL_TRIANGLE_STRIP"/>
2542		<value name="GL_TRIANGLE_FAN"/>
2543	</desc>
2544</template>
2545
2546<template name="EGLImageTargetTexture2D">
2547	<proto>
2548		<return type="void"/>
2549		<param name="target" type="GLenum"/>
2550		<param name="image" type="GLeglImageOES"/>
2551	</proto>
2552</template>
2553
2554<template name="EGLImageTargetRenderbufferStorage">
2555	<proto>
2556		<return type="void"/>
2557		<param name="target" type="GLenum"/>
2558		<param name="image" type="GLeglImageOES"/>
2559	</proto>
2560</template>
2561
2562<template name="DrawBuffers">
2563	<proto>
2564		<return type="void"/>
2565		<param name="n" type="GLsizei"/>
2566		<param name="bufs" type="const GLenum *"/>
2567	</proto>
2568</template>
2569
2570<template name="ReadBuffer">
2571	<proto>
2572		<return type="void"/>
2573		<param name="mode" type="GLenum"/>
2574	</proto>
2575</template>
2576
2577<api name="mesa" implementation="true">
2578	<category name="MESA"/>
2579
2580	<function name="Color4f"  default_prefix="_es_" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2581	<function name="ClipPlane" template="ClipPlane" gltype="GLdouble"/>
2582	<function name="CullFace" template="CullFace"/>
2583
2584	<function name="Fogf" template="Fog" gltype="GLfloat" expand_vector="true"/>
2585	<function name="Fogfv" template="Fog" gltype="GLfloat"/>
2586
2587	<function name="FrontFace" template="FrontFace"/>
2588	<function name="Hint" template="Hint"/>
2589
2590	<function name="Lightf" template="Light" gltype="GLfloat" expand_vector="true"/>
2591	<function name="Lightfv" template="Light" gltype="GLfloat"/>
2592
2593	<function name="LightModelf" template="LightModel" gltype="GLfloat" expand_vector="true"/>
2594	<function name="LightModelfv" template="LightModel" gltype="GLfloat"/>
2595
2596	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
2597
2598	<function name="Materialf" default_prefix="_es_" template="Material" gltype="GLfloat" expand_vector="true"/>
2599	<function name="Materialfv" default_prefix="_es_" template="Material" gltype="GLfloat"/>
2600
2601	<function name="PointSize" template="PointSize" gltype="GLfloat"/>
2602	<function name="PointSizePointer" template="PointSizePointer"/>
2603
2604	<function name="Scissor" template="Scissor"/>
2605	<function name="ShadeModel" template="ShadeModel"/>
2606
2607	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
2608	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
2609	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
2610	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
2611
2612	<function name="TexImage2D" template="TexImage2D"/>
2613
2614	<function name="TexEnvf" template="TexEnv" gltype="GLfloat" expand_vector="true"/>
2615	<function name="TexEnvi" template="TexEnv" gltype="GLint" expand_vector="true"/>
2616	<function name="TexEnvfv" template="TexEnv" gltype="GLfloat"/>
2617	<function name="TexEnviv" template="TexEnv" gltype="GLint"/>
2618
2619	<function name="TexGenf" template="TexGen" gltype="GLfloat" expand_vector="true"/>
2620	<function name="TexGenfv" template="TexGen" gltype="GLfloat"/>
2621
2622	<function name="Clear" template="Clear"/>
2623	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
2624	<function name="ClearStencil" template="ClearStencil"/>
2625	<function name="ClearDepth" template="ClearDepth" gltype="GLclampd"/>
2626	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
2627
2628	<function name="StencilMask" template="StencilMask"/>
2629	<function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
2630	<function name="ColorMask" template="ColorMask"/>
2631	<function name="DepthMask" template="DepthMask"/>
2632	<function name="Disable" template="Disable"/>
2633	<function name="Enable" template="Enable"/>
2634	<function name="Finish" template="Finish"/>
2635	<function name="Flush" template="Flush"/>
2636
2637	<function name="AlphaFunc" template="AlphaFunc" gltype="GLclampf"/>
2638
2639	<function name="BlendFunc" template="BlendFunc"/>
2640	<function name="LogicOp" template="LogicOp"/>
2641	<function name="StencilFunc" template="StencilFunc"/>
2642	<function name="StencilFuncSeparate" template="StencilFuncSeparate"/>
2643	<function name="StencilOp" template="StencilOp"/>
2644	<function name="StencilOpSeparate" template="StencilOpSeparate"/>
2645	<function name="DepthFunc" template="DepthFunc"/>
2646	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
2647
2648	<function name="ReadPixels" template="ReadPixels"/>
2649	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
2650	<function name="GetClipPlane" template="GetClipPlane" gltype="GLdouble"/>
2651	<function name="GetError" template="GetError"/>
2652	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
2653	<function name="GetFixedv" template="GetState" gltype="GLfixed"/>
2654	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
2655
2656	<function name="GetLightfv" template="GetLight" gltype="GLfloat"/>
2657	<function name="GetMaterialfv" template="GetMaterial" gltype="GLfloat"/>
2658	<function name="GetMaterialiv" template="GetMaterial" gltype="GLint"/>
2659
2660	<function name="GetString" template="GetString"/>
2661
2662	<function name="GetTexEnvfv" template="GetTexEnv" gltype="GLfloat"/>
2663	<function name="GetTexEnviv" template="GetTexEnv" gltype="GLint"/>
2664	<function name="GetTexGenfv" template="GetTexGen" gltype="GLfloat"/>
2665	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
2666	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
2667
2668	<function name="IsEnabled" template="IsEnabled"/>
2669
2670	<function name="DepthRange" template="DepthRange" gltype="GLclampd"/>
2671	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
2672	<function name="Frustum" template="Frustum" gltype="GLdouble"/>
2673
2674	<function name="LoadIdentity" template="LoadIdentity"/>
2675	<function name="LoadMatrixf" template="LoadMatrix" gltype="GLfloat"/>
2676	<function name="MatrixMode" template="MatrixMode"/>
2677
2678	<function name="MultMatrixf" template="MultMatrix" gltype="GLfloat"/>
2679	<function name="Ortho" template="Ortho" gltype="GLdouble"/>
2680	<function name="PopMatrix" template="PopMatrix"/>
2681	<function name="PushMatrix" template="PushMatrix"/>
2682
2683	<function name="Rotatef" template="Rotate" gltype="GLfloat"/>
2684	<function name="Scalef" template="Scale" gltype="GLfloat"/>
2685	<function name="Translatef" template="Translate" gltype="GLfloat"/>
2686
2687	<function name="Viewport" template="Viewport"/>
2688
2689	<function name="ColorPointer" template="ColorPointer"/>
2690	<function name="DisableClientState" template="DisableClientState"/>
2691	<function name="DrawArrays" template="DrawArrays"/>
2692	<function name="DrawElements" template="DrawElements"/>
2693	<function name="EnableClientState" template="EnableClientState"/>
2694
2695	<function name="GetPointerv" template="GetPointer"/>
2696	<function name="Normal3f" default_prefix="_es_" template="Normal" gltype="GLfloat" expand_vector="true"/>
2697	<function name="NormalPointer" template="NormalPointer"/>
2698	<function name="TexCoordPointer" template="TexCoordPointer"/>
2699	<function name="VertexPointer" template="VertexPointer"/>
2700
2701	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
2702	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
2703	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
2704	<function name="TexSubImage2D" template="TexSubImage2D"/>
2705
2706	<function name="BindTexture" template="BindTexture"/>
2707	<function name="DeleteTextures" template="DeleteTextures"/>
2708	<function name="GenTextures" template="GenTextures"/>
2709	<function name="IsTexture" template="IsTexture"/>
2710
2711	<function name="BlendColor" template="BlendColor" gltype="GLclampf"/>
2712	<function name="BlendEquation" template="BlendEquation"/>
2713	<function name="BlendEquationSeparateEXT" template="BlendEquationSeparate"/>
2714
2715	<function name="TexImage3D" template="TexImage3D"/>
2716	<function name="TexSubImage3D" template="TexSubImage3D"/>
2717	<function name="CopyTexSubImage3D" template="CopyTexSubImage3D"/>
2718
2719	<function name="CompressedTexImage3DARB" template="CompressedTexImage3D"/>
2720	<function name="CompressedTexSubImage3DARB" template="CompressedTexSubImage3D"/>
2721
2722	<function name="ActiveTextureARB" template="ActiveTexture"/>
2723	<function name="ClientActiveTextureARB" template="ClientActiveTexture"/>
2724
2725	<function name="MultiTexCoord4f" default_prefix="_es_" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2726
2727	<function name="SampleCoverageARB" template="SampleCoverage" gltype="GLclampf"/>
2728
2729	<function name="CompressedTexImage2DARB" template="CompressedTexImage2D"/>
2730	<function name="CompressedTexSubImage2DARB" template="CompressedTexSubImage2D"/>
2731
2732	<function name="BlendFuncSeparateEXT" template="BlendFuncSeparate"/>
2733
2734	<function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
2735	<function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
2736
2737	<function name="VertexAttrib1f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
2738	<function name="VertexAttrib2f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
2739	<function name="VertexAttrib3f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
2740	<function name="VertexAttrib4f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2741	<function name="VertexAttrib1fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
2742	<function name="VertexAttrib2fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
2743	<function name="VertexAttrib3fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
2744	<function name="VertexAttrib4fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
2745
2746	<function name="VertexAttribPointerARB" template="VertexAttribPointer"/>
2747	<function name="EnableVertexAttribArrayARB" template="EnableVertexAttribArray"/>
2748	<function name="DisableVertexAttribArrayARB" template="DisableVertexAttribArray"/>
2749
2750	<function name="IsProgram" template="IsProgram"/>
2751	<function name="GetProgramiv" template="GetProgram" gltype="GLint"/>
2752
2753	<function name="GetVertexAttribfvARB" template="GetVertexAttrib" gltype="GLfloat"/>
2754	<function name="GetVertexAttribivARB" template="GetVertexAttrib" gltype="GLint"/>
2755	<function name="GetVertexAttribPointervARB" template="GetVertexAttribPointer"/>
2756
2757	<function name="GetBufferPointervARB" template="GetBufferPointer"/>
2758	<function name="MapBufferARB" template="MapBuffer"/>
2759	<function name="UnmapBufferARB" template="UnmapBuffer"/>
2760	<function name="BindBufferARB" template="BindBuffer"/>
2761	<function name="BufferDataARB" template="BufferData"/>
2762	<function name="BufferSubDataARB" template="BufferSubData"/>
2763	<function name="DeleteBuffersARB" template="DeleteBuffers"/>
2764	<function name="GenBuffersARB" template="GenBuffers"/>
2765	<function name="GetBufferParameterivARB" template="GetBufferParameter" gltype="GLint"/>
2766	<function name="IsBufferARB" template="IsBuffer"/>
2767
2768	<function name="CreateShader" template="CreateShader"/>
2769	<function name="ShaderSourceARB" template="ShaderSource"/>
2770	<function name="CompileShaderARB" template="CompileShader"/>
2771	<function name="ReleaseShaderCompiler" template="ReleaseShaderCompiler"/>
2772	<function name="DeleteShader" template="DeleteShader"/>
2773	<function name="ShaderBinary" template="ShaderBinary"/>
2774	<function name="CreateProgram" template="CreateProgram"/>
2775	<function name="AttachShader" template="AttachShader"/>
2776	<function name="DetachShader" template="DetachShader"/>
2777	<function name="LinkProgramARB" template="LinkProgram"/>
2778	<function name="UseProgramObjectARB" template="UseProgram"/>
2779	<function name="DeleteProgram" template="DeleteProgram"/>
2780
2781	<function name="GetActiveAttribARB" template="GetActiveAttrib"/>
2782	<function name="GetAttribLocationARB" template="GetAttribLocation"/>
2783	<function name="BindAttribLocationARB" template="BindAttribLocation"/>
2784	<function name="GetUniformLocationARB" template="GetUniformLocation"/>
2785	<function name="GetActiveUniformARB" template="GetActiveUniform"/>
2786
2787	<function name="Uniform1fARB" template="Uniform" gltype="GLfloat" vector_size="1" expand_vector="true"/>
2788	<function name="Uniform2fARB" template="Uniform" gltype="GLfloat" vector_size="2" expand_vector="true"/>
2789	<function name="Uniform3fARB" template="Uniform" gltype="GLfloat" vector_size="3" expand_vector="true"/>
2790	<function name="Uniform4fARB" template="Uniform" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2791	<function name="Uniform1iARB" template="Uniform" gltype="GLint" vector_size="1" expand_vector="true"/>
2792	<function name="Uniform2iARB" template="Uniform" gltype="GLint" vector_size="2" expand_vector="true"/>
2793	<function name="Uniform3iARB" template="Uniform" gltype="GLint" vector_size="3" expand_vector="true"/>
2794	<function name="Uniform4iARB" template="Uniform" gltype="GLint" vector_size="4" expand_vector="true"/>
2795	<function name="Uniform1fvARB" template="Uniform" gltype="GLfloat" vector_size="1"/>
2796	<function name="Uniform2fvARB" template="Uniform" gltype="GLfloat" vector_size="2"/>
2797	<function name="Uniform3fvARB" template="Uniform" gltype="GLfloat" vector_size="3"/>
2798	<function name="Uniform4fvARB" template="Uniform" gltype="GLfloat" vector_size="4"/>
2799	<function name="Uniform1ivARB" template="Uniform" gltype="GLint" vector_size="1"/>
2800	<function name="Uniform2ivARB" template="Uniform" gltype="GLint" vector_size="2"/>
2801	<function name="Uniform3ivARB" template="Uniform" gltype="GLint" vector_size="3"/>
2802	<function name="Uniform4ivARB" template="Uniform" gltype="GLint" vector_size="4"/>
2803
2804	<function name="UniformMatrix2fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="2"/>
2805	<function name="UniformMatrix3fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="3"/>
2806	<function name="UniformMatrix4fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="4"/>
2807
2808	<function name="ValidateProgramARB" template="ValidateProgram"/>
2809
2810	<function name="GenerateMipmapEXT" template="GenerateMipmap"/>
2811	<function name="BindFramebufferEXT" template="BindFramebuffer"/>
2812	<function name="DeleteFramebuffersEXT" template="DeleteFramebuffers"/>
2813	<function name="GenFramebuffersEXT" template="GenFramebuffers"/>
2814	<function name="BindRenderbufferEXT" template="BindRenderbuffer"/>
2815	<function name="DeleteRenderbuffersEXT" template="DeleteRenderbuffers"/>
2816	<function name="GenRenderbuffersEXT" template="GenRenderbuffers"/>
2817	<function name="RenderbufferStorageEXT" template="RenderbufferStorage"/>
2818	<function name="FramebufferRenderbufferEXT" template="FramebufferRenderbuffer"/>
2819	<function name="FramebufferTexture2DEXT" template="FramebufferTexture2D"/>
2820	<function name="FramebufferTexture3DEXT" template="FramebufferTexture3D"/>
2821	<function name="CheckFramebufferStatusEXT" template="CheckFramebufferStatus"/>
2822	<function name="GetFramebufferAttachmentParameterivEXT" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
2823	<function name="GetRenderbufferParameterivEXT" template="GetRenderbufferParameter" gltype="GLint"/>
2824	<function name="IsRenderbufferEXT" template="IsRenderbuffer"/>
2825	<function name="IsFramebufferEXT" template="IsFramebuffer"/>
2826
2827	<function name="IsShader" template="IsShader"/>
2828	<function name="GetShaderiv" template="GetShader" gltype="GLint"/>
2829	<function name="GetAttachedShaders" template="GetAttachedShaders"/>
2830	<function name="GetShaderInfoLog" template="GetShaderInfoLog"/>
2831	<function name="GetProgramInfoLog" template="GetProgramInfoLog"/>
2832	<function name="GetShaderSourceARB" template="GetShaderSource"/>
2833	<function name="GetShaderPrecisionFormat" template="GetShaderPrecisionFormat"/>
2834	<function name="GetUniformfvARB" template="GetUniform" gltype="GLfloat"/>
2835	<function name="GetUniformivARB" template="GetUniform" gltype="GLint"/>
2836
2837	<function name="DrawTexf" template="DrawTex" gltype="GLfloat" expand_vector="true"/>
2838	<function name="DrawTexfv" template="DrawTex" gltype="GLfloat"/>
2839	<function name="DrawTexi" template="DrawTex" gltype="GLint" expand_vector="true"/>
2840	<function name="DrawTexiv" template="DrawTex" gltype="GLint"/>
2841	<function name="DrawTexs" template="DrawTex" gltype="GLshort" expand_vector="true"/>
2842	<function name="DrawTexsv" template="DrawTex" gltype="GLshort"/>
2843
2844        <!-- EXT_multi_draw_arrays -->
2845        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
2846        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
2847
2848        <!-- OES_EGL_image -->
2849        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
2850        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
2851
2852	<function name="DrawBuffersARB" template="DrawBuffers"/>
2853
2854	<function name="ReadBuffer" template="ReadBuffer"/>
2855
2856</api>
2857
2858<api name="GLES1.1">
2859	<category name="GLES1.1"/>
2860
2861	<category name="OES_byte_coordinates"/>
2862	<category name="OES_fixed_point"/>
2863	<category name="OES_single_precision"/>
2864	<category name="OES_matrix_get"/>
2865	<category name="OES_read_format"/>
2866	<category name="OES_compressed_paletted_texture"/>
2867	<category name="OES_compressed_ETC1_RGB8_texture"/>
2868	<category name="OES_point_size_array"/>
2869	<category name="OES_point_sprite"/>
2870	<category name="OES_query_matrix"/>
2871	<category name="OES_draw_texture"/>
2872	<category name="OES_blend_equation_separate"/>
2873	<category name="OES_blend_func_separate"/>
2874	<category name="OES_blend_subtract"/>
2875	<category name="OES_stencil_wrap"/>
2876	<category name="OES_texture_cube_map"/>
2877	<category name="OES_texture_env_crossbar"/>
2878	<category name="OES_texture_mirrored_repeat"/>
2879	<category name="OES_framebuffer_object"/>
2880	<category name="OES_depth24"/>
2881	<category name="OES_depth32"/>
2882	<category name="OES_fbo_render_mipmap"/>
2883	<category name="OES_rgb8_rgba8"/>
2884	<category name="OES_stencil1"/>
2885	<category name="OES_stencil4"/>
2886	<category name="OES_stencil8"/>
2887	<category name="OES_element_index_uint"/>
2888	<category name="OES_mapbuffer"/>
2889	<category name="EXT_texture_filter_anisotropic"/>
2890	<category name="EXT_texture_format_BGRA8888"/>
2891	<category name="EXT_read_format_bgra"/>
2892
2893	<category name="ARB_texture_non_power_of_two"/>
2894	<!-- disabled due to missing enums
2895	<category name="EXT_texture_compression_dxt1"/>
2896	-->
2897	<category name="EXT_texture_lod_bias"/>
2898	<category name="EXT_blend_minmax"/>
2899	<category name="EXT_multi_draw_arrays"/>
2900	<category name="OES_EGL_image"/>
2901	<category name="OES_EGL_image_external"/>
2902
2903	<category name="OES_matrix_palette"/>
2904
2905	<function name="Color4f" external="true" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2906	<function name="Color4ub" template="Color" gltype="GLubyte" vector_size="4" expand_vector="true"/>
2907	<function name="Color4x" template="Color" gltype="GLfixed" vector_size="4" expand_vector="true"/>
2908
2909	<function name="ClipPlanef" template="ClipPlane" gltype="GLfloat"/>
2910	<function name="ClipPlanex" template="ClipPlane" gltype="GLfixed"/>
2911
2912	<function name="CullFace" template="CullFace"/>
2913
2914	<function name="Fogf" template="Fog" gltype="GLfloat" expand_vector="true"/>
2915	<function name="Fogx" template="Fog" gltype="GLfixed" expand_vector="true"/>
2916	<function name="Fogfv" template="Fog" gltype="GLfloat"/>
2917	<function name="Fogxv" template="Fog" gltype="GLfixed"/>
2918
2919	<function name="FrontFace" template="FrontFace"/>
2920	<function name="Hint" template="Hint"/>
2921
2922	<function name="Lightf" template="Light" gltype="GLfloat" expand_vector="true"/>
2923	<function name="Lightx" template="Light" gltype="GLfixed" expand_vector="true"/>
2924	<function name="Lightfv" template="Light" gltype="GLfloat"/>
2925	<function name="Lightxv" template="Light" gltype="GLfixed"/>
2926
2927	<function name="LightModelf" template="LightModel" gltype="GLfloat" expand_vector="true"/>
2928	<function name="LightModelx" template="LightModel" gltype="GLfixed" expand_vector="true"/>
2929	<function name="LightModelfv" template="LightModel" gltype="GLfloat"/>
2930	<function name="LightModelxv" template="LightModel" gltype="GLfixed"/>
2931
2932	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
2933	<function name="LineWidthx" template="LineWidth" gltype="GLfixed"/>
2934
2935	<function name="Materialf" external="true" template="Material" gltype="GLfloat" expand_vector="true"/>
2936	<function name="Materialfv" external="true" template="Material" gltype="GLfloat"/>
2937	<function name="Materialx" template="Material" gltype="GLfixed" expand_vector="true"/>
2938	<function name="Materialxv" template="Material" gltype="GLfixed"/>
2939
2940	<function name="PointSize" template="PointSize" gltype="GLfloat"/>
2941	<function name="PointSizex" template="PointSize" gltype="GLfixed"/>
2942	<function name="PointSizePointerOES" template="PointSizePointer"/>
2943
2944	<function name="Scissor" template="Scissor"/>
2945	<function name="ShadeModel" template="ShadeModel"/>
2946
2947	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
2948	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
2949	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
2950	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
2951	<function name="TexParameterx" template="TexParameter" gltype="GLfixed" expand_vector="true"/>
2952	<function name="TexParameterxv" template="TexParameter" gltype="GLfixed"/>
2953
2954	<function name="TexImage2D" template="TexImage2D"/>
2955
2956	<function name="TexEnvf" template="TexEnv" gltype="GLfloat" expand_vector="true"/>
2957	<function name="TexEnvfv" template="TexEnv" gltype="GLfloat"/>
2958	<function name="TexEnvi" template="TexEnv" gltype="GLint" expand_vector="true"/>
2959	<function name="TexEnviv" template="TexEnv" gltype="GLint"/>
2960	<function name="TexEnvx" template="TexEnv" gltype="GLfixed" expand_vector="true"/>
2961	<function name="TexEnvxv" template="TexEnv" gltype="GLfixed"/>
2962
2963	<function name="TexGenfOES" external="true" template="TexGen" gltype="GLfloat" expand_vector="true"/>
2964	<function name="TexGenfvOES" external="true" template="TexGen" gltype="GLfloat"/>
2965	<function name="TexGeniOES" external="true" template="TexGen" gltype="GLint" expand_vector="true"/>
2966	<function name="TexGenivOES" external="true" template="TexGen" gltype="GLint"/>
2967	<function name="TexGenxOES" external="true" template="TexGen" gltype="GLfixed" expand_vector="true"/>
2968	<function name="TexGenxvOES" external="true" template="TexGen" gltype="GLfixed"/>
2969
2970	<function name="Clear" template="Clear"/>
2971	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
2972	<function name="ClearColorx" template="ClearColor" gltype="GLclampx"/>
2973
2974	<function name="ClearStencil" template="ClearStencil"/>
2975	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
2976	<function name="ClearDepthx" template="ClearDepth" gltype="GLclampx"/>
2977
2978	<function name="StencilMask" template="StencilMask"/>
2979	<function name="ColorMask" template="ColorMask"/>
2980	<function name="DepthMask" template="DepthMask"/>
2981
2982	<function name="Disable" template="Disable"/>
2983	<function name="Enable" template="Enable"/>
2984	<function name="Finish" template="Finish"/>
2985	<function name="Flush" template="Flush"/>
2986
2987	<function name="AlphaFunc" template="AlphaFunc" gltype="GLclampf"/>
2988	<function name="AlphaFuncx" template="AlphaFunc" gltype="GLclampx"/>
2989
2990	<function name="BlendFunc" template="BlendFunc"/>
2991	<function name="LogicOp" template="LogicOp"/>
2992	<function name="StencilFunc" template="StencilFunc"/>
2993
2994	<function name="StencilOp" template="StencilOp"/>
2995	<function name="DepthFunc" template="DepthFunc"/>
2996
2997	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
2998	<function name="ReadPixels" template="ReadPixels"/>
2999
3000	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
3001
3002	<function name="GetClipPlanef" template="GetClipPlane" gltype="GLfloat"/>
3003	<function name="GetClipPlanex" template="GetClipPlane" gltype="GLfixed"/>
3004
3005	<function name="GetError" template="GetError"/>
3006	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
3007	<function name="GetFixedv" template="GetState" gltype="GLfixed"/>
3008	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
3009
3010	<function name="GetLightfv" template="GetLight" gltype="GLfloat"/>
3011	<function name="GetLightxv" template="GetLight" gltype="GLfixed"/>
3012
3013	<function name="GetMaterialfv" template="GetMaterial" gltype="GLfloat"/>
3014	<function name="GetMaterialxv" template="GetMaterial" gltype="GLfixed"/>
3015
3016	<function name="GetString" template="GetString"/>
3017
3018	<function name="GetTexEnvfv" template="GetTexEnv" gltype="GLfloat"/>
3019	<function name="GetTexEnviv" template="GetTexEnv" gltype="GLint"/>
3020	<function name="GetTexEnvxv" template="GetTexEnv" gltype="GLfixed"/>
3021
3022	<function name="GetTexGenfvOES" external="true" template="GetTexGen" gltype="GLfloat"/>
3023	<function name="GetTexGenivOES" external="true" template="GetTexGen" gltype="GLint"/>
3024	<function name="GetTexGenxvOES" external="true" template="GetTexGen" gltype="GLfixed"/>
3025
3026	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
3027	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
3028	<function name="GetTexParameterxv" template="GetTexParameter" gltype="GLfixed"/>
3029
3030	<function name="IsEnabled" template="IsEnabled"/>
3031
3032	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
3033	<function name="DepthRangex" template="DepthRange" gltype="GLclampx"/>
3034
3035	<function name="Frustumf" template="Frustum" gltype="GLfloat"/>
3036	<function name="Frustumx" template="Frustum" gltype="GLfixed"/>
3037
3038	<function name="LoadIdentity" template="LoadIdentity"/>
3039	<function name="LoadMatrixf" template="LoadMatrix" gltype="GLfloat"/>
3040	<function name="LoadMatrixx" template="LoadMatrix" gltype="GLfixed"/>
3041	<function name="MatrixMode" template="MatrixMode"/>
3042
3043	<function name="MultMatrixf" template="MultMatrix" gltype="GLfloat"/>
3044	<function name="MultMatrixx" template="MultMatrix" gltype="GLfixed"/>
3045	<function name="Orthof" template="Ortho" gltype="GLfloat"/>
3046	<function name="Orthox" template="Ortho" gltype="GLfixed"/>
3047
3048	<function name="PopMatrix" template="PopMatrix"/>
3049	<function name="PushMatrix" template="PushMatrix"/>
3050
3051	<function name="Rotatef" template="Rotate" gltype="GLfloat"/>
3052	<function name="Rotatex" template="Rotate" gltype="GLfixed"/>
3053	<function name="Scalef" template="Scale" gltype="GLfloat"/>
3054	<function name="Scalex" template="Scale" gltype="GLfixed"/>
3055	<function name="Translatef" template="Translate" gltype="GLfloat"/>
3056	<function name="Translatex" template="Translate" gltype="GLfixed"/>
3057
3058	<function name="Viewport" template="Viewport"/>
3059	<function name="ColorPointer" template="ColorPointer"/>
3060	<function name="DisableClientState" template="DisableClientState"/>
3061	<function name="DrawArrays" template="DrawArrays"/>
3062	<function name="DrawElements" template="DrawElements"/>
3063	<function name="EnableClientState" template="EnableClientState"/>
3064
3065	<function name="GetPointerv" template="GetPointer"/>
3066
3067	<function name="Normal3f" external="true" template="Normal" gltype="GLfloat" expand_vector="true"/>
3068	<function name="Normal3x" template="Normal" gltype="GLfixed" expand_vector="true"/>
3069	<function name="NormalPointer" template="NormalPointer"/>
3070	<function name="TexCoordPointer" template="TexCoordPointer"/>
3071	<function name="VertexPointer" template="VertexPointer"/>
3072
3073	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
3074	<function name="PolygonOffsetx" template="PolygonOffset" gltype="GLfixed"/>
3075
3076	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
3077	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
3078
3079	<function name="TexSubImage2D" template="TexSubImage2D"/>
3080
3081	<function name="BindTexture" template="BindTexture"/>
3082	<function name="DeleteTextures" template="DeleteTextures"/>
3083	<function name="GenTextures" template="GenTextures"/>
3084	<function name="IsTexture" template="IsTexture"/>
3085
3086	<function name="BlendEquationOES" template="BlendEquation"/>
3087	<function name="BlendEquationSeparateOES" template="BlendEquationSeparate"/>
3088
3089	<function name="MultiTexCoord4x" template="MultiTexCoord" gltype="GLfixed" vector_size="4" expand_vector="true"/>
3090
3091	<function name="ActiveTexture" template="ActiveTexture"/>
3092	<function name="ClientActiveTexture" template="ClientActiveTexture"/>
3093
3094	<function name="MultiTexCoord4f" external="true" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3095
3096	<function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
3097	<function name="SampleCoveragex" template="SampleCoverage" gltype="GLclampx"/>
3098
3099	<!-- CompressedTexImage2D calls out to two different functions based on
3100	     whether the image is a paletted image or not -->
3101	<function name="CompressedTexImage2D" template="CompressedTexImage2D"/>
3102	<function name="CompressedTexSubImage2D" template="CompressedTexSubImage2D"/>
3103
3104	<function name="BlendFuncSeparateOES" template="BlendFuncSeparate"/>
3105
3106	<function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
3107	<function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
3108	<function name="PointParameterx" template="PointParameter" gltype="GLfixed" expand_vector="true"/>
3109	<function name="PointParameterxv" template="PointParameter" gltype="GLfixed"/>
3110
3111	<!-- OES_mapbuffer -->
3112	<function name="GetBufferPointervOES" template="GetBufferPointer"/>
3113	<function name="MapBufferOES" template="MapBuffer"/>
3114	<function name="UnmapBufferOES" template="UnmapBuffer"/>
3115
3116	<function name="BindBuffer" template="BindBuffer"/>
3117	<function name="BufferData" template="BufferData"/>
3118	<function name="BufferSubData" template="BufferSubData"/>
3119	<function name="DeleteBuffers" template="DeleteBuffers"/>
3120	<function name="GenBuffers" template="GenBuffers"/>
3121	<function name="GetBufferParameteriv" template="GetBufferParameter" gltype="GLint"/>
3122	<function name="IsBuffer" template="IsBuffer"/>
3123
3124	<!-- OES_framebuffer_object -->
3125	<function name="GenerateMipmapOES" template="GenerateMipmap"/>
3126	<function name="BindFramebufferOES" template="BindFramebuffer"/>
3127	<function name="DeleteFramebuffersOES" template="DeleteFramebuffers"/>
3128	<function name="GenFramebuffersOES" template="GenFramebuffers"/>
3129	<function name="BindRenderbufferOES" template="BindRenderbuffer"/>
3130	<function name="DeleteRenderbuffersOES" template="DeleteRenderbuffers"/>
3131	<function name="GenRenderbuffersOES" template="GenRenderbuffers"/>
3132	<function name="RenderbufferStorageOES" external="true" template="RenderbufferStorage"/>
3133	<function name="FramebufferRenderbufferOES" template="FramebufferRenderbuffer"/>
3134	<function name="FramebufferTexture2DOES" template="FramebufferTexture2D"/>
3135	<function name="CheckFramebufferStatusOES" template="CheckFramebufferStatus"/>
3136	<function name="GetFramebufferAttachmentParameterivOES" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
3137	<function name="GetRenderbufferParameterivOES" template="GetRenderbufferParameter" gltype="GLint"/>
3138	<function name="IsRenderbufferOES" template="IsRenderbuffer"/>
3139	<function name="IsFramebufferOES" template="IsFramebuffer"/>
3140
3141	<!-- OES_query_matrix -->
3142	<!-- QueryMatrixx returns values in an unusual, decomposed, fixed-value
3143	     form; it has its own code for this -->
3144	<function name="QueryMatrixxOES" external="true" template="QueryMatrix" gltype="GLfixed"/>
3145
3146	<!-- OES_draw_texture -->
3147	<function name="DrawTexfOES" template="DrawTex" gltype="GLfloat" expand_vector="true"/>
3148	<function name="DrawTexiOES" template="DrawTex" gltype="GLint" expand_vector="true"/>
3149	<function name="DrawTexsOES" template="DrawTex" gltype="GLshort" expand_vector="true"/>
3150	<function name="DrawTexxOES" template="DrawTex" gltype="GLfixed" expand_vector="true"/>
3151	<function name="DrawTexfvOES" template="DrawTex" gltype="GLfloat"/>
3152	<function name="DrawTexivOES" template="DrawTex" gltype="GLint"/>
3153	<function name="DrawTexsvOES" template="DrawTex" gltype="GLshort"/>
3154	<function name="DrawTexxvOES" template="DrawTex" gltype="GLfixed"/>
3155
3156        <!-- EXT_multi_draw_arrays -->
3157        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
3158        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
3159
3160        <!-- OES_EGL_image -->
3161        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
3162        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
3163</api>
3164
3165<api name="GLES2.0">
3166	<category name="GLES2.0"/>
3167
3168	<category name="OES_compressed_paletted_texture"/>
3169	<category name="OES_compressed_ETC1_RGB8_texture"/>
3170	<category name="OES_depth24"/>
3171	<category name="OES_depth32"/>
3172	<category name="OES_fbo_render_mipmap"/>
3173	<category name="OES_rgb8_rgba8"/>
3174	<category name="OES_stencil1"/>
3175	<category name="OES_stencil4"/>
3176	<category name="OES_element_index_uint"/>
3177	<category name="OES_mapbuffer"/>
3178	<category name="OES_texture_3D"/>
3179	<category name="OES_texture_npot"/>
3180	<category name="EXT_texture_filter_anisotropic"/>
3181	<category name="EXT_texture_type_2_10_10_10_REV"/>
3182	<category name="OES_depth_texture"/>
3183	<category name="OES_packed_depth_stencil"/>
3184	<category name="OES_standard_derivatives"/>
3185	<category name="EXT_texture_format_BGRA8888"/>
3186	<category name="EXT_texture_rg"/>
3187	<category name="EXT_read_format_bgra"/>
3188
3189	<category name="EXT_texture_compression_dxt1"/>
3190	<category name="EXT_blend_minmax"/>
3191	<category name="EXT_multi_draw_arrays"/>
3192	<category name="OES_EGL_image"/>
3193	<category name="OES_EGL_image_external"/>
3194        <category name="EXT_unpack_subimage"/>
3195
3196	<category name="NV_draw_buffers"/>
3197	<category name="NV_read_buffer"/>
3198
3199	<function name="DrawBuffersNV" template="DrawBuffers"/>
3200	<function name="ReadBufferNV" template="ReadBuffer"/> 
3201
3202	<function name="CullFace" template="CullFace"/>
3203
3204	<function name="FrontFace" template="FrontFace"/>
3205	<function name="Hint" template="Hint"/>
3206
3207	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
3208
3209	<function name="Scissor" template="Scissor"/>
3210
3211	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
3212	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
3213	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
3214	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
3215
3216	<function name="TexImage2D" template="TexImage2D"/>
3217
3218	<function name="Clear" template="Clear"/>
3219	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
3220	<function name="ClearStencil" template="ClearStencil"/>
3221	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
3222
3223	<function name="StencilMask" template="StencilMask"/>
3224	<function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
3225	<function name="ColorMask" template="ColorMask"/>
3226	<function name="DepthMask" template="DepthMask"/>
3227	<function name="Disable" template="Disable"/>
3228	<function name="Enable" template="Enable"/>
3229	<function name="Finish" template="Finish"/>
3230	<function name="Flush" template="Flush"/>
3231
3232	<function name="BlendFunc" template="BlendFunc"/>
3233
3234	<function name="StencilFunc" template="StencilFunc"/>
3235	<function name="StencilFuncSeparate" template="StencilFuncSeparate"/>
3236	<function name="StencilOp" template="StencilOp"/>
3237	<function name="StencilOpSeparate" template="StencilOpSeparate"/>
3238
3239	<function name="DepthFunc" template="DepthFunc"/>
3240
3241	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
3242	<function name="ReadPixels" template="ReadPixels"/>
3243
3244	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
3245	<function name="GetError" template="GetError"/>
3246	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
3247	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
3248
3249	<function name="GetString" template="GetString"/>
3250
3251	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
3252	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
3253
3254	<function name="IsEnabled" template="IsEnabled"/>
3255
3256	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
3257
3258	<function name="Viewport" template="Viewport"/>
3259
3260	<function name="DrawArrays" template="DrawArrays"/>
3261	<function name="DrawElements" template="DrawElements"/>
3262
3263	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
3264	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
3265	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
3266	<function name="TexSubImage2D" template="TexSubImage2D"/>
3267
3268	<function name="BindTexture" template="BindTexture"/>
3269	<function name="DeleteTextures" template="DeleteTextures"/>
3270	<function name="GenTextures" template="GenTextures"/>
3271	<function name="IsTexture" template="IsTexture"/>
3272
3273	<function name="BlendColor" template="BlendColor" gltype="GLclampf"/>
3274	<function name="BlendEquation" template="BlendEquation"/>
3275	<function name="BlendEquationSeparate" template="BlendEquationSeparate"/>
3276
3277	<function name="TexImage3DOES" template="TexImage3D"/>
3278	<function name="TexSubImage3DOES" template="TexSubImage3D"/>
3279	<function name="CopyTexSubImage3DOES" template="CopyTexSubImage3D"/>
3280
3281	<function name="CompressedTexImage3DOES" template="CompressedTexImage3D"/>
3282	<function name="CompressedTexSubImage3DOES" template="CompressedTexSubImage3D"/>
3283
3284	<function name="ActiveTexture" template="ActiveTexture"/>
3285
3286	<function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
3287
3288	<function name="CompressedTexImage2D" template="CompressedTexImage2D"/>
3289	<function name="CompressedTexSubImage2D" template="CompressedTexSubImage2D"/>
3290
3291	<function name="BlendFuncSeparate" template="BlendFuncSeparate"/>
3292
3293	<function name="VertexAttrib1f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
3294	<function name="VertexAttrib2f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
3295	<function name="VertexAttrib3f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
3296	<function name="VertexAttrib4f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3297	<function name="VertexAttrib1fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
3298	<function name="VertexAttrib2fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
3299	<function name="VertexAttrib3fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
3300	<function name="VertexAttrib4fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
3301
3302	<function name="VertexAttribPointer" template="VertexAttribPointer"/>
3303
3304	<function name="EnableVertexAttribArray" template="EnableVertexAttribArray"/>
3305	<function name="DisableVertexAttribArray" template="DisableVertexAttribArray"/>
3306
3307	<function name="IsProgram" template="IsProgram"/>
3308	<function name="GetProgramiv" template="GetProgram" gltype="GLint"/>
3309
3310	<function name="GetVertexAttribfv" template="GetVertexAttrib" gltype="GLfloat"/>
3311	<function name="GetVertexAttribiv" template="GetVertexAttrib" gltype="GLint"/>
3312	<function name="GetVertexAttribPointerv" template="GetVertexAttribPointer"/>
3313
3314	<function name="GetBufferPointervOES" template="GetBufferPointer"/>
3315	<function name="MapBufferOES" template="MapBuffer"/>
3316	<function name="UnmapBufferOES" template="UnmapBuffer"/>
3317	<function name="BindBuffer" template="BindBuffer"/>
3318	<function name="BufferData" template="BufferData"/>
3319	<function name="BufferSubData" template="BufferSubData"/>
3320	<function name="DeleteBuffers" template="DeleteBuffers"/>
3321	<function name="GenBuffers" template="GenBuffers"/>
3322	<function name="GetBufferParameteriv" template="GetBufferParameter" gltype="GLint"/>
3323	<function name="IsBuffer" template="IsBuffer"/>
3324
3325	<function name="CreateShader" template="CreateShader"/>
3326	<function name="ShaderSource" template="ShaderSource"/>
3327	<function name="CompileShader" template="CompileShader"/>
3328	<function name="ReleaseShaderCompiler" template="ReleaseShaderCompiler"/>
3329	<function name="DeleteShader" template="DeleteShader"/>
3330	<function name="ShaderBinary" template="ShaderBinary"/>
3331	<function name="CreateProgram" template="CreateProgram"/>
3332	<function name="AttachShader" template="AttachShader"/>
3333	<function name="DetachShader" template="DetachShader"/>
3334	<function name="LinkProgram" template="LinkProgram"/>
3335	<function name="UseProgram" template="UseProgram"/>
3336	<function name="DeleteProgram" template="DeleteProgram"/>
3337
3338	<function name="GetActiveAttrib" template="GetActiveAttrib"/>
3339	<function name="GetAttribLocation" template="GetAttribLocation"/>
3340	<function name="BindAttribLocation" template="BindAttribLocation"/>
3341	<function name="GetUniformLocation" template="GetUniformLocation"/>
3342	<function name="GetActiveUniform" template="GetActiveUniform"/>
3343
3344	<function name="Uniform1f" template="Uniform" gltype="GLfloat" vector_size="1" expand_vector="true"/>
3345	<function name="Uniform2f" template="Uniform" gltype="GLfloat" vector_size="2" expand_vector="true"/>
3346	<function name="Uniform3f" template="Uniform" gltype="GLfloat" vector_size="3" expand_vector="true"/>
3347	<function name="Uniform4f" template="Uniform" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3348	<function name="Uniform1i" template="Uniform" gltype="GLint" vector_size="1" expand_vector="true"/>
3349	<function name="Uniform2i" template="Uniform" gltype="GLint" vector_size="2" expand_vector="true"/>
3350	<function name="Uniform3i" template="Uniform" gltype="GLint" vector_size="3" expand_vector="true"/>
3351	<function name="Uniform4i" template="Uniform" gltype="GLint" vector_size="4" expand_vector="true"/>
3352
3353	<function name="Uniform1fv" template="Uniform" gltype="GLfloat" vector_size="1"/>
3354	<function name="Uniform2fv" template="Uniform" gltype="GLfloat" vector_size="2"/>
3355	<function name="Uniform3fv" template="Uniform" gltype="GLfloat" vector_size="3"/>
3356	<function name="Uniform4fv" template="Uniform" gltype="GLfloat" vector_size="4"/>
3357	<function name="Uniform1iv" template="Uniform" gltype="GLint" vector_size="1"/>
3358	<function name="Uniform2iv" template="Uniform" gltype="GLint" vector_size="2"/>
3359	<function name="Uniform3iv" template="Uniform" gltype="GLint" vector_size="3"/>
3360	<function name="Uniform4iv" template="Uniform" gltype="GLint" vector_size="4"/>
3361
3362	<function name="UniformMatrix2fv" template="UniformMatrix" gltype="GLfloat" vector_size="2"/>
3363	<function name="UniformMatrix3fv" template="UniformMatrix" gltype="GLfloat" vector_size="3"/>
3364	<function name="UniformMatrix4fv" template="UniformMatrix" gltype="GLfloat" vector_size="4"/>
3365
3366	<function name="ValidateProgram" template="ValidateProgram"/>
3367
3368	<function name="GenerateMipmap" template="GenerateMipmap"/>
3369	<function name="BindFramebuffer" template="BindFramebuffer"/>
3370	<function name="DeleteFramebuffers" template="DeleteFramebuffers"/>
3371	<function name="GenFramebuffers" template="GenFramebuffers"/>
3372	<function name="BindRenderbuffer" template="BindRenderbuffer"/>
3373	<function name="DeleteRenderbuffers" template="DeleteRenderbuffers"/>
3374	<function name="GenRenderbuffers" template="GenRenderbuffers"/>
3375	<function name="RenderbufferStorage" external="true" template="RenderbufferStorage"/>
3376	<function name="FramebufferRenderbuffer" template="FramebufferRenderbuffer"/>
3377	<function name="FramebufferTexture2D" template="FramebufferTexture2D"/>
3378	<function name="FramebufferTexture3DOES" template="FramebufferTexture3D"/>
3379	<function name="CheckFramebufferStatus" template="CheckFramebufferStatus"/>
3380	<function name="GetFramebufferAttachmentParameteriv" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
3381	<function name="GetRenderbufferParameteriv" template="GetRenderbufferParameter" gltype="GLint"/>
3382	<function name="IsRenderbuffer" template="IsRenderbuffer"/>
3383	<function name="IsFramebuffer" template="IsFramebuffer"/>
3384
3385	<function name="IsShader" template="IsShader"/>
3386	<function name="GetShaderiv" template="GetShader" gltype="GLint"/>
3387	<function name="GetAttachedShaders" template="GetAttachedShaders"/>
3388	<function name="GetShaderInfoLog" template="GetShaderInfoLog"/>
3389	<function name="GetProgramInfoLog" template="GetProgramInfoLog"/>
3390	<function name="GetShaderSource" template="GetShaderSource"/>
3391	<function name="GetShaderPrecisionFormat" template="GetShaderPrecisionFormat"/>
3392	<function name="GetUniformfv" template="GetUniform" gltype="GLfloat"/>
3393	<function name="GetUniformiv" template="GetUniform" gltype="GLint"/>
3394
3395        <!-- EXT_multi_draw_arrays -->
3396        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
3397        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
3398
3399        <!-- OES_EGL_image -->
3400        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
3401        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
3402</api>
3403
3404</apispec>
3405