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