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