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