APIspec.xml revision c914ac239e74282458f69956a4358545b41f9c3f
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
1521	<desc name="type">
1522		<value name="GL_UNSIGNED_BYTE"/>
1523		<value name="GL_UNSIGNED_SHORT"/>
1524		<value name="GL_UNSIGNED_INT" category="OES_element_index_uint"/>
1525	</desc>
1526</template>
1527
1528<template name="EnableClientState">
1529	<proto>
1530		<return type="void"/>
1531		<param name="array" type="GLenum"/>
1532	</proto>
1533
1534	<desc name="array">
1535		<value name="GL_VERTEX_ARRAY"/>
1536		<value name="GL_NORMAL_ARRAY"/>
1537		<value name="GL_COLOR_ARRAY"/>
1538		<value name="GL_TEXTURE_COORD_ARRAY"/>
1539		<value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
1540		<value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
1541		<value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
1542	</desc>
1543</template>
1544
1545<template name="GetPointer" direction="get">
1546	<proto>
1547		<return type="void"/>
1548		<param name="pname" type="GLenum"/>
1549		<vector name="params" type="GLvoid **" size="dynamic"/>
1550	</proto>
1551
1552	<desc name="pname">
1553		<value name="GL_VERTEX_ARRAY_POINTER"/>
1554		<value name="GL_NORMAL_ARRAY_POINTER"/>
1555		<value name="GL_COLOR_ARRAY_POINTER"/>
1556		<value name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
1557		<value name="GL_MATRIX_INDEX_ARRAY_POINTER_OES" category="OES_matrix_palette"/>
1558		<value name="GL_WEIGHT_ARRAY_POINTER_OES" category="OES_matrix_palette"/>
1559		<value name="GL_POINT_SIZE_ARRAY_POINTER_OES" category="OES_point_size_array"/>
1560	</desc>
1561</template>
1562
1563<template name="Normal">
1564	<proto>
1565		<return type="void"/>
1566		<vector name="v" type="const GLtype *" size="3">
1567			<param name="nx" type="GLtype"/>
1568			<param name="ny" type="GLtype"/>
1569			<param name="nz" type="GLtype"/>
1570		</vector>
1571	</proto>
1572</template>
1573
1574<template name="NormalPointer">
1575	<proto>
1576		<return type="void"/>
1577		<param name="type" type="GLenum"/>
1578		<param name="stride" type="GLsizei"/>
1579		<param name="pointer" type="const GLvoid *"/>
1580	</proto>
1581
1582	<desc name="type">
1583		<value name="GL_BYTE"/>
1584		<value name="GL_SHORT"/>
1585		<value name="GL_FLOAT"/>
1586		<value name="GL_FIXED"/>
1587		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
1588	</desc>
1589</template>
1590
1591<template name="TexCoordPointer">
1592	<proto>
1593		<return type="void"/>
1594		<param name="size" type="GLint"/>
1595		<param name="type" type="GLenum"/>
1596		<param name="stride" type="GLsizei"/>
1597		<param name="pointer" type="const GLvoid *"/>
1598	</proto>
1599
1600	<desc name="size" error="GL_INVALID_VALUE">
1601		<value name="2"/>
1602		<value name="3"/>
1603		<value name="4"/>
1604	</desc>
1605
1606	<desc name="type">
1607		<value name="GL_BYTE"/>
1608		<value name="GL_SHORT"/>
1609		<value name="GL_FLOAT"/>
1610		<value name="GL_FIXED"/>
1611		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
1612	</desc>
1613</template>
1614
1615<template name="VertexPointer">
1616	<proto>
1617		<return type="void"/>
1618		<param name="size" type="GLint"/>
1619		<param name="type" type="GLenum"/>
1620		<param name="stride" type="GLsizei"/>
1621		<param name="pointer" type="const GLvoid *"/>
1622	</proto>
1623
1624	<desc name="size" error="GL_INVALID_VALUE">
1625		<value name="2"/>
1626		<value name="3"/>
1627		<value name="4"/>
1628	</desc>
1629
1630	<desc name="type">
1631		<value name="GL_BYTE"/>
1632		<value name="GL_SHORT"/>
1633		<value name="GL_FLOAT"/>
1634		<value name="GL_FIXED"/>
1635		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
1636	</desc>
1637</template>
1638
1639<template name="PolygonOffset">
1640	<proto>
1641		<return type="void"/>
1642		<param name="factor" type="GLtype"/>
1643		<param name="units" type="GLtype"/>
1644	</proto>
1645</template>
1646
1647<template name="CopyTexImage2D">
1648	<proto>
1649		<return type="void"/>
1650		<param name="target" type="GLenum"/>
1651		<param name="level" type="GLint"/>
1652		<param name="internalFormat" type="GLenum"/>
1653		<param name="x" type="GLint"/>
1654		<param name="y" type="GLint"/>
1655		<param name="width" type="GLsizei"/>
1656		<param name="height" type="GLsizei"/>
1657		<param name="border" type="GLint"/>
1658	</proto>
1659
1660	<desc name="target">
1661		<value name="GL_TEXTURE_2D"/>
1662		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
1663		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
1664		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
1665		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
1666		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
1667		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
1668		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
1669		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
1670		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
1671		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
1672		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
1673		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
1674	</desc>
1675
1676	<desc name="internalFormat" error="GL_INVALID_VALUE">
1677		<value name="GL_ALPHA"/>
1678		<value name="GL_RGB"/>
1679		<value name="GL_RGBA"/>
1680		<value name="GL_LUMINANCE"/>
1681		<value name="GL_LUMINANCE_ALPHA"/>
1682	</desc>
1683
1684	<desc name="border" error="GL_INVALID_VALUE">
1685		<value name="0"/>
1686	</desc>
1687</template>
1688
1689<template name="CopyTexSubImage2D">
1690	<proto>
1691		<return type="void"/>
1692		<param name="target" type="GLenum"/>
1693		<param name="level" type="GLint"/>
1694		<param name="xoffset" type="GLint"/>
1695		<param name="yoffset" type="GLint"/>
1696		<param name="x" type="GLint"/>
1697		<param name="y" type="GLint"/>
1698		<param name="width" type="GLsizei"/>
1699		<param name="height" type="GLsizei"/>
1700	</proto>
1701
1702	<desc name="target">
1703		<value name="GL_TEXTURE_2D"/>
1704		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
1705		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
1706		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
1707		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
1708		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
1709		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
1710		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
1711		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
1712		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
1713		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
1714		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
1715		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
1716	</desc>
1717</template>
1718
1719<template name="TexSubImage2D">
1720	<proto>
1721		<return type="void"/>
1722		<param name="target" type="GLenum"/>
1723		<param name="level" type="GLint"/>
1724		<param name="xoffset" type="GLint"/>
1725		<param name="yoffset" type="GLint"/>
1726		<param name="width" type="GLsizei"/>
1727		<param name="height" type="GLsizei"/>
1728		<param name="format" type="GLenum"/>
1729		<param name="type" type="GLenum"/>
1730		<param name="pixels" type="const GLvoid *"/>
1731	</proto>
1732
1733	<desc name="target">
1734		<value name="GL_TEXTURE_2D"/>
1735		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
1736		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
1737		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
1738		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
1739		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
1740		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
1741		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
1742		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
1743		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
1744		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
1745		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
1746		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
1747	</desc>
1748
1749	<desc name="format">
1750		<value name="GL_ALPHA"/>
1751
1752		<desc name="type" error="GL_INVALID_OPERATION">
1753			<value name="GL_UNSIGNED_BYTE"/>
1754			<value name="GL_FLOAT" category="OES_texture_float"/>
1755			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1756		</desc>
1757	</desc>
1758
1759	<desc name="format">
1760		<value name="GL_RGB"/>
1761
1762		<desc name="type" error="GL_INVALID_OPERATION">
1763			<value name="GL_UNSIGNED_BYTE"/>
1764			<value name="GL_UNSIGNED_SHORT_5_6_5"/>
1765			<value name="GL_FLOAT" category="OES_texture_float"/>
1766			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1767		</desc>
1768	</desc>
1769
1770	<desc name="format">
1771		<value name="GL_RGBA"/>
1772
1773		<desc name="type" error="GL_INVALID_OPERATION">
1774			<value name="GL_UNSIGNED_BYTE"/>
1775			<value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
1776			<value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
1777			<value name="GL_FLOAT" category="OES_texture_float"/>
1778			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1779			<value name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT" category="EXT_texture_type_2_10_10_10_REV"/>
1780		</desc>
1781	</desc>
1782
1783	<desc name="format">
1784		<value name="GL_LUMINANCE"/>
1785
1786		<desc name="type" error="GL_INVALID_OPERATION">
1787			<value name="GL_UNSIGNED_BYTE"/>
1788			<value name="GL_FLOAT" category="OES_texture_float"/>
1789			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1790		</desc>
1791	</desc>
1792
1793	<desc name="format">
1794		<value name="GL_LUMINANCE_ALPHA"/>
1795
1796		<desc name="type" error="GL_INVALID_OPERATION">
1797			<value name="GL_UNSIGNED_BYTE"/>
1798			<value name="GL_FLOAT" category="OES_texture_float"/>
1799			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1800		</desc>
1801	</desc>
1802
1803	<desc name="format" category="OES_depth_texture">
1804		<value name="GL_DEPTH_COMPONENT"/>
1805
1806		<desc name="type" error="GL_INVALID_OPERATION">
1807			<value name="GL_UNSIGNED_SHORT"/>
1808			<value name="GL_UNSIGNED_INT"/>
1809		</desc>
1810	</desc>
1811
1812	<desc name="format" category="OES_packed_depth_stencil">
1813		<value name="GL_DEPTH_STENCIL_OES"/>
1814
1815		<desc name="type" error="GL_INVALID_OPERATION">
1816			<value name="GL_UNSIGNED_INT_24_8_OES"/>
1817		</desc>
1818	</desc>
1819
1820	<desc name="format" category="EXT_texture_format_BGRA8888">
1821		<value name="GL_BGRA_EXT"/>
1822
1823		<desc name="type" error="GL_INVALID_OPERATION">
1824			<value name="GL_UNSIGNED_BYTE"/>
1825		</desc>
1826	</desc>
1827</template>
1828
1829<template name="BindTexture">
1830	<proto>
1831		<return type="void"/>
1832		<param name="target" type="GLenum"/>
1833		<param name="texture" type="GLuint"/>
1834	</proto>
1835
1836	<desc name="target">
1837		<value name="GL_TEXTURE_2D"/>
1838		<value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
1839		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
1840		<value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
1841		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
1842	</desc>
1843</template>
1844
1845<template name="DeleteTextures">
1846	<proto>
1847		<return type="void"/>
1848		<param name="n" type="GLsizei"/>
1849		<param name="textures" type="const GLuint *"/>
1850	</proto>
1851</template>
1852
1853<template name="GenTextures" direction="get">
1854	<proto>
1855		<return type="void"/>
1856		<param name="n" type="GLsizei"/>
1857		<param name="textures" type="GLuint *"/>
1858	</proto>
1859</template>
1860
1861<template name="IsTexture" direction="get">
1862	<proto>
1863		<return type="GLboolean"/>
1864		<param name="texture" type="GLuint"/>
1865	</proto>
1866</template>
1867
1868<template name="BlendColor">
1869	<proto>
1870		<return type="void"/>
1871		<param name="red" type="GLtype"/>
1872		<param name="green" type="GLtype"/>
1873		<param name="blue" type="GLtype"/>
1874		<param name="alpha" type="GLtype"/>
1875	</proto>
1876</template>
1877
1878<template name="BlendEquation">
1879	<proto>
1880		<return type="void"/>
1881		<param name="mode" type="GLenum"/>
1882	</proto>
1883</template>
1884
1885<template name="BlendEquationSeparate">
1886	<proto>
1887		<return type="void"/>
1888		<param name="modeRGB" type="GLenum"/>
1889		<param name="modeAlpha" type="GLenum"/>
1890	</proto>
1891</template>
1892
1893<template name="TexImage3D">
1894	<proto>
1895		<return type="void"/>
1896		<param name="target" type="GLenum"/>
1897		<param name="level" type="GLint"/>
1898		<param name="internalFormat" type="GLenum"/>
1899		<param name="width" type="GLsizei"/>
1900		<param name="height" type="GLsizei"/>
1901		<param name="depth" type="GLsizei"/>
1902		<param name="border" type="GLint"/>
1903		<param name="format" type="GLenum"/>
1904		<param name="type" type="GLenum"/>
1905		<param name="pixels" type="const GLvoid *"/>
1906	</proto>
1907
1908	<desc name="target">
1909		<value name="GL_TEXTURE_3D_OES"/>
1910	</desc>
1911
1912	<desc name="internalFormat">
1913		<value name="GL_ALPHA"/>
1914		<value name="GL_RGB"/>
1915		<value name="GL_RGBA"/>
1916		<value name="GL_LUMINANCE"/>
1917		<value name="GL_LUMINANCE_ALPHA"/>
1918	</desc>
1919
1920	<desc name="format">
1921		<value name="GL_ALPHA"/>
1922
1923		<desc name="type" error="GL_INVALID_OPERATION">
1924			<value name="GL_UNSIGNED_BYTE"/>
1925			<value name="GL_FLOAT" category="OES_texture_float"/>
1926			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1927		</desc>
1928	</desc>
1929
1930	<desc name="format">
1931		<value name="GL_RGB"/>
1932
1933		<desc name="type" error="GL_INVALID_OPERATION">
1934			<value name="GL_UNSIGNED_BYTE"/>
1935			<value name="GL_UNSIGNED_SHORT_5_6_5"/>
1936			<value name="GL_FLOAT" category="OES_texture_float"/>
1937			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1938		</desc>
1939	</desc>
1940
1941	<desc name="format">
1942		<value name="GL_RGBA"/>
1943
1944		<desc name="type" error="GL_INVALID_OPERATION">
1945			<value name="GL_UNSIGNED_BYTE"/>
1946			<value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
1947			<value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
1948			<value name="GL_FLOAT" category="OES_texture_float"/>
1949			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1950			<value name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT" category="EXT_texture_type_2_10_10_10_REV"/>
1951		</desc>
1952	</desc>
1953
1954	<desc name="format">
1955		<value name="GL_LUMINANCE"/>
1956
1957		<desc name="type" error="GL_INVALID_OPERATION">
1958			<value name="GL_UNSIGNED_BYTE"/>
1959			<value name="GL_FLOAT" category="OES_texture_float"/>
1960			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1961		</desc>
1962	</desc>
1963
1964	<desc name="format">
1965		<value name="GL_LUMINANCE_ALPHA"/>
1966
1967		<desc name="type" error="GL_INVALID_OPERATION">
1968			<value name="GL_UNSIGNED_BYTE"/>
1969			<value name="GL_FLOAT" category="OES_texture_float"/>
1970			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1971		</desc>
1972	</desc>
1973</template>
1974
1975<template name="TexSubImage3D">
1976	<proto>
1977		<return type="void"/>
1978		<param name="target" type="GLenum"/>
1979		<param name="level" type="GLint"/>
1980		<param name="xoffset" type="GLint"/>
1981		<param name="yoffset" type="GLint"/>
1982		<param name="zoffset" type="GLint"/>
1983		<param name="width" type="GLsizei"/>
1984		<param name="height" type="GLsizei"/>
1985		<param name="depth" type="GLsizei"/>
1986		<param name="format" type="GLenum"/>
1987		<param name="type" type="GLenum"/>
1988		<param name="pixels" type="const GLvoid *"/>
1989	</proto>
1990
1991	<desc name="target">
1992		<value name="GL_TEXTURE_3D_OES"/>
1993	</desc>
1994
1995	<desc name="format">
1996		<value name="GL_ALPHA"/>
1997
1998		<desc name="type" error="GL_INVALID_OPERATION">
1999			<value name="GL_UNSIGNED_BYTE"/>
2000			<value name="GL_FLOAT" category="OES_texture_float"/>
2001			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2002		</desc>
2003	</desc>
2004
2005	<desc name="format">
2006		<value name="GL_RGB"/>
2007
2008		<desc name="type" error="GL_INVALID_OPERATION">
2009			<value name="GL_UNSIGNED_BYTE"/>
2010			<value name="GL_UNSIGNED_SHORT_5_6_5"/>
2011			<value name="GL_FLOAT" category="OES_texture_float"/>
2012			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2013		</desc>
2014	</desc>
2015
2016	<desc name="format">
2017		<value name="GL_RGBA"/>
2018
2019		<desc name="type" error="GL_INVALID_OPERATION">
2020			<value name="GL_UNSIGNED_BYTE"/>
2021			<value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
2022			<value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
2023			<value name="GL_FLOAT" category="OES_texture_float"/>
2024			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2025			<value name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT" category="EXT_texture_type_2_10_10_10_REV"/>
2026		</desc>
2027	</desc>
2028
2029	<desc name="format">
2030		<value name="GL_LUMINANCE"/>
2031
2032		<desc name="type" error="GL_INVALID_OPERATION">
2033			<value name="GL_UNSIGNED_BYTE"/>
2034			<value name="GL_FLOAT" category="OES_texture_float"/>
2035			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2036		</desc>
2037	</desc>
2038
2039	<desc name="format">
2040		<value name="GL_LUMINANCE_ALPHA"/>
2041
2042		<desc name="type" error="GL_INVALID_OPERATION">
2043			<value name="GL_UNSIGNED_BYTE"/>
2044			<value name="GL_FLOAT" category="OES_texture_float"/>
2045			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2046		</desc>
2047	</desc>
2048</template>
2049
2050<template name="CopyTexSubImage3D">
2051	<proto>
2052		<return type="void"/>
2053		<param name="target" type="GLenum"/>
2054		<param name="level" type="GLint"/>
2055		<param name="xoffset" type="GLint"/>
2056		<param name="yoffset" type="GLint"/>
2057		<param name="zoffset" type="GLint"/>
2058		<param name="x" type="GLint"/>
2059		<param name="y" type="GLint"/>
2060		<param name="width" type="GLsizei"/>
2061		<param name="height" type="GLsizei"/>
2062	</proto>
2063
2064	<desc name="target">
2065		<value name="GL_TEXTURE_3D_OES"/>
2066	</desc>
2067</template>
2068
2069<template name="MultiTexCoord">
2070	<proto>
2071		<return type="void"/>
2072		<param name="texture" type="GLenum"/>
2073		<vector name="v" type="const GLtype *" size="dynamic">
2074			<param name="s" type="GLtype"/>
2075			<param name="t" type="GLtype"/>
2076			<param name="r" type="GLtype"/>
2077			<param name="q" type="GLtype"/>
2078		</vector>
2079	</proto>
2080</template>
2081
2082<template name="CompressedTexImage3D">
2083	<proto>
2084		<return type="void"/>
2085		<param name="target" type="GLenum"/>
2086		<param name="level" type="GLint"/>
2087		<param name="internalFormat" type="GLenum"/>
2088		<param name="width" type="GLsizei"/>
2089		<param name="height" type="GLsizei"/>
2090		<param name="depth" type="GLsizei"/>
2091		<param name="border" type="GLint"/>
2092		<param name="imagesize" type="GLsizei"/>
2093		<param name="data" type="const GLvoid *"/>
2094	</proto>
2095
2096	<desc name="target">
2097		<value name="GL_TEXTURE_3D_OES"/>
2098	</desc>
2099
2100	<desc name="internalFormat">
2101		<value name="GL_3DC_X_AMD" category="AMD_compressed_3DC_texture"/>
2102		<value name="GL_3DC_XY_AMD" category="AMD_compressed_3DC_texture"/>
2103		<value name="GL_ATC_RGB_AMD" category="AMD_compressed_ATC_texture"/>
2104		<value name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD" category="AMD_compressed_ATC_texture"/>
2105		<value name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD" category="AMD_compressed_ATC_texture"/>
2106	</desc>
2107</template>
2108
2109<template name="CompressedTexSubImage3D">
2110	<proto>
2111		<return type="void"/>
2112		<param name="target" type="GLenum"/>
2113		<param name="level" type="GLint"/>
2114		<param name="xoffset" type="GLint"/>
2115		<param name="yoffset" type="GLint"/>
2116		<param name="zoffset" type="GLint"/>
2117		<param name="width" type="GLsizei"/>
2118		<param name="height" type="GLsizei"/>
2119		<param name="depth" type="GLsizei"/>
2120		<param name="format" type="GLenum"/>
2121		<param name="imagesize" type="GLsizei"/>
2122		<param name="data" type="const GLvoid *"/>
2123	</proto>
2124
2125	<desc name="target">
2126		<value name="GL_TEXTURE_3D_OES"/>
2127	</desc>
2128</template>
2129
2130<template name="ActiveTexture">
2131	<proto>
2132		<return type="void"/>
2133		<param name="texture" type="GLenum"/>
2134	</proto>
2135</template>
2136
2137<template name="ClientActiveTexture">
2138	<proto>
2139		<return type="void"/>
2140		<param name="texture" type="GLenum"/>
2141	</proto>
2142</template>
2143
2144<template name="SampleCoverage">
2145	<proto>
2146		<return type="void"/>
2147		<param name="value" type="GLtype"/>
2148		<param name="invert" type="GLboolean"/>
2149	</proto>
2150</template>
2151
2152<template name="CompressedTexImage2D">
2153	<proto>
2154		<return type="void"/>
2155		<param name="target" type="GLenum"/>
2156		<param name="level" type="GLint"/>
2157		<param name="internalFormat" type="GLenum"/>
2158		<param name="width" type="GLsizei"/>
2159		<param name="height" type="GLsizei"/>
2160		<param name="border" type="GLint"/>
2161		<param name="imageSize" type="GLsizei"/>
2162		<param name="data" type="const GLvoid *"/>
2163	</proto>
2164
2165	<desc name="target">
2166		<value name="GL_TEXTURE_2D"/>
2167		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
2168		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
2169		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
2170		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
2171		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
2172		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
2173		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
2174		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
2175		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
2176		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
2177		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
2178		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
2179	</desc>
2180
2181	<desc name="internalFormat">
2182		<value name="GL_ETC1_RGB8_OES" category="OES_compressed_ETC1_RGB8_texture"/>
2183
2184		<value name="GL_PALETTE4_RGB8_OES" category="OES_compressed_paletted_texture"/>
2185		<value name="GL_PALETTE4_RGBA8_OES" category="OES_compressed_paletted_texture"/>
2186		<value name="GL_PALETTE4_R5_G6_B5_OES" category="OES_compressed_paletted_texture"/>
2187		<value name="GL_PALETTE4_RGBA4_OES" category="OES_compressed_paletted_texture"/>
2188		<value name="GL_PALETTE4_RGB5_A1_OES" category="OES_compressed_paletted_texture"/>
2189		<value name="GL_PALETTE8_RGB8_OES" category="OES_compressed_paletted_texture"/>
2190		<value name="GL_PALETTE8_RGBA8_OES" category="OES_compressed_paletted_texture"/>
2191		<value name="GL_PALETTE8_R5_G6_B5_OES" category="OES_compressed_paletted_texture"/>
2192		<value name="GL_PALETTE8_RGBA4_OES" category="OES_compressed_paletted_texture"/>
2193		<value name="GL_PALETTE8_RGB5_A1_OES" category="OES_compressed_paletted_texture"/>
2194
2195		<value name="GL_3DC_X_AMD" category="AMD_compressed_3DC_texture"/>
2196		<value name="GL_3DC_XY_AMD" category="AMD_compressed_3DC_texture"/>
2197
2198		<value name="GL_ATC_RGB_AMD" category="AMD_compressed_ATC_texture"/>
2199		<value name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD" category="AMD_compressed_ATC_texture"/>
2200		<value name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD" category="AMD_compressed_ATC_texture"/>
2201
2202		<value name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
2203		<value name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
2204	</desc>
2205
2206	<desc name="border" error="GL_INVALID_VALUE">
2207		<value name="0"/>
2208	</desc>
2209</template>
2210
2211<template name="CompressedTexSubImage2D">
2212	<proto>
2213		<return type="void"/>
2214		<param name="target" type="GLenum"/>
2215		<param name="level" type="GLint"/>
2216		<param name="xoffset" type="GLint"/>
2217		<param name="yoffset" type="GLint"/>
2218		<param name="width" type="GLsizei"/>
2219		<param name="height" type="GLsizei"/>
2220		<param name="format" type="GLenum"/>
2221		<param name="imageSize" type="GLsizei"/>
2222		<param name="data" type="const GLvoid *"/>
2223	</proto>
2224
2225	<desc name="target">
2226		<value name="GL_TEXTURE_2D"/>
2227		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
2228		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
2229		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
2230		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
2231		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
2232		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
2233		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
2234		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
2235		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
2236		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
2237		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
2238		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
2239	</desc>
2240
2241	<desc name="format">
2242		<value name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
2243		<value name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
2244	</desc>
2245</template>
2246
2247<template name="BlendFuncSeparate">
2248	<proto>
2249		<return type="void"/>
2250		<param name="srcRGB" type="GLenum"/>
2251		<param name="dstRGB" type="GLenum"/>
2252		<param name="srcAlpha" type="GLenum"/>
2253		<param name="dstAlpha" type="GLenum"/>
2254	</proto>
2255
2256	<desc name="srcRGB">
2257		<value name="GL_ZERO"/>
2258		<value name="GL_ONE"/>
2259		<value name="GL_SRC_COLOR"/>
2260		<value name="GL_ONE_MINUS_SRC_COLOR"/>
2261		<value name="GL_SRC_ALPHA"/>
2262		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
2263		<value name="GL_DST_ALPHA"/>
2264		<value name="GL_ONE_MINUS_DST_ALPHA"/>
2265		<value name="GL_DST_COLOR"/>
2266		<value name="GL_ONE_MINUS_DST_COLOR"/>
2267		<value name="GL_SRC_ALPHA_SATURATE"/>
2268
2269		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
2270		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
2271		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
2272		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
2273	</desc>
2274
2275	<desc name="dstRGB">
2276		<value name="GL_ZERO"/>
2277		<value name="GL_ONE"/>
2278		<value name="GL_SRC_COLOR"/>
2279		<value name="GL_ONE_MINUS_SRC_COLOR"/>
2280		<value name="GL_SRC_ALPHA"/>
2281		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
2282		<value name="GL_DST_ALPHA"/>
2283		<value name="GL_ONE_MINUS_DST_ALPHA"/>
2284		<value name="GL_DST_COLOR"/>
2285		<value name="GL_ONE_MINUS_DST_COLOR"/>
2286
2287		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
2288		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
2289		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
2290		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
2291	</desc>
2292
2293	<desc name="srcAlpha">
2294		<value name="GL_ZERO"/>
2295		<value name="GL_ONE"/>
2296		<value name="GL_SRC_COLOR"/>
2297		<value name="GL_ONE_MINUS_SRC_COLOR"/>
2298		<value name="GL_SRC_ALPHA"/>
2299		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
2300		<value name="GL_DST_ALPHA"/>
2301		<value name="GL_ONE_MINUS_DST_ALPHA"/>
2302		<value name="GL_DST_COLOR"/>
2303		<value name="GL_ONE_MINUS_DST_COLOR"/>
2304		<value name="GL_SRC_ALPHA_SATURATE"/>
2305
2306		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
2307		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
2308		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
2309		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
2310	</desc>
2311
2312	<desc name="dstAlpha">
2313		<value name="GL_ZERO"/>
2314		<value name="GL_ONE"/>
2315		<value name="GL_SRC_COLOR"/>
2316		<value name="GL_ONE_MINUS_SRC_COLOR"/>
2317		<value name="GL_SRC_ALPHA"/>
2318		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
2319		<value name="GL_DST_ALPHA"/>
2320		<value name="GL_ONE_MINUS_DST_ALPHA"/>
2321		<value name="GL_DST_COLOR"/>
2322		<value name="GL_ONE_MINUS_DST_COLOR"/>
2323
2324		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
2325		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
2326		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
2327		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
2328	</desc>
2329</template>
2330
2331<template name="PointParameter">
2332	<proto>
2333		<return type="void"/>
2334		<param name="pname" type="GLenum"/>
2335		<vector name="params" type="const GLtype *" size="dynamic">
2336			<param name="param" type="GLtype"/>
2337		</vector>
2338	</proto>
2339
2340	<desc name="pname">
2341		<value name="GL_POINT_SIZE_MIN"/>
2342		<value name="GL_POINT_SIZE_MAX"/>
2343		<value name="GL_POINT_FADE_THRESHOLD_SIZE"/>
2344
2345		<desc name="params" vector_size="1"/>
2346	</desc>
2347
2348	<desc name="pname">
2349		<value name="GL_POINT_DISTANCE_ATTENUATION"/>
2350		<desc name="params" vector_size="3"/>
2351	</desc>
2352</template>
2353
2354<template name="VertexAttrib">
2355	<proto>
2356		<return type="void"/>
2357		<param name="index" type="GLuint"/>
2358		<vector name="v" type="const GLtype *" size="dynamic">
2359			<param name="x" type="GLtype"/>
2360			<param name="y" type="GLtype"/>
2361			<param name="z" type="GLtype"/>
2362			<param name="w" type="GLtype"/>
2363		</vector>
2364	</proto>
2365</template>
2366
2367<template name="VertexAttribPointer">
2368	<proto>
2369		<return type="void"/>
2370		<param name="index" type="GLuint"/>
2371		<param name="size" type="GLint"/>
2372		<param name="type" type="GLenum"/>
2373		<param name="normalized" type="GLboolean"/>
2374		<param name="stride" type="GLsizei"/>
2375		<param name="pointer" type="const GLvoid *"/>
2376	</proto>
2377
2378	<desc name="size" error="GL_INVALID_VALUE">
2379		<value name="1"/>
2380		<value name="2"/>
2381		<value name="3"/>
2382		<value name="4"/>
2383	</desc>
2384
2385	<desc name="type" error="GL_INVALID_VALUE">
2386		<value name="GL_BYTE"/>
2387		<value name="GL_UNSIGNED_BYTE"/>
2388		<value name="GL_SHORT"/>
2389		<value name="GL_UNSIGNED_SHORT"/>
2390		<value name="GL_FLOAT"/>
2391		<value name="GL_FIXED"/>
2392		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
2393		<value name="GL_UNSIGNED_INT_10_10_10_2_OES" category="OES_vertex_type_10_10_10_2"/>
2394		<value name="GL_INT_10_10_10_2_OES" category="OES_vertex_type_10_10_10_2"/>
2395	</desc>
2396
2397	<desc name="type" category="OES_vertex_type_10_10_10_2">
2398		<value name="GL_UNSIGNED_INT_10_10_10_2_OES"/>
2399		<value name="GL_INT_10_10_10_2_OES"/>
2400
2401		<desc name="size">
2402			<value name="3"/>
2403			<value name="4"/>
2404		</desc>
2405	</desc>
2406</template>
2407
2408<template name="EnableVertexAttribArray">
2409	<proto>
2410		<return type="void"/>
2411		<param name="index" type="GLuint"/>
2412	</proto>
2413</template>
2414
2415<template name="DisableVertexAttribArray">
2416	<proto>
2417		<return type="void"/>
2418		<param name="index" type="GLuint"/>
2419	</proto>
2420</template>
2421
2422<template name="IsProgram" direction="get">
2423	<proto>
2424		<return type="GLboolean"/>
2425		<param name="program" type="GLuint"/>
2426	</proto>
2427</template>
2428
2429<template name="GetProgram" direction="get">
2430	<proto>
2431		<return type="void"/>
2432		<param name="program" type="GLuint"/>
2433		<param name="pname" type="GLenum"/>
2434		<vector name="params" type="GLtype *" size="dynamic"/>
2435	</proto>
2436
2437	<desc name="pname">
2438		<value name="GL_DELETE_STATUS"/>
2439		<value name="GL_LINK_STATUS"/>
2440		<value name="GL_VALIDATE_STATUS"/>
2441		<value name="GL_INFO_LOG_LENGTH"/>
2442		<value name="GL_ATTACHED_SHADERS"/>
2443		<value name="GL_ACTIVE_ATTRIBUTES"/>
2444		<value name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
2445		<value name="GL_ACTIVE_UNIFORMS"/>
2446		<value name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
2447		<value name="GL_PROGRAM_BINARY_LENGTH_OES" category="OES_get_program_binary"/>
2448
2449		<desc name="params" convert="false"/>
2450	</desc>
2451</template>
2452
2453<template name="GetVertexAttrib" direction="get">
2454	<proto>
2455		<return type="void"/>
2456		<param name="index" type="GLuint"/>
2457		<param name="pname" type="GLenum"/>
2458		<vector name="params" type="GLtype *" size="dynamic"/>
2459	</proto>
2460
2461	<desc name="pname">
2462		<value name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
2463		<value name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
2464		<value name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
2465		<value name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
2466		<value name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
2467		<value name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
2468
2469		<desc name="params" vector_size="1" convert="false"/>
2470	</desc>
2471
2472	<desc name="pname">
2473		<value name="GL_CURRENT_VERTEX_ATTRIB"/>
2474		<desc name="params" vector_size="16?" convert="false"/>
2475	</desc>
2476</template>
2477
2478<template name="GetVertexAttribPointer" direction="get">
2479	<proto>
2480		<return type="void"/>
2481		<param name="index" type="GLuint"/>
2482		<param name="pname" type="GLenum"/>
2483		<vector name="pointer" type="GLvoid **" size="dynamic"/>
2484	</proto>
2485
2486	<desc name="pname">
2487		<value name="GL_VERTEX_ATTRIB_ARRAY_POINTER"/>
2488	</desc>
2489</template>
2490
2491<template name="GetBufferPointer" direction="get">
2492	<proto>
2493		<return type="void"/>
2494		<param name="target" type="GLenum"/>
2495		<param name="pname" type="GLenum"/>
2496		<vector name="params" type="GLvoid **" size="dynamic"/>
2497	</proto>
2498
2499	<desc name="target">
2500		<value name="GL_ARRAY_BUFFER"/>
2501		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2502	</desc>
2503
2504	<desc name="pname">
2505		<value name="GL_BUFFER_MAP_POINTER_OES"/>
2506	</desc>
2507</template>
2508
2509<template name="MapBuffer" direction="get">
2510	<proto>
2511		<return type="void *"/>
2512		<param name="target" type="GLenum"/>
2513		<param name="access" type="GLenum"/>
2514	</proto>
2515
2516	<desc name="target">
2517		<value name="GL_ARRAY_BUFFER"/>
2518		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2519	</desc>
2520
2521	<desc name="access">
2522		<value name="GL_WRITE_ONLY_OES"/>
2523	</desc>
2524</template>
2525
2526<template name="UnmapBuffer" direction="get">
2527	<proto>
2528		<return type="GLboolean"/>
2529		<param name="target" type="GLenum"/>
2530	</proto>
2531
2532	<desc name="target">
2533		<value name="GL_ARRAY_BUFFER"/>
2534		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2535	</desc>
2536</template>
2537
2538<template name="BindBuffer">
2539	<proto>
2540		<return type="void"/>
2541		<param name="target" type="GLenum"/>
2542		<param name="buffer" type="GLuint"/>
2543	</proto>
2544
2545	<desc name="target">
2546		<value name="GL_ARRAY_BUFFER"/>
2547		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2548	</desc>
2549</template>
2550
2551<template name="BufferData">
2552	<proto>
2553		<return type="void"/>
2554		<param name="target" type="GLenum"/>
2555		<param name="size" type="GLsizeiptr"/>
2556		<param name="data" type="const GLvoid *"/>
2557		<param name="usage" type="GLenum"/>
2558	</proto>
2559
2560	<desc name="target">
2561		<value name="GL_ARRAY_BUFFER"/>
2562		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2563	</desc>
2564
2565	<desc name="usage">
2566		<value name="GL_STATIC_DRAW"/>
2567		<value name="GL_DYNAMIC_DRAW"/>
2568		<value name="GL_STREAM_DRAW" category="GLES2.0"/>
2569	</desc>
2570</template>
2571
2572<template name="BufferSubData">
2573	<proto>
2574		<return type="void"/>
2575		<param name="target" type="GLenum"/>
2576		<param name="offset" type="GLintptr"/>
2577		<param name="size" type="GLsizeiptr"/>
2578		<param name="data" type="const GLvoid *"/>
2579	</proto>
2580
2581	<desc name="target">
2582		<value name="GL_ARRAY_BUFFER"/>
2583		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2584	</desc>
2585</template>
2586
2587<template name="DeleteBuffers">
2588	<proto>
2589		<return type="void"/>
2590		<param name="n" type="GLsizei"/>
2591		<param name="buffer" type="const GLuint *"/>
2592	</proto>
2593</template>
2594
2595<template name="GenBuffers" direction="get">
2596	<proto>
2597		<return type="void"/>
2598		<param name="n" type="GLsizei"/>
2599		<param name="buffer" type="GLuint *"/>
2600	</proto>
2601</template>
2602
2603<template name="GetBufferParameter" direction="get">
2604	<proto>
2605		<return type="void"/>
2606		<param name="target" type="GLenum"/>
2607		<param name="pname" type="GLenum"/>
2608		<vector name="params" type="GLtype *" size="dynamic"/>
2609	</proto>
2610
2611	<desc name="target">
2612		<value name="GL_ARRAY_BUFFER"/>
2613		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2614	</desc>
2615
2616	<desc name="pname">
2617		<value name="GL_BUFFER_SIZE"/>
2618		<value name="GL_BUFFER_USAGE"/>
2619		<value name="GL_BUFFER_ACCESS_OES" category="OES_mapbuffer"/>
2620		<value name="GL_BUFFER_MAPPED_OES" category="OES_mapbuffer"/>
2621	</desc>
2622</template>
2623
2624<template name="IsBuffer" direction="get">
2625	<proto>
2626		<return type="GLboolean"/>
2627		<param name="buffer" type="GLuint"/>
2628	</proto>
2629</template>
2630
2631<template name="CreateShader">
2632	<proto>
2633		<return type="GLuint"/>
2634		<param name="type" type="GLenum"/>
2635	</proto>
2636
2637	<desc name="type">
2638		<value name="GL_VERTEX_SHADER"/>
2639		<value name="GL_FRAGMENT_SHADER"/>
2640	</desc>
2641</template>
2642
2643<template name="ShaderSource">
2644	<proto>
2645		<return type="void"/>
2646		<param name="shader" type="GLuint"/>
2647		<param name="count" type="GLsizei"/>
2648		<param name="string" type="const GLchar * const *"/>
2649		<param name="length" type="const int *"/>
2650	</proto>
2651</template>
2652
2653<template name="CompileShader">
2654	<proto>
2655		<return type="void"/>
2656		<param name="shader" type="GLuint"/>
2657	</proto>
2658</template>
2659
2660<template name="ReleaseShaderCompiler">
2661	<proto>
2662		<return type="void"/>
2663	</proto>
2664</template>
2665
2666<template name="DeleteShader">
2667	<proto>
2668		<return type="void"/>
2669		<param name="shader" type="GLuint"/>
2670	</proto>
2671</template>
2672
2673<template name="ShaderBinary">
2674	<proto>
2675		<return type="void"/>
2676		<param name="n" type="GLsizei"/>
2677		<param name="shaders" type="const GLuint *"/>
2678		<param name="binaryformat" type="GLenum"/>
2679		<param name="binary" type="const GLvoid *"/>
2680		<param name="length" type="GLsizei"/>
2681	</proto>
2682</template>
2683
2684<template name="CreateProgram">
2685	<proto>
2686		<return type="GLuint"/>
2687	</proto>
2688</template>
2689
2690<template name="AttachShader">
2691	<proto>
2692		<return type="void"/>
2693		<param name="program" type="GLuint"/>
2694		<param name="shader" type="GLuint"/>
2695	</proto>
2696</template>
2697
2698<template name="DetachShader">
2699	<proto>
2700		<return type="void"/>
2701		<param name="program" type="GLuint"/>
2702		<param name="shader" type="GLuint"/>
2703	</proto>
2704</template>
2705
2706<template name="LinkProgram">
2707	<proto>
2708		<return type="void"/>
2709		<param name="program" type="GLuint"/>
2710	</proto>
2711</template>
2712
2713<template name="UseProgram">
2714	<proto>
2715		<return type="void"/>
2716		<param name="program" type="GLuint"/>
2717	</proto>
2718</template>
2719
2720<template name="DeleteProgram">
2721	<proto>
2722		<return type="void"/>
2723		<param name="program" type="GLuint"/>
2724	</proto>
2725</template>
2726
2727<template name="GetActiveAttrib" direction="get">
2728	<proto>
2729		<return type="void"/>
2730		<param name="program" type="GLuint"/>
2731		<param name="index" type="GLuint"/>
2732		<param name="bufSize" type="GLsizei"/>
2733		<param name="length" type="GLsizei *"/>
2734		<param name="size" type="GLint *"/>
2735		<param name="type" type="GLenum *"/>
2736		<param name="name" type="GLchar *"/>
2737	</proto>
2738</template>
2739
2740<template name="GetAttribLocation" direction="get">
2741	<proto>
2742		<return type="GLint"/>
2743		<param name="program" type="GLuint"/>
2744		<param name="name" type="const char *"/>
2745	</proto>
2746</template>
2747
2748<template name="BindAttribLocation">
2749	<proto>
2750		<return type="void"/>
2751		<param name="program" type="GLuint"/>
2752		<param name="index" type="GLuint"/>
2753		<param name="name" type="const char *"/>
2754	</proto>
2755</template>
2756
2757<template name="GetUniformLocation" direction="get">
2758	<proto>
2759		<return type="GLint"/>
2760		<param name="program" type="GLuint"/>
2761		<param name="name" type="const char *"/>
2762	</proto>
2763</template>
2764
2765<template name="GetActiveUniform" direction="get">
2766	<proto>
2767		<return type="void"/>
2768		<param name="program" type="GLuint"/>
2769		<param name="index" type="GLuint"/>
2770		<param name="bufSize" type="GLsizei"/>
2771		<param name="length" type="GLsizei *"/>
2772		<param name="size" type="GLint *"/>
2773		<param name="type" type="GLenum *"/>
2774		<param name="name" type="GLchar *"/>
2775	</proto>
2776</template>
2777
2778<template name="Uniform">
2779	<proto>
2780		<return type="void"/>
2781		<param name="location" type="GLint"/>
2782		<param name="count" type="GLsizei" hide_if_expanded="true"/>
2783		<vector name="values" type="const GLtype *" size="dynamic">
2784			<param name="v0" type="GLtype"/>
2785			<param name="v1" type="GLtype"/>
2786			<param name="v2" type="GLtype"/>
2787			<param name="v3" type="GLtype"/>
2788		</vector>
2789	</proto>
2790</template>
2791
2792<template name="UniformMatrix">
2793	<proto>
2794		<return type="void"/>
2795		<param name="location" type="GLint"/>
2796		<param name="count" type="GLsizei"/>
2797		<param name="transpose" type="GLboolean"/>
2798		<vector name="value" type="const GLtype *" size="dynamic"/>
2799	</proto>
2800</template>
2801
2802<template name="ValidateProgram">
2803	<proto>
2804		<return type="void"/>
2805		<param name="program" type="GLuint"/>
2806	</proto>
2807</template>
2808
2809<template name="GenerateMipmap">
2810	<proto>
2811		<return type="void"/>
2812		<param name="target" type="GLenum"/>
2813	</proto>
2814
2815	<desc name="target">
2816		<value name="GL_TEXTURE_2D"/>
2817		<value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
2818		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
2819		<value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
2820	</desc>
2821</template>
2822
2823<template name="BindFramebuffer">
2824	<proto>
2825		<return type="void"/>
2826		<param name="target" type="GLenum"/>
2827		<param name="framebuffer" type="GLuint"/>
2828	</proto>
2829</template>
2830
2831<template name="DeleteFramebuffers">
2832	<proto>
2833		<return type="void"/>
2834		<param name="n" type="GLsizei"/>
2835		<param name="framebuffers" type="const GLuint *"/>
2836	</proto>
2837</template>
2838
2839<template name="GenFramebuffers">
2840	<proto>
2841		<return type="void"/>
2842		<param name="n" type="GLsizei"/>
2843		<param name="ids" type="GLuint *"/>
2844	</proto>
2845</template>
2846
2847<template name="BindRenderbuffer">
2848	<proto>
2849		<return type="void"/>
2850		<param name="target" type="GLenum"/>
2851		<param name="renderbuffer" type="GLuint"/>
2852	</proto>
2853</template>
2854
2855<template name="DeleteRenderbuffers">
2856	<proto>
2857		<return type="void"/>
2858		<param name="n" type="GLsizei"/>
2859		<param name="renderbuffers" type="const GLuint *"/>
2860	</proto>
2861</template>
2862
2863<template name="GenRenderbuffers">
2864	<proto>
2865		<return type="void"/>
2866		<param name="n" type="GLsizei"/>
2867		<param name="renderbuffers" type="GLuint *"/>
2868	</proto>
2869</template>
2870
2871<template name="RenderbufferStorage">
2872	<proto>
2873		<return type="void"/>
2874		<param name="target" type="GLenum"/>
2875		<param name="internalFormat" type="GLenum"/>
2876		<param name="width" type="GLsizei"/>
2877		<param name="height" type="GLsizei"/>
2878	</proto>
2879
2880	<desc name="internalFormat">
2881		<value name="GL_DEPTH_COMPONENT16_OES" category="OES_framebuffer_object"/>
2882		<value name="GL_RGBA4_OES" category="OES_framebuffer_object"/>
2883		<value name="GL_RGB5_A1_OES" category="OES_framebuffer_object"/>
2884		<value name="GL_RGB565_OES" category="OES_framebuffer_object"/>
2885		<value name="GL_STENCIL_INDEX8_OES" category="OES_stencil8"/>
2886
2887		<value name="GL_DEPTH_COMPONENT16" category="GLES2.0"/>
2888		<value name="GL_RGBA4" category="GLES2.0"/>
2889		<value name="GL_RGB5_A1" category="GLES2.0"/>
2890		<value name="GL_RGB565" category="GLES2.0"/>
2891		<value name="GL_STENCIL_INDEX8" category="GLES2.0"/>
2892
2893		<value name="GL_DEPTH_COMPONENT24_OES" category="OES_depth24"/>
2894		<value name="GL_DEPTH_COMPONENT32_OES" category="OES_depth32"/>
2895		<value name="GL_RGB8_OES" category="OES_rgb8_rgba8"/>
2896		<value name="GL_RGBA8_OES" category="OES_rgb8_rgba8"/>
2897		<value name="GL_STENCIL_INDEX1_OES" category="OES_stencil1"/>
2898		<value name="GL_STENCIL_INDEX4_OES" category="OES_stencil4"/>
2899		<value name="GL_DEPTH24_STENCIL8_OES" category="OES_packed_depth_stencil"/>
2900	</desc>
2901</template>
2902
2903<template name="FramebufferRenderbuffer">
2904	<proto>
2905		<return type="void"/>
2906		<param name="target" type="GLenum"/>
2907		<param name="attachment" type="GLenum"/>
2908		<param name="renderbuffertarget" type="GLenum"/>
2909		<param name="renderbuffer" type="GLuint"/>
2910	</proto>
2911</template>
2912
2913<template name="FramebufferTexture2D">
2914	<proto>
2915		<return type="void"/>
2916		<param name="target" type="GLenum"/>
2917		<param name="attachment" type="GLenum"/>
2918		<param name="textarget" type="GLenum"/>
2919		<param name="texture" type="GLuint"/>
2920		<param name="level" type="GLint"/>
2921	</proto>
2922
2923	<desc name="textarget" error="GL_INVALID_OPERATION">
2924		<value name="GL_TEXTURE_2D"/>
2925		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
2926		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
2927		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
2928		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
2929		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
2930		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
2931		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
2932		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
2933		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
2934		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
2935		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
2936		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
2937	</desc>
2938	<!-- According to the base specification, "level" must be 0.  But
2939	     extension GL_OES_fbo_render_mipmap lifts that restriction,
2940	     so no restriction is placed here. -->
2941</template>
2942
2943<template name="FramebufferTexture3D">
2944	<proto>
2945		<return type="void"/>
2946		<param name="target" type="GLenum"/>
2947		<param name="attachment" type="GLenum"/>
2948		<param name="textarget" type="GLenum"/>
2949		<param name="texture" type="GLuint"/>
2950		<param name="level" type="GLint"/>
2951		<param name="zoffset" type="GLint"/>
2952	</proto>
2953
2954	<desc name="textarget" error="GL_INVALID_OPERATION">
2955		<value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
2956	</desc>
2957</template>
2958
2959<template name="CheckFramebufferStatus" direction="get">
2960	<proto>
2961		<return type="GLenum"/>
2962		<param name="target" type="GLenum"/>
2963	</proto>
2964</template>
2965
2966<template name="GetFramebufferAttachmentParameter" direction="get">
2967	<proto>
2968		<return type="void"/>
2969		<param name="target" type="GLenum"/>
2970		<param name="attachment" type="GLenum"/>
2971		<param name="pname" type="GLenum"/>
2972		<vector name="params" type="GLtype *" size="dynamic"/>
2973	</proto>
2974
2975	<desc name="pname">
2976		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES" category="OES_framebuffer_object"/>
2977		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES" category="OES_framebuffer_object"/>
2978		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES" category="OES_framebuffer_object"/>
2979		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES" category="OES_framebuffer_object"/>
2980
2981		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE" category="GLES2.0"/>
2982		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" category="GLES2.0"/>
2983		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" category="GLES2.0"/>
2984		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" category="GLES2.0"/>
2985		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES" category="OES_texture_3D"/>
2986
2987		<desc name="params" vector_size="1" convert="false"/>
2988	</desc>
2989</template>
2990
2991<template name="GetRenderbufferParameter" direction="get">
2992	<proto>
2993		<return type="void"/>
2994		<param name="target" type="GLenum"/>
2995		<param name="pname" type="GLenum"/>
2996		<vector name="params" type="GLtype *" size="dynamic"/>
2997	</proto>
2998
2999	<desc name="pname" category="OES_framebuffer_object">
3000		<value name="GL_RENDERBUFFER_WIDTH_OES"/>
3001		<value name="GL_RENDERBUFFER_HEIGHT_OES"/>
3002		<value name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES"/>
3003		<value name="GL_RENDERBUFFER_RED_SIZE_OES"/>
3004		<value name="GL_RENDERBUFFER_GREEN_SIZE_OES"/>
3005		<value name="GL_RENDERBUFFER_BLUE_SIZE_OES"/>
3006		<value name="GL_RENDERBUFFER_ALPHA_SIZE_OES"/>
3007		<value name="GL_RENDERBUFFER_DEPTH_SIZE_OES"/>
3008		<value name="GL_RENDERBUFFER_STENCIL_SIZE_OES"/>
3009
3010		<desc name="params" vector_size="1" convert="false"/>
3011	</desc>
3012
3013	<desc name="pname" category="GLES2.0">
3014		<value name="GL_RENDERBUFFER_WIDTH"/>
3015		<value name="GL_RENDERBUFFER_HEIGHT"/>
3016		<value name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
3017		<value name="GL_RENDERBUFFER_RED_SIZE"/>
3018		<value name="GL_RENDERBUFFER_GREEN_SIZE"/>
3019		<value name="GL_RENDERBUFFER_BLUE_SIZE"/>
3020		<value name="GL_RENDERBUFFER_ALPHA_SIZE"/>
3021		<value name="GL_RENDERBUFFER_DEPTH_SIZE"/>
3022		<value name="GL_RENDERBUFFER_STENCIL_SIZE"/>
3023
3024		<desc name="params" vector_size="1" convert="false"/>
3025	</desc>
3026</template>
3027
3028<template name="IsRenderbuffer" direction="get">
3029	<proto>
3030		<return type="GLboolean"/>
3031		<param name="renderbuffer" type="GLuint"/>
3032	</proto>
3033</template>
3034
3035<template name="IsFramebuffer" direction="get">
3036	<proto>
3037		<return type="GLboolean"/>
3038		<param name="framebuffer" type="GLuint"/>
3039	</proto>
3040</template>
3041
3042<template name="IsShader" direction="get">
3043	<proto>
3044		<return type="GLboolean"/>
3045		<param name="shader" type="GLuint"/>
3046	</proto>
3047</template>
3048
3049<template name="GetShader" direction="get">
3050	<proto>
3051		<return type="void"/>
3052		<param name="shader" type="GLuint"/>
3053		<param name="pname" type="GLenum"/>
3054		<vector name="params" type="GLtype *" size="dynamic"/>
3055	</proto>
3056
3057	<desc name="pname">
3058		<value name="GL_SHADER_TYPE"/>
3059		<value name="GL_COMPILE_STATUS"/>
3060		<value name="GL_DELETE_STATUS"/>
3061		<value name="GL_INFO_LOG_LENGTH"/>
3062		<value name="GL_SHADER_SOURCE_LENGTH"/>
3063	</desc>
3064</template>
3065
3066<template name="GetAttachedShaders" direction="get">
3067	<proto>
3068		<return type="void"/>
3069		<param name="program" type="GLuint"/>
3070		<param name="maxCount" type="GLsizei"/>
3071		<param name="count" type="GLsizei *"/>
3072		<param name="shaders" type="GLuint *"/>
3073	</proto>
3074</template>
3075
3076<template name="GetShaderInfoLog" direction="get">
3077	<proto>
3078		<return type="void"/>
3079		<param name="shader" type="GLuint"/>
3080		<param name="bufSize" type="GLsizei"/>
3081		<param name="length" type="GLsizei *"/>
3082		<param name="infoLog" type="GLchar *"/>
3083	</proto>
3084</template>
3085
3086<template name="GetProgramInfoLog" direction="get">
3087	<proto>
3088		<return type="void"/>
3089		<param name="program" type="GLuint"/>
3090		<param name="bufSize" type="GLsizei"/>
3091		<param name="length" type="GLsizei *"/>
3092		<param name="infoLog" type="GLchar *"/>
3093	</proto>
3094</template>
3095
3096<template name="GetShaderSource" direction="get">
3097	<proto>
3098		<return type="void"/>
3099		<param name="shader" type="GLuint"/>
3100		<param name="bufSize" type="GLsizei"/>
3101		<param name="length" type="GLsizei *"/>
3102		<param name="source" type="GLchar *"/>
3103	</proto>
3104</template>
3105
3106<template name="GetShaderPrecisionFormat" direction="get">
3107	<proto>
3108		<return type="void"/>
3109		<param name="shadertype" type="GLenum"/>
3110		<param name="precisiontype" type="GLenum"/>
3111		<param name="range" type="GLint *"/>
3112		<param name="precision" type="GLint *"/>
3113	</proto>
3114
3115	<desc name="shadertype">
3116		<value name="GL_VERTEX_SHADER"/>
3117		<value name="GL_FRAGMENT_SHADER"/>
3118	</desc>
3119
3120	<desc name="precisiontype">
3121		<value name="GL_LOW_FLOAT"/>
3122		<value name="GL_MEDIUM_FLOAT"/>
3123		<value name="GL_HIGH_FLOAT"/>
3124		<value name="GL_LOW_INT"/>
3125		<value name="GL_MEDIUM_INT"/>
3126		<value name="GL_HIGH_INT"/>
3127	</desc>
3128</template>
3129
3130<template name="GetUniform" direction="get">
3131	<proto>
3132		<return type="void"/>
3133		<param name="program" type="GLuint"/>
3134		<param name="location" type="GLint"/>
3135		<vector name="params" type="GLtype *" size="dynamic"/>
3136	</proto>
3137</template>
3138
3139<template name="QueryMatrix" direction="get">
3140	<proto>
3141		<return type="GLbitfield"/>
3142		<vector name="mantissa" type="GLtype *" size="16"/>
3143		<vector name="exponent" type="GLint *" size="16"/>
3144	</proto>
3145</template>
3146
3147<template name="DrawTex">
3148	<proto>
3149		<return type="void"/>
3150		<vector name="coords" type="const GLtype *" size="5">
3151			<param name="x" type="GLtype"/>
3152			<param name="y" type="GLtype"/>
3153			<param name="z" type="GLtype"/>
3154			<param name="w" type="GLtype"/>
3155			<param name="h" type="GLtype"/>
3156		</vector>
3157	</proto>
3158</template>
3159
3160<template name="MultiDrawArrays">
3161	<proto>
3162		<return type="void"/>
3163		<param name="mode" type="GLenum"/>
3164		<param name="first" type="const GLint *"/>
3165		<param name="count" type="const GLsizei *"/>
3166		<param name="primcount" type="GLsizei"/>
3167	</proto>
3168
3169	<desc name="mode">
3170		<value name="GL_POINTS"/>
3171		<value name="GL_LINES"/>
3172		<value name="GL_LINE_LOOP"/>
3173		<value name="GL_LINE_STRIP"/>
3174		<value name="GL_TRIANGLES"/>
3175		<value name="GL_TRIANGLE_STRIP"/>
3176		<value name="GL_TRIANGLE_FAN"/>
3177	</desc>
3178</template>
3179
3180<template name="MultiDrawElements">
3181	<proto>
3182		<return type="void"/>
3183		<param name="mode" type="GLenum"/>
3184		<param name="count" type="const GLsizei *"/>
3185		<param name="type" type="GLenum"/>
3186		<param name="indices" type="const GLvoid **"/>
3187		<param name="primcount" type="GLsizei"/>
3188	</proto>
3189
3190	<desc name="mode">
3191		<value name="GL_POINTS"/>
3192		<value name="GL_LINES"/>
3193		<value name="GL_LINE_LOOP"/>
3194		<value name="GL_LINE_STRIP"/>
3195		<value name="GL_TRIANGLES"/>
3196		<value name="GL_TRIANGLE_STRIP"/>
3197		<value name="GL_TRIANGLE_FAN"/>
3198	</desc>
3199
3200	<desc name="type">
3201		<value name="GL_UNSIGNED_BYTE"/>
3202		<value name="GL_UNSIGNED_SHORT"/>
3203		<value name="GL_UNSIGNED_INT" category="OES_element_index_uint"/>
3204	</desc>
3205</template>
3206
3207<template name="EGLImageTargetTexture2D">
3208	<proto>
3209		<return type="void"/>
3210		<param name="target" type="GLenum"/>
3211		<param name="image" type="GLeglImageOES"/>
3212	</proto>
3213
3214	<desc name="target">
3215		<value name="GL_TEXTURE_2D"/>
3216		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
3217	</desc>
3218</template>
3219
3220<template name="EGLImageTargetRenderbufferStorage">
3221	<proto>
3222		<return type="void"/>
3223		<param name="target" type="GLenum"/>
3224		<param name="image" type="GLeglImageOES"/>
3225	</proto>
3226</template>
3227
3228<template name="DrawBuffers">
3229	<proto>
3230		<return type="void"/>
3231		<param name="n" type="GLsizei"/>
3232		<param name="bufs" type="const GLenum *"/>
3233	</proto>
3234</template>
3235
3236<template name="ReadBuffer">
3237	<proto>
3238		<return type="void"/>
3239		<param name="mode" type="GLenum"/>
3240	</proto>
3241</template>
3242
3243<api name="mesa" implementation="true">
3244	<category name="MESA"/>
3245
3246	<function name="Color4f"  default_prefix="_es_" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3247	<function name="ClipPlane" template="ClipPlane" gltype="GLdouble"/>
3248	<function name="CullFace" template="CullFace"/>
3249
3250	<function name="Fogf" template="Fog" gltype="GLfloat" expand_vector="true"/>
3251	<function name="Fogfv" template="Fog" gltype="GLfloat"/>
3252
3253	<function name="FrontFace" template="FrontFace"/>
3254	<function name="Hint" template="Hint"/>
3255
3256	<function name="Lightf" template="Light" gltype="GLfloat" expand_vector="true"/>
3257	<function name="Lightfv" template="Light" gltype="GLfloat"/>
3258
3259	<function name="LightModelf" template="LightModel" gltype="GLfloat" expand_vector="true"/>
3260	<function name="LightModelfv" template="LightModel" gltype="GLfloat"/>
3261
3262	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
3263
3264	<function name="Materialf" default_prefix="_es_" template="Material" gltype="GLfloat" expand_vector="true"/>
3265	<function name="Materialfv" default_prefix="_es_" template="Material" gltype="GLfloat"/>
3266
3267	<function name="PointSize" template="PointSize" gltype="GLfloat"/>
3268	<function name="PointSizePointer" template="PointSizePointer"/>
3269
3270	<function name="Scissor" template="Scissor"/>
3271	<function name="ShadeModel" template="ShadeModel"/>
3272
3273	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
3274	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
3275	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
3276	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
3277
3278	<function name="TexImage2D" template="TexImage2D"/>
3279
3280	<function name="TexEnvf" template="TexEnv" gltype="GLfloat" expand_vector="true"/>
3281	<function name="TexEnvi" template="TexEnv" gltype="GLint" expand_vector="true"/>
3282	<function name="TexEnvfv" template="TexEnv" gltype="GLfloat"/>
3283	<function name="TexEnviv" template="TexEnv" gltype="GLint"/>
3284
3285	<function name="TexGenf" template="TexGen" gltype="GLfloat" expand_vector="true"/>
3286	<function name="TexGenfv" template="TexGen" gltype="GLfloat"/>
3287
3288	<function name="Clear" template="Clear"/>
3289	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
3290	<function name="ClearStencil" template="ClearStencil"/>
3291	<function name="ClearDepth" template="ClearDepth" gltype="GLclampd"/>
3292	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
3293
3294	<function name="StencilMask" template="StencilMask"/>
3295	<function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
3296	<function name="ColorMask" template="ColorMask"/>
3297	<function name="DepthMask" template="DepthMask"/>
3298	<function name="Disable" template="Disable"/>
3299	<function name="Enable" template="Enable"/>
3300	<function name="Finish" template="Finish"/>
3301	<function name="Flush" template="Flush"/>
3302
3303	<function name="AlphaFunc" template="AlphaFunc" gltype="GLclampf"/>
3304
3305	<function name="BlendFunc" template="BlendFunc"/>
3306	<function name="LogicOp" template="LogicOp"/>
3307	<function name="StencilFunc" template="StencilFunc"/>
3308	<function name="StencilFuncSeparate" template="StencilFuncSeparate"/>
3309	<function name="StencilOp" template="StencilOp"/>
3310	<function name="StencilOpSeparate" template="StencilOpSeparate"/>
3311	<function name="DepthFunc" template="DepthFunc"/>
3312	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
3313
3314	<function name="ReadPixels" template="ReadPixels"/>
3315	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
3316	<function name="GetClipPlane" template="GetClipPlane" gltype="GLdouble"/>
3317	<function name="GetError" template="GetError"/>
3318	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
3319	<function name="GetFixedv" template="GetState" gltype="GLfixed"/>
3320	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
3321
3322	<function name="GetLightfv" template="GetLight" gltype="GLfloat"/>
3323	<function name="GetMaterialfv" template="GetMaterial" gltype="GLfloat"/>
3324	<function name="GetMaterialiv" template="GetMaterial" gltype="GLint"/>
3325
3326	<function name="GetString" template="GetString"/>
3327
3328	<function name="GetTexEnvfv" template="GetTexEnv" gltype="GLfloat"/>
3329	<function name="GetTexEnviv" template="GetTexEnv" gltype="GLint"/>
3330	<function name="GetTexGenfv" template="GetTexGen" gltype="GLfloat"/>
3331	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
3332	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
3333
3334	<function name="IsEnabled" template="IsEnabled"/>
3335
3336	<function name="DepthRange" template="DepthRange" gltype="GLclampd"/>
3337	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
3338	<function name="Frustum" template="Frustum" gltype="GLdouble"/>
3339
3340	<function name="LoadIdentity" template="LoadIdentity"/>
3341	<function name="LoadMatrixf" template="LoadMatrix" gltype="GLfloat"/>
3342	<function name="MatrixMode" template="MatrixMode"/>
3343
3344	<function name="MultMatrixf" template="MultMatrix" gltype="GLfloat"/>
3345	<function name="Ortho" template="Ortho" gltype="GLdouble"/>
3346	<function name="PopMatrix" template="PopMatrix"/>
3347	<function name="PushMatrix" template="PushMatrix"/>
3348
3349	<function name="Rotatef" template="Rotate" gltype="GLfloat"/>
3350	<function name="Scalef" template="Scale" gltype="GLfloat"/>
3351	<function name="Translatef" template="Translate" gltype="GLfloat"/>
3352
3353	<function name="Viewport" template="Viewport"/>
3354
3355	<function name="ColorPointer" template="ColorPointer"/>
3356	<function name="DisableClientState" template="DisableClientState"/>
3357	<function name="DrawArrays" template="DrawArrays"/>
3358	<function name="DrawElements" template="DrawElements"/>
3359	<function name="EnableClientState" template="EnableClientState"/>
3360
3361	<function name="GetPointerv" template="GetPointer"/>
3362	<function name="Normal3f" default_prefix="_es_" template="Normal" gltype="GLfloat" expand_vector="true"/>
3363	<function name="NormalPointer" template="NormalPointer"/>
3364	<function name="TexCoordPointer" template="TexCoordPointer"/>
3365	<function name="VertexPointer" template="VertexPointer"/>
3366
3367	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
3368	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
3369	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
3370	<function name="TexSubImage2D" template="TexSubImage2D"/>
3371
3372	<function name="BindTexture" template="BindTexture"/>
3373	<function name="DeleteTextures" template="DeleteTextures"/>
3374	<function name="GenTextures" template="GenTextures"/>
3375	<function name="IsTexture" template="IsTexture"/>
3376
3377	<function name="BlendColor" template="BlendColor" gltype="GLclampf"/>
3378	<function name="BlendEquation" template="BlendEquation"/>
3379	<function name="BlendEquationSeparateEXT" template="BlendEquationSeparate"/>
3380
3381	<function name="TexImage3D" template="TexImage3D"/>
3382	<function name="TexSubImage3D" template="TexSubImage3D"/>
3383	<function name="CopyTexSubImage3D" template="CopyTexSubImage3D"/>
3384
3385	<function name="CompressedTexImage3DARB" template="CompressedTexImage3D"/>
3386	<function name="CompressedTexSubImage3DARB" template="CompressedTexSubImage3D"/>
3387
3388	<function name="ActiveTextureARB" template="ActiveTexture"/>
3389	<function name="ClientActiveTextureARB" template="ClientActiveTexture"/>
3390
3391	<function name="MultiTexCoord4f" default_prefix="_es_" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3392
3393	<function name="SampleCoverageARB" template="SampleCoverage" gltype="GLclampf"/>
3394
3395	<function name="CompressedTexImage2DARB" template="CompressedTexImage2D"/>
3396	<function name="CompressedTexSubImage2DARB" template="CompressedTexSubImage2D"/>
3397
3398	<function name="BlendFuncSeparateEXT" template="BlendFuncSeparate"/>
3399
3400	<function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
3401	<function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
3402
3403	<function name="VertexAttrib1f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
3404	<function name="VertexAttrib2f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
3405	<function name="VertexAttrib3f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
3406	<function name="VertexAttrib4f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3407	<function name="VertexAttrib1fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
3408	<function name="VertexAttrib2fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
3409	<function name="VertexAttrib3fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
3410	<function name="VertexAttrib4fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
3411
3412	<function name="VertexAttribPointerARB" template="VertexAttribPointer"/>
3413	<function name="EnableVertexAttribArrayARB" template="EnableVertexAttribArray"/>
3414	<function name="DisableVertexAttribArrayARB" template="DisableVertexAttribArray"/>
3415
3416	<function name="IsProgram" template="IsProgram"/>
3417	<function name="GetProgramiv" template="GetProgram" gltype="GLint"/>
3418
3419	<function name="GetVertexAttribfvARB" template="GetVertexAttrib" gltype="GLfloat"/>
3420	<function name="GetVertexAttribivARB" template="GetVertexAttrib" gltype="GLint"/>
3421	<function name="GetVertexAttribPointervARB" template="GetVertexAttribPointer"/>
3422
3423	<function name="GetBufferPointervARB" template="GetBufferPointer"/>
3424	<function name="MapBufferARB" template="MapBuffer"/>
3425	<function name="UnmapBufferARB" template="UnmapBuffer"/>
3426	<function name="BindBufferARB" template="BindBuffer"/>
3427	<function name="BufferDataARB" template="BufferData"/>
3428	<function name="BufferSubDataARB" template="BufferSubData"/>
3429	<function name="DeleteBuffersARB" template="DeleteBuffers"/>
3430	<function name="GenBuffersARB" template="GenBuffers"/>
3431	<function name="GetBufferParameterivARB" template="GetBufferParameter" gltype="GLint"/>
3432	<function name="IsBufferARB" template="IsBuffer"/>
3433
3434	<function name="CreateShader" template="CreateShader"/>
3435	<function name="ShaderSourceARB" template="ShaderSource"/>
3436	<function name="CompileShaderARB" template="CompileShader"/>
3437	<function name="ReleaseShaderCompiler" template="ReleaseShaderCompiler"/>
3438	<function name="DeleteShader" template="DeleteShader"/>
3439	<function name="ShaderBinary" template="ShaderBinary"/>
3440	<function name="CreateProgram" template="CreateProgram"/>
3441	<function name="AttachShader" template="AttachShader"/>
3442	<function name="DetachShader" template="DetachShader"/>
3443	<function name="LinkProgramARB" template="LinkProgram"/>
3444	<function name="UseProgramObjectARB" template="UseProgram"/>
3445	<function name="DeleteProgram" template="DeleteProgram"/>
3446
3447	<function name="GetActiveAttribARB" template="GetActiveAttrib"/>
3448	<function name="GetAttribLocationARB" template="GetAttribLocation"/>
3449	<function name="BindAttribLocationARB" template="BindAttribLocation"/>
3450	<function name="GetUniformLocationARB" template="GetUniformLocation"/>
3451	<function name="GetActiveUniformARB" template="GetActiveUniform"/>
3452
3453	<function name="Uniform1fARB" template="Uniform" gltype="GLfloat" vector_size="1" expand_vector="true"/>
3454	<function name="Uniform2fARB" template="Uniform" gltype="GLfloat" vector_size="2" expand_vector="true"/>
3455	<function name="Uniform3fARB" template="Uniform" gltype="GLfloat" vector_size="3" expand_vector="true"/>
3456	<function name="Uniform4fARB" template="Uniform" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3457	<function name="Uniform1iARB" template="Uniform" gltype="GLint" vector_size="1" expand_vector="true"/>
3458	<function name="Uniform2iARB" template="Uniform" gltype="GLint" vector_size="2" expand_vector="true"/>
3459	<function name="Uniform3iARB" template="Uniform" gltype="GLint" vector_size="3" expand_vector="true"/>
3460	<function name="Uniform4iARB" template="Uniform" gltype="GLint" vector_size="4" expand_vector="true"/>
3461	<function name="Uniform1fvARB" template="Uniform" gltype="GLfloat" vector_size="1"/>
3462	<function name="Uniform2fvARB" template="Uniform" gltype="GLfloat" vector_size="2"/>
3463	<function name="Uniform3fvARB" template="Uniform" gltype="GLfloat" vector_size="3"/>
3464	<function name="Uniform4fvARB" template="Uniform" gltype="GLfloat" vector_size="4"/>
3465	<function name="Uniform1ivARB" template="Uniform" gltype="GLint" vector_size="1"/>
3466	<function name="Uniform2ivARB" template="Uniform" gltype="GLint" vector_size="2"/>
3467	<function name="Uniform3ivARB" template="Uniform" gltype="GLint" vector_size="3"/>
3468	<function name="Uniform4ivARB" template="Uniform" gltype="GLint" vector_size="4"/>
3469
3470	<function name="UniformMatrix2fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="2"/>
3471	<function name="UniformMatrix3fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="3"/>
3472	<function name="UniformMatrix4fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="4"/>
3473
3474	<function name="ValidateProgramARB" template="ValidateProgram"/>
3475
3476	<function name="GenerateMipmapEXT" template="GenerateMipmap"/>
3477	<function name="BindFramebufferEXT" template="BindFramebuffer"/>
3478	<function name="DeleteFramebuffersEXT" template="DeleteFramebuffers"/>
3479	<function name="GenFramebuffersEXT" template="GenFramebuffers"/>
3480	<function name="BindRenderbufferEXT" template="BindRenderbuffer"/>
3481	<function name="DeleteRenderbuffersEXT" template="DeleteRenderbuffers"/>
3482	<function name="GenRenderbuffersEXT" template="GenRenderbuffers"/>
3483	<function name="RenderbufferStorageEXT" template="RenderbufferStorage"/>
3484	<function name="FramebufferRenderbufferEXT" template="FramebufferRenderbuffer"/>
3485	<function name="FramebufferTexture2DEXT" template="FramebufferTexture2D"/>
3486	<function name="FramebufferTexture3DEXT" template="FramebufferTexture3D"/>
3487	<function name="CheckFramebufferStatusEXT" template="CheckFramebufferStatus"/>
3488	<function name="GetFramebufferAttachmentParameterivEXT" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
3489	<function name="GetRenderbufferParameterivEXT" template="GetRenderbufferParameter" gltype="GLint"/>
3490	<function name="IsRenderbufferEXT" template="IsRenderbuffer"/>
3491	<function name="IsFramebufferEXT" template="IsFramebuffer"/>
3492
3493	<function name="IsShader" template="IsShader"/>
3494	<function name="GetShaderiv" template="GetShader" gltype="GLint"/>
3495	<function name="GetAttachedShaders" template="GetAttachedShaders"/>
3496	<function name="GetShaderInfoLog" template="GetShaderInfoLog"/>
3497	<function name="GetProgramInfoLog" template="GetProgramInfoLog"/>
3498	<function name="GetShaderSourceARB" template="GetShaderSource"/>
3499	<function name="GetShaderPrecisionFormat" template="GetShaderPrecisionFormat"/>
3500	<function name="GetUniformfvARB" template="GetUniform" gltype="GLfloat"/>
3501	<function name="GetUniformivARB" template="GetUniform" gltype="GLint"/>
3502
3503	<function name="DrawTexf" template="DrawTex" gltype="GLfloat" expand_vector="true"/>
3504	<function name="DrawTexfv" template="DrawTex" gltype="GLfloat"/>
3505	<function name="DrawTexi" template="DrawTex" gltype="GLint" expand_vector="true"/>
3506	<function name="DrawTexiv" template="DrawTex" gltype="GLint"/>
3507	<function name="DrawTexs" template="DrawTex" gltype="GLshort" expand_vector="true"/>
3508	<function name="DrawTexsv" template="DrawTex" gltype="GLshort"/>
3509
3510        <!-- EXT_multi_draw_arrays -->
3511        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
3512        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
3513
3514        <!-- OES_EGL_image -->
3515        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
3516        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
3517
3518	<function name="DrawBuffersARB" template="DrawBuffers"/>
3519
3520	<function name="ReadBuffer" template="ReadBuffer"/>
3521
3522</api>
3523
3524<api name="GLES1.1">
3525	<category name="GLES1.1"/>
3526
3527	<category name="OES_byte_coordinates"/>
3528	<category name="OES_fixed_point"/>
3529	<category name="OES_single_precision"/>
3530	<category name="OES_matrix_get"/>
3531	<category name="OES_read_format"/>
3532	<category name="OES_compressed_paletted_texture"/>
3533	<category name="OES_compressed_ETC1_RGB8_texture"/>
3534	<category name="OES_point_size_array"/>
3535	<category name="OES_point_sprite"/>
3536	<category name="OES_query_matrix"/>
3537	<category name="OES_draw_texture"/>
3538	<category name="OES_blend_equation_separate"/>
3539	<category name="OES_blend_func_separate"/>
3540	<category name="OES_blend_subtract"/>
3541	<category name="OES_stencil_wrap"/>
3542	<category name="OES_texture_cube_map"/>
3543	<category name="OES_texture_env_crossbar"/>
3544	<category name="OES_texture_mirrored_repeat"/>
3545	<category name="OES_framebuffer_object"/>
3546	<category name="OES_depth24"/>
3547	<category name="OES_depth32"/>
3548	<category name="OES_fbo_render_mipmap"/>
3549	<category name="OES_rgb8_rgba8"/>
3550	<category name="OES_stencil1"/>
3551	<category name="OES_stencil4"/>
3552	<category name="OES_stencil8"/>
3553	<category name="OES_element_index_uint"/>
3554	<category name="OES_mapbuffer"/>
3555	<category name="EXT_texture_filter_anisotropic"/>
3556	<category name="EXT_texture_format_BGRA8888"/>
3557	<category name="EXT_read_format_bgra"/>
3558
3559	<category name="ARB_texture_non_power_of_two"/>
3560	<!-- disabled due to missing enums
3561	<category name="EXT_texture_compression_dxt1"/>
3562	-->
3563	<category name="EXT_texture_lod_bias"/>
3564	<category name="EXT_blend_minmax"/>
3565	<category name="EXT_multi_draw_arrays"/>
3566	<category name="OES_EGL_image"/>
3567	<category name="OES_EGL_image_external"/>
3568
3569	<category name="OES_matrix_palette"/>
3570
3571	<function name="Color4f" external="true" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3572	<function name="Color4ub" template="Color" gltype="GLubyte" vector_size="4" expand_vector="true"/>
3573	<function name="Color4x" template="Color" gltype="GLfixed" vector_size="4" expand_vector="true"/>
3574
3575	<function name="ClipPlanef" template="ClipPlane" gltype="GLfloat"/>
3576	<function name="ClipPlanex" template="ClipPlane" gltype="GLfixed"/>
3577
3578	<function name="CullFace" template="CullFace"/>
3579
3580	<function name="Fogf" template="Fog" gltype="GLfloat" expand_vector="true"/>
3581	<function name="Fogx" template="Fog" gltype="GLfixed" expand_vector="true"/>
3582	<function name="Fogfv" template="Fog" gltype="GLfloat"/>
3583	<function name="Fogxv" template="Fog" gltype="GLfixed"/>
3584
3585	<function name="FrontFace" template="FrontFace"/>
3586	<function name="Hint" template="Hint"/>
3587
3588	<function name="Lightf" template="Light" gltype="GLfloat" expand_vector="true"/>
3589	<function name="Lightx" template="Light" gltype="GLfixed" expand_vector="true"/>
3590	<function name="Lightfv" template="Light" gltype="GLfloat"/>
3591	<function name="Lightxv" template="Light" gltype="GLfixed"/>
3592
3593	<function name="LightModelf" template="LightModel" gltype="GLfloat" expand_vector="true"/>
3594	<function name="LightModelx" template="LightModel" gltype="GLfixed" expand_vector="true"/>
3595	<function name="LightModelfv" template="LightModel" gltype="GLfloat"/>
3596	<function name="LightModelxv" template="LightModel" gltype="GLfixed"/>
3597
3598	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
3599	<function name="LineWidthx" template="LineWidth" gltype="GLfixed"/>
3600
3601	<function name="Materialf" external="true" template="Material" gltype="GLfloat" expand_vector="true"/>
3602	<function name="Materialfv" external="true" template="Material" gltype="GLfloat"/>
3603	<function name="Materialx" template="Material" gltype="GLfixed" expand_vector="true"/>
3604	<function name="Materialxv" template="Material" gltype="GLfixed"/>
3605
3606	<function name="PointSize" template="PointSize" gltype="GLfloat"/>
3607	<function name="PointSizex" template="PointSize" gltype="GLfixed"/>
3608	<function name="PointSizePointerOES" template="PointSizePointer"/>
3609
3610	<function name="Scissor" template="Scissor"/>
3611	<function name="ShadeModel" template="ShadeModel"/>
3612
3613	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
3614	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
3615	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
3616	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
3617	<function name="TexParameterx" template="TexParameter" gltype="GLfixed" expand_vector="true"/>
3618	<function name="TexParameterxv" template="TexParameter" gltype="GLfixed"/>
3619
3620	<function name="TexImage2D" template="TexImage2D"/>
3621
3622	<function name="TexEnvf" template="TexEnv" gltype="GLfloat" expand_vector="true"/>
3623	<function name="TexEnvfv" template="TexEnv" gltype="GLfloat"/>
3624	<function name="TexEnvi" template="TexEnv" gltype="GLint" expand_vector="true"/>
3625	<function name="TexEnviv" template="TexEnv" gltype="GLint"/>
3626	<function name="TexEnvx" template="TexEnv" gltype="GLfixed" expand_vector="true"/>
3627	<function name="TexEnvxv" template="TexEnv" gltype="GLfixed"/>
3628
3629	<function name="TexGenfOES" external="true" template="TexGen" gltype="GLfloat" expand_vector="true"/>
3630	<function name="TexGenfvOES" external="true" template="TexGen" gltype="GLfloat"/>
3631	<function name="TexGeniOES" external="true" template="TexGen" gltype="GLint" expand_vector="true"/>
3632	<function name="TexGenivOES" external="true" template="TexGen" gltype="GLint"/>
3633	<function name="TexGenxOES" external="true" template="TexGen" gltype="GLfixed" expand_vector="true"/>
3634	<function name="TexGenxvOES" external="true" template="TexGen" gltype="GLfixed"/>
3635
3636	<function name="Clear" template="Clear"/>
3637	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
3638	<function name="ClearColorx" template="ClearColor" gltype="GLclampx"/>
3639
3640	<function name="ClearStencil" template="ClearStencil"/>
3641	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
3642	<function name="ClearDepthx" template="ClearDepth" gltype="GLclampx"/>
3643
3644	<function name="StencilMask" template="StencilMask"/>
3645	<function name="ColorMask" template="ColorMask"/>
3646	<function name="DepthMask" template="DepthMask"/>
3647
3648	<function name="Disable" template="Disable"/>
3649	<function name="Enable" template="Enable"/>
3650	<function name="Finish" template="Finish"/>
3651	<function name="Flush" template="Flush"/>
3652
3653	<function name="AlphaFunc" template="AlphaFunc" gltype="GLclampf"/>
3654	<function name="AlphaFuncx" template="AlphaFunc" gltype="GLclampx"/>
3655
3656	<function name="BlendFunc" template="BlendFunc"/>
3657	<function name="LogicOp" template="LogicOp"/>
3658	<function name="StencilFunc" template="StencilFunc"/>
3659
3660	<function name="StencilOp" template="StencilOp"/>
3661	<function name="DepthFunc" template="DepthFunc"/>
3662
3663	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
3664	<function name="ReadPixels" template="ReadPixels"/>
3665
3666	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
3667
3668	<function name="GetClipPlanef" template="GetClipPlane" gltype="GLfloat"/>
3669	<function name="GetClipPlanex" template="GetClipPlane" gltype="GLfixed"/>
3670
3671	<function name="GetError" template="GetError"/>
3672	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
3673	<function name="GetFixedv" template="GetState" gltype="GLfixed"/>
3674	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
3675
3676	<function name="GetLightfv" template="GetLight" gltype="GLfloat"/>
3677	<function name="GetLightxv" template="GetLight" gltype="GLfixed"/>
3678
3679	<function name="GetMaterialfv" template="GetMaterial" gltype="GLfloat"/>
3680	<function name="GetMaterialxv" template="GetMaterial" gltype="GLfixed"/>
3681
3682	<function name="GetString" template="GetString"/>
3683
3684	<function name="GetTexEnvfv" template="GetTexEnv" gltype="GLfloat"/>
3685	<function name="GetTexEnviv" template="GetTexEnv" gltype="GLint"/>
3686	<function name="GetTexEnvxv" template="GetTexEnv" gltype="GLfixed"/>
3687
3688	<function name="GetTexGenfvOES" external="true" template="GetTexGen" gltype="GLfloat"/>
3689	<function name="GetTexGenivOES" external="true" template="GetTexGen" gltype="GLint"/>
3690	<function name="GetTexGenxvOES" external="true" template="GetTexGen" gltype="GLfixed"/>
3691
3692	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
3693	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
3694	<function name="GetTexParameterxv" template="GetTexParameter" gltype="GLfixed"/>
3695
3696	<function name="IsEnabled" template="IsEnabled"/>
3697
3698	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
3699	<function name="DepthRangex" template="DepthRange" gltype="GLclampx"/>
3700
3701	<function name="Frustumf" template="Frustum" gltype="GLfloat"/>
3702	<function name="Frustumx" template="Frustum" gltype="GLfixed"/>
3703
3704	<function name="LoadIdentity" template="LoadIdentity"/>
3705	<function name="LoadMatrixf" template="LoadMatrix" gltype="GLfloat"/>
3706	<function name="LoadMatrixx" template="LoadMatrix" gltype="GLfixed"/>
3707	<function name="MatrixMode" template="MatrixMode"/>
3708
3709	<function name="MultMatrixf" template="MultMatrix" gltype="GLfloat"/>
3710	<function name="MultMatrixx" template="MultMatrix" gltype="GLfixed"/>
3711	<function name="Orthof" template="Ortho" gltype="GLfloat"/>
3712	<function name="Orthox" template="Ortho" gltype="GLfixed"/>
3713
3714	<function name="PopMatrix" template="PopMatrix"/>
3715	<function name="PushMatrix" template="PushMatrix"/>
3716
3717	<function name="Rotatef" template="Rotate" gltype="GLfloat"/>
3718	<function name="Rotatex" template="Rotate" gltype="GLfixed"/>
3719	<function name="Scalef" template="Scale" gltype="GLfloat"/>
3720	<function name="Scalex" template="Scale" gltype="GLfixed"/>
3721	<function name="Translatef" template="Translate" gltype="GLfloat"/>
3722	<function name="Translatex" template="Translate" gltype="GLfixed"/>
3723
3724	<function name="Viewport" template="Viewport"/>
3725	<function name="ColorPointer" template="ColorPointer"/>
3726	<function name="DisableClientState" template="DisableClientState"/>
3727	<function name="DrawArrays" template="DrawArrays"/>
3728	<function name="DrawElements" template="DrawElements"/>
3729	<function name="EnableClientState" template="EnableClientState"/>
3730
3731	<function name="GetPointerv" template="GetPointer"/>
3732
3733	<function name="Normal3f" external="true" template="Normal" gltype="GLfloat" expand_vector="true"/>
3734	<function name="Normal3x" template="Normal" gltype="GLfixed" expand_vector="true"/>
3735	<function name="NormalPointer" template="NormalPointer"/>
3736	<function name="TexCoordPointer" template="TexCoordPointer"/>
3737	<function name="VertexPointer" template="VertexPointer"/>
3738
3739	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
3740	<function name="PolygonOffsetx" template="PolygonOffset" gltype="GLfixed"/>
3741
3742	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
3743	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
3744
3745	<function name="TexSubImage2D" template="TexSubImage2D"/>
3746
3747	<function name="BindTexture" template="BindTexture"/>
3748	<function name="DeleteTextures" template="DeleteTextures"/>
3749	<function name="GenTextures" template="GenTextures"/>
3750	<function name="IsTexture" template="IsTexture"/>
3751
3752	<function name="BlendEquationOES" template="BlendEquation"/>
3753	<function name="BlendEquationSeparateOES" template="BlendEquationSeparate"/>
3754
3755	<function name="MultiTexCoord4x" template="MultiTexCoord" gltype="GLfixed" vector_size="4" expand_vector="true"/>
3756
3757	<function name="ActiveTexture" template="ActiveTexture"/>
3758	<function name="ClientActiveTexture" template="ClientActiveTexture"/>
3759
3760	<function name="MultiTexCoord4f" external="true" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3761
3762	<function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
3763	<function name="SampleCoveragex" template="SampleCoverage" gltype="GLclampx"/>
3764
3765	<!-- CompressedTexImage2D calls out to two different functions based on
3766	     whether the image is a paletted image or not -->
3767	<function name="CompressedTexImage2D" template="CompressedTexImage2D"/>
3768	<function name="CompressedTexSubImage2D" template="CompressedTexSubImage2D"/>
3769
3770	<function name="BlendFuncSeparateOES" template="BlendFuncSeparate"/>
3771
3772	<function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
3773	<function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
3774	<function name="PointParameterx" template="PointParameter" gltype="GLfixed" expand_vector="true"/>
3775	<function name="PointParameterxv" template="PointParameter" gltype="GLfixed"/>
3776
3777	<!-- OES_mapbuffer -->
3778	<function name="GetBufferPointervOES" template="GetBufferPointer"/>
3779	<function name="MapBufferOES" template="MapBuffer"/>
3780	<function name="UnmapBufferOES" template="UnmapBuffer"/>
3781
3782	<function name="BindBuffer" template="BindBuffer"/>
3783	<function name="BufferData" template="BufferData"/>
3784	<function name="BufferSubData" template="BufferSubData"/>
3785	<function name="DeleteBuffers" template="DeleteBuffers"/>
3786	<function name="GenBuffers" template="GenBuffers"/>
3787	<function name="GetBufferParameteriv" template="GetBufferParameter" gltype="GLint"/>
3788	<function name="IsBuffer" template="IsBuffer"/>
3789
3790	<!-- OES_framebuffer_object -->
3791	<function name="GenerateMipmapOES" template="GenerateMipmap"/>
3792	<function name="BindFramebufferOES" template="BindFramebuffer"/>
3793	<function name="DeleteFramebuffersOES" template="DeleteFramebuffers"/>
3794	<function name="GenFramebuffersOES" template="GenFramebuffers"/>
3795	<function name="BindRenderbufferOES" template="BindRenderbuffer"/>
3796	<function name="DeleteRenderbuffersOES" template="DeleteRenderbuffers"/>
3797	<function name="GenRenderbuffersOES" template="GenRenderbuffers"/>
3798	<function name="RenderbufferStorageOES" external="true" template="RenderbufferStorage"/>
3799	<function name="FramebufferRenderbufferOES" template="FramebufferRenderbuffer"/>
3800	<function name="FramebufferTexture2DOES" template="FramebufferTexture2D"/>
3801	<function name="CheckFramebufferStatusOES" template="CheckFramebufferStatus"/>
3802	<function name="GetFramebufferAttachmentParameterivOES" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
3803	<function name="GetRenderbufferParameterivOES" template="GetRenderbufferParameter" gltype="GLint"/>
3804	<function name="IsRenderbufferOES" template="IsRenderbuffer"/>
3805	<function name="IsFramebufferOES" template="IsFramebuffer"/>
3806
3807	<!-- OES_query_matrix -->
3808	<!-- QueryMatrixx returns values in an unusual, decomposed, fixed-value
3809	     form; it has its own code for this -->
3810	<function name="QueryMatrixxOES" external="true" template="QueryMatrix" gltype="GLfixed"/>
3811
3812	<!-- OES_draw_texture -->
3813	<function name="DrawTexfOES" template="DrawTex" gltype="GLfloat" expand_vector="true"/>
3814	<function name="DrawTexiOES" template="DrawTex" gltype="GLint" expand_vector="true"/>
3815	<function name="DrawTexsOES" template="DrawTex" gltype="GLshort" expand_vector="true"/>
3816	<function name="DrawTexxOES" template="DrawTex" gltype="GLfixed" expand_vector="true"/>
3817	<function name="DrawTexfvOES" template="DrawTex" gltype="GLfloat"/>
3818	<function name="DrawTexivOES" template="DrawTex" gltype="GLint"/>
3819	<function name="DrawTexsvOES" template="DrawTex" gltype="GLshort"/>
3820	<function name="DrawTexxvOES" template="DrawTex" gltype="GLfixed"/>
3821
3822        <!-- EXT_multi_draw_arrays -->
3823        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
3824        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
3825
3826        <!-- OES_EGL_image -->
3827        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
3828        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
3829</api>
3830
3831<api name="GLES2.0">
3832	<category name="GLES2.0"/>
3833
3834	<category name="OES_compressed_paletted_texture"/>
3835	<category name="OES_compressed_ETC1_RGB8_texture"/>
3836	<category name="OES_depth24"/>
3837	<category name="OES_depth32"/>
3838	<category name="OES_fbo_render_mipmap"/>
3839	<category name="OES_rgb8_rgba8"/>
3840	<category name="OES_stencil1"/>
3841	<category name="OES_stencil4"/>
3842	<category name="OES_element_index_uint"/>
3843	<category name="OES_mapbuffer"/>
3844	<category name="OES_texture_3D"/>
3845	<category name="OES_texture_npot"/>
3846	<category name="EXT_texture_filter_anisotropic"/>
3847	<category name="EXT_texture_type_2_10_10_10_REV"/>
3848	<category name="OES_depth_texture"/>
3849	<category name="OES_packed_depth_stencil"/>
3850	<category name="OES_standard_derivatives"/>
3851	<category name="EXT_texture_format_BGRA8888"/>
3852	<category name="EXT_texture_rg"/>
3853	<category name="EXT_read_format_bgra"/>
3854
3855	<category name="EXT_texture_compression_dxt1"/>
3856	<category name="EXT_blend_minmax"/>
3857	<category name="EXT_multi_draw_arrays"/>
3858	<category name="OES_EGL_image"/>
3859	<category name="OES_EGL_image_external"/>
3860        <category name="EXT_unpack_subimage"/>
3861
3862	<category name="NV_draw_buffers"/>
3863	<category name="NV_read_buffer"/>
3864
3865	<function name="DrawBuffersNV" template="DrawBuffers"/>
3866	<function name="ReadBufferNV" template="ReadBuffer"/> 
3867
3868	<function name="CullFace" template="CullFace"/>
3869
3870	<function name="FrontFace" template="FrontFace"/>
3871	<function name="Hint" template="Hint"/>
3872
3873	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
3874
3875	<function name="Scissor" template="Scissor"/>
3876
3877	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
3878	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
3879	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
3880	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
3881
3882	<function name="TexImage2D" template="TexImage2D"/>
3883
3884	<function name="Clear" template="Clear"/>
3885	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
3886	<function name="ClearStencil" template="ClearStencil"/>
3887	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
3888
3889	<function name="StencilMask" template="StencilMask"/>
3890	<function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
3891	<function name="ColorMask" template="ColorMask"/>
3892	<function name="DepthMask" template="DepthMask"/>
3893	<function name="Disable" template="Disable"/>
3894	<function name="Enable" template="Enable"/>
3895	<function name="Finish" template="Finish"/>
3896	<function name="Flush" template="Flush"/>
3897
3898	<function name="BlendFunc" template="BlendFunc"/>
3899
3900	<function name="StencilFunc" template="StencilFunc"/>
3901	<function name="StencilFuncSeparate" template="StencilFuncSeparate"/>
3902	<function name="StencilOp" template="StencilOp"/>
3903	<function name="StencilOpSeparate" template="StencilOpSeparate"/>
3904
3905	<function name="DepthFunc" template="DepthFunc"/>
3906
3907	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
3908	<function name="ReadPixels" template="ReadPixels"/>
3909
3910	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
3911	<function name="GetError" template="GetError"/>
3912	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
3913	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
3914
3915	<function name="GetString" template="GetString"/>
3916
3917	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
3918	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
3919
3920	<function name="IsEnabled" template="IsEnabled"/>
3921
3922	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
3923
3924	<function name="Viewport" template="Viewport"/>
3925
3926	<function name="DrawArrays" template="DrawArrays"/>
3927	<function name="DrawElements" template="DrawElements"/>
3928
3929	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
3930	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
3931	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
3932	<function name="TexSubImage2D" template="TexSubImage2D"/>
3933
3934	<function name="BindTexture" template="BindTexture"/>
3935	<function name="DeleteTextures" template="DeleteTextures"/>
3936	<function name="GenTextures" template="GenTextures"/>
3937	<function name="IsTexture" template="IsTexture"/>
3938
3939	<function name="BlendColor" template="BlendColor" gltype="GLclampf"/>
3940	<function name="BlendEquation" template="BlendEquation"/>
3941	<function name="BlendEquationSeparate" template="BlendEquationSeparate"/>
3942
3943	<function name="TexImage3DOES" template="TexImage3D"/>
3944	<function name="TexSubImage3DOES" template="TexSubImage3D"/>
3945	<function name="CopyTexSubImage3DOES" template="CopyTexSubImage3D"/>
3946
3947	<function name="CompressedTexImage3DOES" template="CompressedTexImage3D"/>
3948	<function name="CompressedTexSubImage3DOES" template="CompressedTexSubImage3D"/>
3949
3950	<function name="ActiveTexture" template="ActiveTexture"/>
3951
3952	<function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
3953
3954	<function name="CompressedTexImage2D" template="CompressedTexImage2D"/>
3955	<function name="CompressedTexSubImage2D" template="CompressedTexSubImage2D"/>
3956
3957	<function name="BlendFuncSeparate" template="BlendFuncSeparate"/>
3958
3959	<function name="VertexAttrib1f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
3960	<function name="VertexAttrib2f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
3961	<function name="VertexAttrib3f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
3962	<function name="VertexAttrib4f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3963	<function name="VertexAttrib1fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
3964	<function name="VertexAttrib2fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
3965	<function name="VertexAttrib3fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
3966	<function name="VertexAttrib4fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
3967
3968	<function name="VertexAttribPointer" template="VertexAttribPointer"/>
3969
3970	<function name="EnableVertexAttribArray" template="EnableVertexAttribArray"/>
3971	<function name="DisableVertexAttribArray" template="DisableVertexAttribArray"/>
3972
3973	<function name="IsProgram" template="IsProgram"/>
3974	<function name="GetProgramiv" template="GetProgram" gltype="GLint"/>
3975
3976	<function name="GetVertexAttribfv" template="GetVertexAttrib" gltype="GLfloat"/>
3977	<function name="GetVertexAttribiv" template="GetVertexAttrib" gltype="GLint"/>
3978	<function name="GetVertexAttribPointerv" template="GetVertexAttribPointer"/>
3979
3980	<function name="GetBufferPointervOES" template="GetBufferPointer"/>
3981	<function name="MapBufferOES" template="MapBuffer"/>
3982	<function name="UnmapBufferOES" template="UnmapBuffer"/>
3983	<function name="BindBuffer" template="BindBuffer"/>
3984	<function name="BufferData" template="BufferData"/>
3985	<function name="BufferSubData" template="BufferSubData"/>
3986	<function name="DeleteBuffers" template="DeleteBuffers"/>
3987	<function name="GenBuffers" template="GenBuffers"/>
3988	<function name="GetBufferParameteriv" template="GetBufferParameter" gltype="GLint"/>
3989	<function name="IsBuffer" template="IsBuffer"/>
3990
3991	<function name="CreateShader" template="CreateShader"/>
3992	<function name="ShaderSource" template="ShaderSource"/>
3993	<function name="CompileShader" template="CompileShader"/>
3994	<function name="ReleaseShaderCompiler" template="ReleaseShaderCompiler"/>
3995	<function name="DeleteShader" template="DeleteShader"/>
3996	<function name="ShaderBinary" template="ShaderBinary"/>
3997	<function name="CreateProgram" template="CreateProgram"/>
3998	<function name="AttachShader" template="AttachShader"/>
3999	<function name="DetachShader" template="DetachShader"/>
4000	<function name="LinkProgram" template="LinkProgram"/>
4001	<function name="UseProgram" template="UseProgram"/>
4002	<function name="DeleteProgram" template="DeleteProgram"/>
4003
4004	<function name="GetActiveAttrib" template="GetActiveAttrib"/>
4005	<function name="GetAttribLocation" template="GetAttribLocation"/>
4006	<function name="BindAttribLocation" template="BindAttribLocation"/>
4007	<function name="GetUniformLocation" template="GetUniformLocation"/>
4008	<function name="GetActiveUniform" template="GetActiveUniform"/>
4009
4010	<function name="Uniform1f" template="Uniform" gltype="GLfloat" vector_size="1" expand_vector="true"/>
4011	<function name="Uniform2f" template="Uniform" gltype="GLfloat" vector_size="2" expand_vector="true"/>
4012	<function name="Uniform3f" template="Uniform" gltype="GLfloat" vector_size="3" expand_vector="true"/>
4013	<function name="Uniform4f" template="Uniform" gltype="GLfloat" vector_size="4" expand_vector="true"/>
4014	<function name="Uniform1i" template="Uniform" gltype="GLint" vector_size="1" expand_vector="true"/>
4015	<function name="Uniform2i" template="Uniform" gltype="GLint" vector_size="2" expand_vector="true"/>
4016	<function name="Uniform3i" template="Uniform" gltype="GLint" vector_size="3" expand_vector="true"/>
4017	<function name="Uniform4i" template="Uniform" gltype="GLint" vector_size="4" expand_vector="true"/>
4018
4019	<function name="Uniform1fv" template="Uniform" gltype="GLfloat" vector_size="1"/>
4020	<function name="Uniform2fv" template="Uniform" gltype="GLfloat" vector_size="2"/>
4021	<function name="Uniform3fv" template="Uniform" gltype="GLfloat" vector_size="3"/>
4022	<function name="Uniform4fv" template="Uniform" gltype="GLfloat" vector_size="4"/>
4023	<function name="Uniform1iv" template="Uniform" gltype="GLint" vector_size="1"/>
4024	<function name="Uniform2iv" template="Uniform" gltype="GLint" vector_size="2"/>
4025	<function name="Uniform3iv" template="Uniform" gltype="GLint" vector_size="3"/>
4026	<function name="Uniform4iv" template="Uniform" gltype="GLint" vector_size="4"/>
4027
4028	<function name="UniformMatrix2fv" template="UniformMatrix" gltype="GLfloat" vector_size="2"/>
4029	<function name="UniformMatrix3fv" template="UniformMatrix" gltype="GLfloat" vector_size="3"/>
4030	<function name="UniformMatrix4fv" template="UniformMatrix" gltype="GLfloat" vector_size="4"/>
4031
4032	<function name="ValidateProgram" template="ValidateProgram"/>
4033
4034	<function name="GenerateMipmap" template="GenerateMipmap"/>
4035	<function name="BindFramebuffer" template="BindFramebuffer"/>
4036	<function name="DeleteFramebuffers" template="DeleteFramebuffers"/>
4037	<function name="GenFramebuffers" template="GenFramebuffers"/>
4038	<function name="BindRenderbuffer" template="BindRenderbuffer"/>
4039	<function name="DeleteRenderbuffers" template="DeleteRenderbuffers"/>
4040	<function name="GenRenderbuffers" template="GenRenderbuffers"/>
4041	<function name="RenderbufferStorage" external="true" template="RenderbufferStorage"/>
4042	<function name="FramebufferRenderbuffer" template="FramebufferRenderbuffer"/>
4043	<function name="FramebufferTexture2D" template="FramebufferTexture2D"/>
4044	<function name="FramebufferTexture3DOES" template="FramebufferTexture3D"/>
4045	<function name="CheckFramebufferStatus" template="CheckFramebufferStatus"/>
4046	<function name="GetFramebufferAttachmentParameteriv" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
4047	<function name="GetRenderbufferParameteriv" template="GetRenderbufferParameter" gltype="GLint"/>
4048	<function name="IsRenderbuffer" template="IsRenderbuffer"/>
4049	<function name="IsFramebuffer" template="IsFramebuffer"/>
4050
4051	<function name="IsShader" template="IsShader"/>
4052	<function name="GetShaderiv" template="GetShader" gltype="GLint"/>
4053	<function name="GetAttachedShaders" template="GetAttachedShaders"/>
4054	<function name="GetShaderInfoLog" template="GetShaderInfoLog"/>
4055	<function name="GetProgramInfoLog" template="GetProgramInfoLog"/>
4056	<function name="GetShaderSource" template="GetShaderSource"/>
4057	<function name="GetShaderPrecisionFormat" template="GetShaderPrecisionFormat"/>
4058	<function name="GetUniformfv" template="GetUniform" gltype="GLfloat"/>
4059	<function name="GetUniformiv" template="GetUniform" gltype="GLint"/>
4060
4061        <!-- EXT_multi_draw_arrays -->
4062        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
4063        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
4064
4065        <!-- OES_EGL_image -->
4066        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
4067        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
4068</api>
4069
4070</apispec>
4071