1 /*
2 Copyright (c) 2012, Broadcom Europe Ltd
3 All rights reserved.
4 
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions are met:
7     * Redistributions of source code must retain the above copyright
8       notice, this list of conditions and the following disclaimer.
9     * Redistributions in binary form must reproduce the above copyright
10       notice, this list of conditions and the following disclaimer in the
11       documentation and/or other materials provided with the distribution.
12     * Neither the name of the copyright holder nor the
13       names of its contributors may be used to endorse or promote products
14       derived from this software without specific prior written permission.
15 
16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
20 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 #ifndef __gl_h_
28 #define __gl_h_
29 
30 /* $Revision: 10601 $ on $Date:: 2010-03-04 22:15:27 -0800 #$ */
31 
32 #include "glplatform.h"
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 /*
39  * This document is licensed under the SGI Free Software B License Version
40  * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
41  */
42 
43 #ifndef __gl2_h_
44 typedef void             GLvoid;
45 typedef char             GLchar;
46 typedef unsigned int     GLenum;
47 typedef unsigned char    GLboolean;
48 typedef unsigned int     GLbitfield;
49 typedef khronos_int8_t   GLbyte;
50 typedef short            GLshort;
51 typedef int              GLint;
52 typedef int              GLsizei;
53 typedef khronos_uint8_t  GLubyte;
54 typedef unsigned short   GLushort;
55 typedef unsigned int     GLuint;
56 typedef khronos_float_t  GLfloat;
57 typedef khronos_float_t  GLclampf;
58 typedef khronos_int32_t  GLfixed;
59 
60 typedef khronos_intptr_t GLintptr;
61 typedef khronos_ssize_t  GLsizeiptr;
62 #endif
63 typedef khronos_int32_t  GLclampx;
64 
65 /*************************************************************/
66 
67 /* OpenGL ES core versions */
68 #define GL_VERSION_ES_CM_1_0          1
69 #define GL_VERSION_ES_CL_1_0          1
70 #define GL_VERSION_ES_CM_1_1          1
71 #define GL_VERSION_ES_CL_1_1          1
72 
73 /* ClearBufferMask */
74 #define GL_DEPTH_BUFFER_BIT               0x00000100
75 #define GL_STENCIL_BUFFER_BIT             0x00000400
76 #define GL_COLOR_BUFFER_BIT               0x00004000
77 
78 /* Boolean */
79 #define GL_FALSE                          (GLboolean)0
80 #define GL_TRUE                           (GLboolean)1
81 
82 /* BeginMode */
83 #define GL_POINTS                         0x0000
84 #define GL_LINES                          0x0001
85 #define GL_LINE_LOOP                      0x0002
86 #define GL_LINE_STRIP                     0x0003
87 #define GL_TRIANGLES                      0x0004
88 #define GL_TRIANGLE_STRIP                 0x0005
89 #define GL_TRIANGLE_FAN                   0x0006
90 
91 /* AlphaFunction */
92 #define GL_NEVER                          0x0200
93 #define GL_LESS                           0x0201
94 #define GL_EQUAL                          0x0202
95 #define GL_LEQUAL                         0x0203
96 #define GL_GREATER                        0x0204
97 #define GL_NOTEQUAL                       0x0205
98 #define GL_GEQUAL                         0x0206
99 #define GL_ALWAYS                         0x0207
100 
101 /* BlendingFactorDest */
102 #define GL_ZERO                           0
103 #define GL_ONE                            1
104 #define GL_SRC_COLOR                      0x0300
105 #define GL_ONE_MINUS_SRC_COLOR            0x0301
106 #define GL_SRC_ALPHA                      0x0302
107 #define GL_ONE_MINUS_SRC_ALPHA            0x0303
108 #define GL_DST_ALPHA                      0x0304
109 #define GL_ONE_MINUS_DST_ALPHA            0x0305
110 
111 /* BlendingFactorSrc */
112 /*      GL_ZERO */
113 /*      GL_ONE */
114 #define GL_DST_COLOR                      0x0306
115 #define GL_ONE_MINUS_DST_COLOR            0x0307
116 #define GL_SRC_ALPHA_SATURATE             0x0308
117 /*      GL_SRC_ALPHA */
118 /*      GL_ONE_MINUS_SRC_ALPHA */
119 /*      GL_DST_ALPHA */
120 /*      GL_ONE_MINUS_DST_ALPHA */
121 
122 /* ClipPlaneName */
123 #define GL_CLIP_PLANE0                    0x3000
124 #define GL_CLIP_PLANE1                    0x3001
125 #define GL_CLIP_PLANE2                    0x3002
126 #define GL_CLIP_PLANE3                    0x3003
127 #define GL_CLIP_PLANE4                    0x3004
128 #define GL_CLIP_PLANE5                    0x3005
129 
130 /* ColorMaterialFace */
131 /*      GL_FRONT_AND_BACK */
132 
133 /* ColorMaterialParameter */
134 /*      GL_AMBIENT_AND_DIFFUSE */
135 
136 /* ColorPointerType */
137 /*      GL_UNSIGNED_BYTE */
138 /*      GL_FLOAT */
139 /*      GL_FIXED */
140 
141 /* CullFaceMode */
142 #define GL_FRONT                          0x0404
143 #define GL_BACK                           0x0405
144 #define GL_FRONT_AND_BACK                 0x0408
145 
146 /* DepthFunction */
147 /*      GL_NEVER */
148 /*      GL_LESS */
149 /*      GL_EQUAL */
150 /*      GL_LEQUAL */
151 /*      GL_GREATER */
152 /*      GL_NOTEQUAL */
153 /*      GL_GEQUAL */
154 /*      GL_ALWAYS */
155 
156 /* EnableCap */
157 #define GL_FOG                            0x0B60
158 #define GL_LIGHTING                       0x0B50
159 #define GL_TEXTURE_2D                     0x0DE1
160 #define GL_CULL_FACE                      0x0B44
161 #define GL_ALPHA_TEST                     0x0BC0
162 #define GL_BLEND                          0x0BE2
163 #define GL_COLOR_LOGIC_OP                 0x0BF2
164 #define GL_DITHER                         0x0BD0
165 #define GL_STENCIL_TEST                   0x0B90
166 #define GL_DEPTH_TEST                     0x0B71
167 /*      GL_LIGHT0 */
168 /*      GL_LIGHT1 */
169 /*      GL_LIGHT2 */
170 /*      GL_LIGHT3 */
171 /*      GL_LIGHT4 */
172 /*      GL_LIGHT5 */
173 /*      GL_LIGHT6 */
174 /*      GL_LIGHT7 */
175 #define GL_POINT_SMOOTH                   0x0B10
176 #define GL_LINE_SMOOTH                    0x0B20
177 #define GL_SCISSOR_TEST                   0x0C11
178 #define GL_COLOR_MATERIAL                 0x0B57
179 #define GL_NORMALIZE                      0x0BA1
180 #define GL_RESCALE_NORMAL                 0x803A
181 #define GL_POLYGON_OFFSET_FILL            0x8037
182 #define GL_VERTEX_ARRAY                   0x8074
183 #define GL_NORMAL_ARRAY                   0x8075
184 #define GL_COLOR_ARRAY                    0x8076
185 #define GL_TEXTURE_COORD_ARRAY            0x8078
186 #define GL_MULTISAMPLE                    0x809D
187 #define GL_SAMPLE_ALPHA_TO_COVERAGE       0x809E
188 #define GL_SAMPLE_ALPHA_TO_ONE            0x809F
189 #define GL_SAMPLE_COVERAGE                0x80A0
190 
191 /* ErrorCode */
192 #define GL_NO_ERROR                       0
193 #define GL_INVALID_ENUM                   0x0500
194 #define GL_INVALID_VALUE                  0x0501
195 #define GL_INVALID_OPERATION              0x0502
196 #define GL_STACK_OVERFLOW                 0x0503
197 #define GL_STACK_UNDERFLOW                0x0504
198 #define GL_OUT_OF_MEMORY                  0x0505
199 
200 /* FogMode */
201 /*      GL_LINEAR */
202 #define GL_EXP                            0x0800
203 #define GL_EXP2                           0x0801
204 
205 /* FogParameter */
206 #define GL_FOG_DENSITY                    0x0B62
207 #define GL_FOG_START                      0x0B63
208 #define GL_FOG_END                        0x0B64
209 #define GL_FOG_MODE                       0x0B65
210 #define GL_FOG_COLOR                      0x0B66
211 
212 /* FrontFaceDirection */
213 #define GL_CW                             0x0900
214 #define GL_CCW                            0x0901
215 
216 /* GetPName */
217 #define GL_CURRENT_COLOR                  0x0B00
218 #define GL_CURRENT_NORMAL                 0x0B02
219 #define GL_CURRENT_TEXTURE_COORDS         0x0B03
220 #define GL_POINT_SIZE                     0x0B11
221 #define GL_POINT_SIZE_MIN                 0x8126
222 #define GL_POINT_SIZE_MAX                 0x8127
223 #define GL_POINT_FADE_THRESHOLD_SIZE      0x8128
224 #define GL_POINT_DISTANCE_ATTENUATION     0x8129
225 #define GL_SMOOTH_POINT_SIZE_RANGE        0x0B12
226 #define GL_LINE_WIDTH                     0x0B21
227 #define GL_SMOOTH_LINE_WIDTH_RANGE        0x0B22
228 #define GL_ALIASED_POINT_SIZE_RANGE       0x846D
229 #define GL_ALIASED_LINE_WIDTH_RANGE       0x846E
230 #define GL_CULL_FACE_MODE                 0x0B45
231 #define GL_FRONT_FACE                     0x0B46
232 #define GL_SHADE_MODEL                    0x0B54
233 #define GL_DEPTH_RANGE                    0x0B70
234 #define GL_DEPTH_WRITEMASK                0x0B72
235 #define GL_DEPTH_CLEAR_VALUE              0x0B73
236 #define GL_DEPTH_FUNC                     0x0B74
237 #define GL_STENCIL_CLEAR_VALUE            0x0B91
238 #define GL_STENCIL_FUNC                   0x0B92
239 #define GL_STENCIL_VALUE_MASK             0x0B93
240 #define GL_STENCIL_FAIL                   0x0B94
241 #define GL_STENCIL_PASS_DEPTH_FAIL        0x0B95
242 #define GL_STENCIL_PASS_DEPTH_PASS        0x0B96
243 #define GL_STENCIL_REF                    0x0B97
244 #define GL_STENCIL_WRITEMASK              0x0B98
245 #define GL_MATRIX_MODE                    0x0BA0
246 #define GL_VIEWPORT                       0x0BA2
247 #define GL_MODELVIEW_STACK_DEPTH          0x0BA3
248 #define GL_PROJECTION_STACK_DEPTH         0x0BA4
249 #define GL_TEXTURE_STACK_DEPTH            0x0BA5
250 #define GL_MODELVIEW_MATRIX               0x0BA6
251 #define GL_PROJECTION_MATRIX              0x0BA7
252 #define GL_TEXTURE_MATRIX                 0x0BA8
253 #define GL_ALPHA_TEST_FUNC                0x0BC1
254 #define GL_ALPHA_TEST_REF                 0x0BC2
255 #define GL_BLEND_DST                      0x0BE0
256 #define GL_BLEND_SRC                      0x0BE1
257 #define GL_LOGIC_OP_MODE                  0x0BF0
258 #define GL_SCISSOR_BOX                    0x0C10
259 #define GL_SCISSOR_TEST                   0x0C11
260 #define GL_COLOR_CLEAR_VALUE              0x0C22
261 #define GL_COLOR_WRITEMASK                0x0C23
262 #define GL_UNPACK_ALIGNMENT               0x0CF5
263 #define GL_PACK_ALIGNMENT                 0x0D05
264 #define GL_MAX_LIGHTS                     0x0D31
265 #define GL_MAX_CLIP_PLANES                0x0D32
266 #define GL_MAX_TEXTURE_SIZE               0x0D33
267 #define GL_MAX_MODELVIEW_STACK_DEPTH      0x0D36
268 #define GL_MAX_PROJECTION_STACK_DEPTH     0x0D38
269 #define GL_MAX_TEXTURE_STACK_DEPTH        0x0D39
270 #define GL_MAX_VIEWPORT_DIMS              0x0D3A
271 #define GL_MAX_TEXTURE_UNITS              0x84E2
272 #define GL_SUBPIXEL_BITS                  0x0D50
273 #define GL_RED_BITS                       0x0D52
274 #define GL_GREEN_BITS                     0x0D53
275 #define GL_BLUE_BITS                      0x0D54
276 #define GL_ALPHA_BITS                     0x0D55
277 #define GL_DEPTH_BITS                     0x0D56
278 #define GL_STENCIL_BITS                   0x0D57
279 #define GL_POLYGON_OFFSET_UNITS           0x2A00
280 #define GL_POLYGON_OFFSET_FILL            0x8037
281 #define GL_POLYGON_OFFSET_FACTOR          0x8038
282 #define GL_TEXTURE_BINDING_2D             0x8069
283 #define GL_VERTEX_ARRAY_SIZE              0x807A
284 #define GL_VERTEX_ARRAY_TYPE              0x807B
285 #define GL_VERTEX_ARRAY_STRIDE            0x807C
286 #define GL_NORMAL_ARRAY_TYPE              0x807E
287 #define GL_NORMAL_ARRAY_STRIDE            0x807F
288 #define GL_COLOR_ARRAY_SIZE               0x8081
289 #define GL_COLOR_ARRAY_TYPE               0x8082
290 #define GL_COLOR_ARRAY_STRIDE             0x8083
291 #define GL_TEXTURE_COORD_ARRAY_SIZE       0x8088
292 #define GL_TEXTURE_COORD_ARRAY_TYPE       0x8089
293 #define GL_TEXTURE_COORD_ARRAY_STRIDE     0x808A
294 #define GL_VERTEX_ARRAY_POINTER           0x808E
295 #define GL_NORMAL_ARRAY_POINTER           0x808F
296 #define GL_COLOR_ARRAY_POINTER            0x8090
297 #define GL_TEXTURE_COORD_ARRAY_POINTER    0x8092
298 #define GL_SAMPLE_BUFFERS                 0x80A8
299 #define GL_SAMPLES                        0x80A9
300 #define GL_SAMPLE_COVERAGE_VALUE          0x80AA
301 #define GL_SAMPLE_COVERAGE_INVERT         0x80AB
302 
303 /* GetTextureParameter */
304 /*      GL_TEXTURE_MAG_FILTER */
305 /*      GL_TEXTURE_MIN_FILTER */
306 /*      GL_TEXTURE_WRAP_S */
307 /*      GL_TEXTURE_WRAP_T */
308 
309 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
310 #define GL_COMPRESSED_TEXTURE_FORMATS     0x86A3
311 
312 /* HintMode */
313 #define GL_DONT_CARE                      0x1100
314 #define GL_FASTEST                        0x1101
315 #define GL_NICEST                         0x1102
316 
317 /* HintTarget */
318 #define GL_PERSPECTIVE_CORRECTION_HINT    0x0C50
319 #define GL_POINT_SMOOTH_HINT              0x0C51
320 #define GL_LINE_SMOOTH_HINT               0x0C52
321 #define GL_FOG_HINT                       0x0C54
322 #define GL_GENERATE_MIPMAP_HINT           0x8192
323 
324 /* LightModelParameter */
325 #define GL_LIGHT_MODEL_AMBIENT            0x0B53
326 #define GL_LIGHT_MODEL_TWO_SIDE           0x0B52
327 
328 /* LightParameter */
329 #define GL_AMBIENT                        0x1200
330 #define GL_DIFFUSE                        0x1201
331 #define GL_SPECULAR                       0x1202
332 #define GL_POSITION                       0x1203
333 #define GL_SPOT_DIRECTION                 0x1204
334 #define GL_SPOT_EXPONENT                  0x1205
335 #define GL_SPOT_CUTOFF                    0x1206
336 #define GL_CONSTANT_ATTENUATION           0x1207
337 #define GL_LINEAR_ATTENUATION             0x1208
338 #define GL_QUADRATIC_ATTENUATION          0x1209
339 
340 /* DataType */
341 #define GL_BYTE                           0x1400
342 #define GL_UNSIGNED_BYTE                  0x1401
343 #define GL_SHORT                          0x1402
344 #define GL_UNSIGNED_SHORT                 0x1403
345 #define GL_FLOAT                          0x1406
346 #define GL_FIXED                          0x140C
347 
348 /* LogicOp */
349 #define GL_CLEAR                          0x1500
350 #define GL_AND                            0x1501
351 #define GL_AND_REVERSE                    0x1502
352 #define GL_COPY                           0x1503
353 #define GL_AND_INVERTED                   0x1504
354 #define GL_NOOP                           0x1505
355 #define GL_XOR                            0x1506
356 #define GL_OR                             0x1507
357 #define GL_NOR                            0x1508
358 #define GL_EQUIV                          0x1509
359 #define GL_INVERT                         0x150A
360 #define GL_OR_REVERSE                     0x150B
361 #define GL_COPY_INVERTED                  0x150C
362 #define GL_OR_INVERTED                    0x150D
363 #define GL_NAND                           0x150E
364 #define GL_SET                            0x150F
365 
366 /* MaterialFace */
367 /*      GL_FRONT_AND_BACK */
368 
369 /* MaterialParameter */
370 #define GL_EMISSION                       0x1600
371 #define GL_SHININESS                      0x1601
372 #define GL_AMBIENT_AND_DIFFUSE            0x1602
373 /*      GL_AMBIENT */
374 /*      GL_DIFFUSE */
375 /*      GL_SPECULAR */
376 
377 /* MatrixMode */
378 #define GL_MODELVIEW                      0x1700
379 #define GL_PROJECTION                     0x1701
380 #define GL_TEXTURE                        0x1702
381 
382 /* NormalPointerType */
383 /*      GL_BYTE */
384 /*      GL_SHORT */
385 /*      GL_FLOAT */
386 /*      GL_FIXED */
387 
388 /* PixelFormat */
389 #define GL_ALPHA                          0x1906
390 #define GL_RGB                            0x1907
391 #define GL_RGBA                           0x1908
392 #define GL_LUMINANCE                      0x1909
393 #define GL_LUMINANCE_ALPHA                0x190A
394 
395 /* PixelStoreParameter */
396 #define GL_UNPACK_ALIGNMENT               0x0CF5
397 #define GL_PACK_ALIGNMENT                 0x0D05
398 
399 /* PixelType */
400 /*      GL_UNSIGNED_BYTE */
401 #define GL_UNSIGNED_SHORT_4_4_4_4         0x8033
402 #define GL_UNSIGNED_SHORT_5_5_5_1         0x8034
403 #define GL_UNSIGNED_SHORT_5_6_5           0x8363
404 
405 /* ShadingModel */
406 #define GL_FLAT                           0x1D00
407 #define GL_SMOOTH                         0x1D01
408 
409 /* StencilFunction */
410 /*      GL_NEVER */
411 /*      GL_LESS */
412 /*      GL_EQUAL */
413 /*      GL_LEQUAL */
414 /*      GL_GREATER */
415 /*      GL_NOTEQUAL */
416 /*      GL_GEQUAL */
417 /*      GL_ALWAYS */
418 
419 /* StencilOp */
420 /*      GL_ZERO */
421 #define GL_KEEP                           0x1E00
422 #define GL_REPLACE                        0x1E01
423 #define GL_INCR                           0x1E02
424 #define GL_DECR                           0x1E03
425 /*      GL_INVERT */
426 
427 /* StringName */
428 #define GL_VENDOR                         0x1F00
429 #define GL_RENDERER                       0x1F01
430 #define GL_VERSION                        0x1F02
431 #define GL_EXTENSIONS                     0x1F03
432 
433 /* TexCoordPointerType */
434 /*      GL_SHORT */
435 /*      GL_FLOAT */
436 /*      GL_FIXED */
437 /*      GL_BYTE */
438 
439 /* TextureEnvMode */
440 #define GL_MODULATE                       0x2100
441 #define GL_DECAL                          0x2101
442 /*      GL_BLEND */
443 #define GL_ADD                            0x0104
444 /*      GL_REPLACE */
445 
446 /* TextureEnvParameter */
447 #define GL_TEXTURE_ENV_MODE               0x2200
448 #define GL_TEXTURE_ENV_COLOR              0x2201
449 
450 /* TextureEnvTarget */
451 #define GL_TEXTURE_ENV                    0x2300
452 
453 /* TextureMagFilter */
454 #define GL_NEAREST                        0x2600
455 #define GL_LINEAR                         0x2601
456 
457 /* TextureMinFilter */
458 /*      GL_NEAREST */
459 /*      GL_LINEAR */
460 #define GL_NEAREST_MIPMAP_NEAREST         0x2700
461 #define GL_LINEAR_MIPMAP_NEAREST          0x2701
462 #define GL_NEAREST_MIPMAP_LINEAR          0x2702
463 #define GL_LINEAR_MIPMAP_LINEAR           0x2703
464 
465 /* TextureParameterName */
466 #define GL_TEXTURE_MAG_FILTER             0x2800
467 #define GL_TEXTURE_MIN_FILTER             0x2801
468 #define GL_TEXTURE_WRAP_S                 0x2802
469 #define GL_TEXTURE_WRAP_T                 0x2803
470 #define GL_GENERATE_MIPMAP                0x8191
471 
472 /* TextureTarget */
473 /*      GL_TEXTURE_2D */
474 
475 /* TextureUnit */
476 #define GL_TEXTURE0                       0x84C0
477 #define GL_TEXTURE1                       0x84C1
478 #define GL_TEXTURE2                       0x84C2
479 #define GL_TEXTURE3                       0x84C3
480 #define GL_TEXTURE4                       0x84C4
481 #define GL_TEXTURE5                       0x84C5
482 #define GL_TEXTURE6                       0x84C6
483 #define GL_TEXTURE7                       0x84C7
484 #define GL_TEXTURE8                       0x84C8
485 #define GL_TEXTURE9                       0x84C9
486 #define GL_TEXTURE10                      0x84CA
487 #define GL_TEXTURE11                      0x84CB
488 #define GL_TEXTURE12                      0x84CC
489 #define GL_TEXTURE13                      0x84CD
490 #define GL_TEXTURE14                      0x84CE
491 #define GL_TEXTURE15                      0x84CF
492 #define GL_TEXTURE16                      0x84D0
493 #define GL_TEXTURE17                      0x84D1
494 #define GL_TEXTURE18                      0x84D2
495 #define GL_TEXTURE19                      0x84D3
496 #define GL_TEXTURE20                      0x84D4
497 #define GL_TEXTURE21                      0x84D5
498 #define GL_TEXTURE22                      0x84D6
499 #define GL_TEXTURE23                      0x84D7
500 #define GL_TEXTURE24                      0x84D8
501 #define GL_TEXTURE25                      0x84D9
502 #define GL_TEXTURE26                      0x84DA
503 #define GL_TEXTURE27                      0x84DB
504 #define GL_TEXTURE28                      0x84DC
505 #define GL_TEXTURE29                      0x84DD
506 #define GL_TEXTURE30                      0x84DE
507 #define GL_TEXTURE31                      0x84DF
508 #define GL_ACTIVE_TEXTURE                 0x84E0
509 #define GL_CLIENT_ACTIVE_TEXTURE          0x84E1
510 
511 /* TextureWrapMode */
512 #define GL_REPEAT                         0x2901
513 #define GL_CLAMP_TO_EDGE                  0x812F
514 
515 /* VertexPointerType */
516 /*      GL_SHORT */
517 /*      GL_FLOAT */
518 /*      GL_FIXED */
519 /*      GL_BYTE */
520 
521 /* LightName */
522 #define GL_LIGHT0                         0x4000
523 #define GL_LIGHT1                         0x4001
524 #define GL_LIGHT2                         0x4002
525 #define GL_LIGHT3                         0x4003
526 #define GL_LIGHT4                         0x4004
527 #define GL_LIGHT5                         0x4005
528 #define GL_LIGHT6                         0x4006
529 #define GL_LIGHT7                         0x4007
530 
531 /* Buffer Objects */
532 #define GL_ARRAY_BUFFER                   0x8892
533 #define GL_ELEMENT_ARRAY_BUFFER           0x8893
534 
535 #define GL_ARRAY_BUFFER_BINDING               0x8894
536 #define GL_ELEMENT_ARRAY_BUFFER_BINDING       0x8895
537 #define GL_VERTEX_ARRAY_BUFFER_BINDING        0x8896
538 #define GL_NORMAL_ARRAY_BUFFER_BINDING        0x8897
539 #define GL_COLOR_ARRAY_BUFFER_BINDING         0x8898
540 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
541 
542 #define GL_STATIC_DRAW                    0x88E4
543 #define GL_DYNAMIC_DRAW                   0x88E8
544 
545 #define GL_BUFFER_SIZE                    0x8764
546 #define GL_BUFFER_USAGE                   0x8765
547 
548 /* Texture combine + dot3 */
549 #define GL_SUBTRACT                       0x84E7
550 #define GL_COMBINE                        0x8570
551 #define GL_COMBINE_RGB                    0x8571
552 #define GL_COMBINE_ALPHA                  0x8572
553 #define GL_RGB_SCALE                      0x8573
554 #define GL_ADD_SIGNED                     0x8574
555 #define GL_INTERPOLATE                    0x8575
556 #define GL_CONSTANT                       0x8576
557 #define GL_PRIMARY_COLOR                  0x8577
558 #define GL_PREVIOUS                       0x8578
559 #define GL_OPERAND0_RGB                   0x8590
560 #define GL_OPERAND1_RGB                   0x8591
561 #define GL_OPERAND2_RGB                   0x8592
562 #define GL_OPERAND0_ALPHA                 0x8598
563 #define GL_OPERAND1_ALPHA                 0x8599
564 #define GL_OPERAND2_ALPHA                 0x859A
565 
566 #define GL_ALPHA_SCALE                    0x0D1C
567 
568 #define GL_SRC0_RGB                       0x8580
569 #define GL_SRC1_RGB                       0x8581
570 #define GL_SRC2_RGB                       0x8582
571 #define GL_SRC0_ALPHA                     0x8588
572 #define GL_SRC1_ALPHA                     0x8589
573 #define GL_SRC2_ALPHA                     0x858A
574 
575 #define GL_DOT3_RGB                       0x86AE
576 #define GL_DOT3_RGBA                      0x86AF
577 
578 /*------------------------------------------------------------------------*
579  * required OES extension tokens
580  *------------------------------------------------------------------------*/
581 
582 /* OES_read_format */
583 #ifndef GL_OES_read_format
584 #define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES                   0x8B9A
585 #define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES                 0x8B9B
586 #endif
587 
588 /* GL_OES_compressed_paletted_texture */
589 #ifndef GL_OES_compressed_paletted_texture
590 #define GL_PALETTE4_RGB8_OES                                    0x8B90
591 #define GL_PALETTE4_RGBA8_OES                                   0x8B91
592 #define GL_PALETTE4_R5_G6_B5_OES                                0x8B92
593 #define GL_PALETTE4_RGBA4_OES                                   0x8B93
594 #define GL_PALETTE4_RGB5_A1_OES                                 0x8B94
595 #define GL_PALETTE8_RGB8_OES                                    0x8B95
596 #define GL_PALETTE8_RGBA8_OES                                   0x8B96
597 #define GL_PALETTE8_R5_G6_B5_OES                                0x8B97
598 #define GL_PALETTE8_RGBA4_OES                                   0x8B98
599 #define GL_PALETTE8_RGB5_A1_OES                                 0x8B99
600 #endif
601 
602 /* OES_point_size_array */
603 #ifndef GL_OES_point_size_array
604 #define GL_POINT_SIZE_ARRAY_OES                                 0x8B9C
605 #define GL_POINT_SIZE_ARRAY_TYPE_OES                            0x898A
606 #define GL_POINT_SIZE_ARRAY_STRIDE_OES                          0x898B
607 #define GL_POINT_SIZE_ARRAY_POINTER_OES                         0x898C
608 #define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES                  0x8B9F
609 #endif
610 
611 /* GL_OES_point_sprite */
612 #ifndef GL_OES_point_sprite
613 #define GL_POINT_SPRITE_OES                                     0x8861
614 #define GL_COORD_REPLACE_OES                                    0x8862
615 #endif
616 
617 /*************************************************************/
618 
619 /* Available only in Common profile */
620 GL_API void GL_APIENTRY glAlphaFunc (GLenum func, GLclampf ref);
621 GL_API void GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
622 GL_API void GL_APIENTRY glClearDepthf (GLclampf depth);
623 GL_API void GL_APIENTRY glClipPlanef (GLenum plane, const GLfloat *equation);
624 GL_API void GL_APIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
625 GL_API void GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar);
626 GL_API void GL_APIENTRY glFogf (GLenum pname, GLfloat param);
627 GL_API void GL_APIENTRY glFogfv (GLenum pname, const GLfloat *params);
628 GL_API void GL_APIENTRY glFrustumf (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
629 GL_API void GL_APIENTRY glGetClipPlanef (GLenum pname, GLfloat eqn[4]);
630 GL_API void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *params);
631 GL_API void GL_APIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params);
632 GL_API void GL_APIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params);
633 GL_API void GL_APIENTRY glGetTexEnvfv (GLenum env, GLenum pname, GLfloat *params);
634 GL_API void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
635 GL_API void GL_APIENTRY glLightModelf (GLenum pname, GLfloat param);
636 GL_API void GL_APIENTRY glLightModelfv (GLenum pname, const GLfloat *params);
637 GL_API void GL_APIENTRY glLightf (GLenum light, GLenum pname, GLfloat param);
638 GL_API void GL_APIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params);
639 GL_API void GL_APIENTRY glLineWidth (GLfloat width);
640 GL_API void GL_APIENTRY glLoadMatrixf (const GLfloat *m);
641 GL_API void GL_APIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param);
642 GL_API void GL_APIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params);
643 GL_API void GL_APIENTRY glMultMatrixf (const GLfloat *m);
644 GL_API void GL_APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
645 GL_API void GL_APIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
646 GL_API void GL_APIENTRY glOrthof (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
647 GL_API void GL_APIENTRY glPointParameterf (GLenum pname, GLfloat param);
648 GL_API void GL_APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params);
649 GL_API void GL_APIENTRY glPointSize (GLfloat size);
650 GL_API void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
651 GL_API void GL_APIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
652 GL_API void GL_APIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z);
653 GL_API void GL_APIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param);
654 GL_API void GL_APIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params);
655 GL_API void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
656 GL_API void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
657 GL_API void GL_APIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z);
658 
659 /* Available in both Common and Common-Lite profiles */
660 GL_API void GL_APIENTRY glActiveTexture (GLenum texture);
661 GL_API void GL_APIENTRY glAlphaFuncx (GLenum func, GLclampx ref);
662 GL_API void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer);
663 GL_API void GL_APIENTRY glBindTexture (GLenum target, GLuint texture);
664 GL_API void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
665 GL_API void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
666 GL_API void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
667 GL_API void GL_APIENTRY glClear (GLbitfield mask);
668 GL_API void GL_APIENTRY glClearColorx (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
669 GL_API void GL_APIENTRY glClearDepthx (GLclampx depth);
670 GL_API void GL_APIENTRY glClearStencil (GLint s);
671 GL_API void GL_APIENTRY glClientActiveTexture (GLenum texture);
672 GL_API void GL_APIENTRY glClipPlanex (GLenum plane, const GLfixed *equation);
673 GL_API void GL_APIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
674 GL_API void GL_APIENTRY glColor4x (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
675 GL_API void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
676 GL_API void GL_APIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
677 GL_API void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
678 GL_API void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
679 GL_API void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
680 GL_API void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
681 GL_API void GL_APIENTRY glCullFace (GLenum mode);
682 GL_API void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers);
683 GL_API void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
684 GL_API void GL_APIENTRY glDepthFunc (GLenum func);
685 GL_API void GL_APIENTRY glDepthMask (GLboolean flag);
686 GL_API void GL_APIENTRY glDepthRangex (GLclampx zNear, GLclampx zFar);
687 GL_API void GL_APIENTRY glDisable (GLenum cap);
688 GL_API void GL_APIENTRY glDisableClientState (GLenum array);
689 GL_API void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
690 GL_API void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
691 GL_API void GL_APIENTRY glEnable (GLenum cap);
692 GL_API void GL_APIENTRY glEnableClientState (GLenum array);
693 GL_API void GL_APIENTRY glFinish (void);
694 GL_API void GL_APIENTRY glFlush (void);
695 GL_API void GL_APIENTRY glFogx (GLenum pname, GLfixed param);
696 GL_API void GL_APIENTRY glFogxv (GLenum pname, const GLfixed *params);
697 GL_API void GL_APIENTRY glFrontFace (GLenum mode);
698 GL_API void GL_APIENTRY glFrustumx (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
699 GL_API void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *params);
700 GL_API void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params);
701 GL_API void GL_APIENTRY glGetClipPlanex (GLenum pname, GLfixed eqn[4]);
702 GL_API void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers);
703 GL_API void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures);
704 GL_API GLenum GL_APIENTRY glGetError (void);
705 GL_API void GL_APIENTRY glGetFixedv (GLenum pname, GLfixed *params);
706 GL_API void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *params);
707 GL_API void GL_APIENTRY glGetLightxv (GLenum light, GLenum pname, GLfixed *params);
708 GL_API void GL_APIENTRY glGetMaterialxv (GLenum face, GLenum pname, GLfixed *params);
709 GL_API void GL_APIENTRY glGetPointerv (GLenum pname, GLvoid **params);
710 GL_API const GLubyte * GL_APIENTRY glGetString (GLenum name);
711 GL_API void GL_APIENTRY glGetTexEnviv (GLenum env, GLenum pname, GLint *params);
712 GL_API void GL_APIENTRY glGetTexEnvxv (GLenum env, GLenum pname, GLfixed *params);
713 GL_API void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
714 GL_API void GL_APIENTRY glGetTexParameterxv (GLenum target, GLenum pname, GLfixed *params);
715 GL_API void GL_APIENTRY glHint (GLenum target, GLenum mode);
716 GL_API GLboolean GL_APIENTRY glIsBuffer (GLuint buffer);
717 GL_API GLboolean GL_APIENTRY glIsEnabled (GLenum cap);
718 GL_API GLboolean GL_APIENTRY glIsTexture (GLuint texture);
719 GL_API void GL_APIENTRY glLightModelx (GLenum pname, GLfixed param);
720 GL_API void GL_APIENTRY glLightModelxv (GLenum pname, const GLfixed *params);
721 GL_API void GL_APIENTRY glLightx (GLenum light, GLenum pname, GLfixed param);
722 GL_API void GL_APIENTRY glLightxv (GLenum light, GLenum pname, const GLfixed *params);
723 GL_API void GL_APIENTRY glLineWidthx (GLfixed width);
724 GL_API void GL_APIENTRY glLoadIdentity (void);
725 GL_API void GL_APIENTRY glLoadMatrixx (const GLfixed *m);
726 GL_API void GL_APIENTRY glLogicOp (GLenum opcode);
727 GL_API void GL_APIENTRY glMaterialx (GLenum face, GLenum pname, GLfixed param);
728 GL_API void GL_APIENTRY glMaterialxv (GLenum face, GLenum pname, const GLfixed *params);
729 GL_API void GL_APIENTRY glMatrixMode (GLenum mode);
730 GL_API void GL_APIENTRY glMultMatrixx (const GLfixed *m);
731 GL_API void GL_APIENTRY glMultiTexCoord4x (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
732 GL_API void GL_APIENTRY glNormal3x (GLfixed nx, GLfixed ny, GLfixed nz);
733 GL_API void GL_APIENTRY glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer);
734 GL_API void GL_APIENTRY glOrthox (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
735 GL_API void GL_APIENTRY glPixelStorei (GLenum pname, GLint param);
736 GL_API void GL_APIENTRY glPointParameterx (GLenum pname, GLfixed param);
737 GL_API void GL_APIENTRY glPointParameterxv (GLenum pname, const GLfixed *params);
738 GL_API void GL_APIENTRY glPointSizex (GLfixed size);
739 GL_API void GL_APIENTRY glPolygonOffsetx (GLfixed factor, GLfixed units);
740 GL_API void GL_APIENTRY glPopMatrix (void);
741 GL_API void GL_APIENTRY glPushMatrix (void);
742 GL_API void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
743 GL_API void GL_APIENTRY glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
744 GL_API void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
745 GL_API void GL_APIENTRY glSampleCoveragex (GLclampx value, GLboolean invert);
746 GL_API void GL_APIENTRY glScalex (GLfixed x, GLfixed y, GLfixed z);
747 GL_API void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
748 GL_API void GL_APIENTRY glShadeModel (GLenum mode);
749 GL_API void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
750 GL_API void GL_APIENTRY glStencilMask (GLuint mask);
751 GL_API void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
752 GL_API void GL_APIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
753 GL_API void GL_APIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param);
754 GL_API void GL_APIENTRY glTexEnvx (GLenum target, GLenum pname, GLfixed param);
755 GL_API void GL_APIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params);
756 GL_API void GL_APIENTRY glTexEnvxv (GLenum target, GLenum pname, const GLfixed *params);
757 GL_API void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
758 GL_API void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
759 GL_API void GL_APIENTRY glTexParameterx (GLenum target, GLenum pname, GLfixed param);
760 GL_API void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
761 GL_API void GL_APIENTRY glTexParameterxv (GLenum target, GLenum pname, const GLfixed *params);
762 GL_API void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
763 GL_API void GL_APIENTRY texSubImage2DAsync (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLint hpixels);
764 GL_API void GL_APIENTRY glTranslatex (GLfixed x, GLfixed y, GLfixed z);
765 GL_API void GL_APIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
766 GL_API void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
767 
768 /*------------------------------------------------------------------------*
769  * Required OES extension functions
770  *------------------------------------------------------------------------*/
771 
772 /* GL_OES_read_format */
773 #ifndef GL_OES_read_format
774 #define GL_OES_read_format 1
775 #endif
776 
777 /* GL_OES_compressed_paletted_texture */
778 #ifndef GL_OES_compressed_paletted_texture
779 #define GL_OES_compressed_paletted_texture 1
780 #endif
781 
782 /* GL_OES_point_size_array */
783 #ifndef GL_OES_point_size_array
784 #define GL_OES_point_size_array 1
785 GL_API void GL_APIENTRY glPointSizePointerOES (GLenum type, GLsizei stride, const GLvoid *pointer);
786 #endif
787 
788 /* GL_OES_point_sprite */
789 #ifndef GL_OES_point_sprite
790 #define GL_OES_point_sprite 1
791 #endif
792 
793 #ifdef __cplusplus
794 }
795 #endif
796 
797 #endif /* __gl_h_ */
798 
799