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