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