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