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