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