include/SDL_opengles.h
author Sam Lantinga <slouken@libsdl.org>
Wed, 12 Jan 2011 15:42:26 -0800
changeset 4986 8431f59485d0
parent 3697 f7b03b6838cb
child 5204 daa5463466c5
permissions -rw-r--r--
Renderer didn't advertise texture format SDL_PIXELFORMAT_ABGR8888
     1 /*
     2  SDL - Simple DirectMedia Layer
     3  Copyright (C) 1997-2010 Sam Lantinga
     4  
     5  This library is free software; you can redistribute it and/or
     6  modify it under the terms of the GNU Lesser General Public
     7  License as published by the Free Software Foundation; either
     8  version 2.1 of the License, or (at your option) any later version.
     9  
    10  This library is distributed in the hope that it will be useful,
    11  but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    13  Lesser General Public License for more details.
    14  
    15  You should have received a copy of the GNU Lesser General Public
    16  License along with this library; if not, write to the Free Software
    17  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    18  
    19  Sam Lantinga
    20  slouken@libsdl.org
    21  */
    22 
    23 /**
    24  *  \file SDL_opengles.h
    25  *  
    26  *  This is a simple file to encapsulate the OpenGL ES API headers.
    27  *  
    28  *  Headers copied from The Kronos Group website.
    29  *  	http://www.khronos.org/opengles/
    30  */
    31 
    32 #ifndef __gles_h_
    33 #define __gles_h_
    34 
    35 /* $Id: gl.h 4533 2007-11-26 11:19:35Z markc $ */
    36 
    37 #ifdef __cplusplus
    38 extern "C"
    39 {
    40 #endif
    41 
    42 #ifdef __IPHONEOS__
    43 #include <OpenGLES/ES1/gl.h>    /* Header File For The OpenGL ES Library */
    44 #endif
    45 
    46 #ifndef APIENTRY
    47 #define APIENTRY
    48 #endif
    49 
    50 #ifndef GL_APIENTRY
    51 #define GL_APIENTRY
    52 #endif
    53 
    54 #ifndef GL_API
    55 #define GL_API
    56 #endif                          /* GL_API */
    57 
    58 /*
    59 ** License Applicability. Except to the extent portions of this file are
    60 ** made subject to an alternative license as permitted in the SGI Free
    61 ** Software License B, Version 1.0 (the "License"), the contents of this
    62 ** file are subject only to the provisions of the License. You may not use
    63 ** this file except in compliance with the License. You may obtain a copy
    64 ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
    65 ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
    66 **
    67 ** http://oss.sgi.com/projects/FreeB
    68 **
    69 ** Note that, as provided in the License, the Software is distributed on an
    70 ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
    71 ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
    72 ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
    73 ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
    74 **
    75 ** Original Code. The Original Code is: OpenGL Sample Implementation,
    76 ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
    77 ** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
    78 ** Copyright in any portions created by third parties is as indicated
    79 ** elsewhere herein. All Rights Reserved.
    80 **
    81 ** Additional Notice Provisions: The application programming interfaces
    82 ** established by SGI in conjunction with the Original Code are The
    83 ** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
    84 ** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
    85 ** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
    86 ** Window System(R) (Version 1.3), released October 19, 1998. This software
    87 ** was created using the OpenGL(R) version 1.2.1 Sample Implementation
    88 ** published by SGI, but has not been independently verified as being
    89 ** compliant with the OpenGL(R) version 1.2.1 Specification.
    90 */
    91 
    92     typedef unsigned int GLenum;
    93     typedef unsigned char GLboolean;
    94     typedef unsigned int GLbitfield;
    95     typedef signed char GLbyte;
    96     typedef short GLshort;
    97     typedef int GLint;
    98     typedef int GLsizei;
    99     typedef unsigned char GLubyte;
   100     typedef unsigned short GLushort;
   101     typedef unsigned int GLuint;
   102     typedef float GLfloat;
   103     typedef float GLclampf;
   104     typedef void GLvoid;
   105     typedef int GLfixed;
   106     typedef int GLclampx;
   107 
   108     typedef int GLintptr;
   109     typedef int GLsizeiptr;
   110 
   111 
   112 /*************************************************************/
   113 
   114 /* OpenGL ES core versions */
   115 #define GL_VERSION_ES_CM_1_0		  1
   116 #define GL_VERSION_ES_CL_1_0		  1
   117 #define GL_VERSION_ES_CM_1_1		  1
   118 #define GL_VERSION_ES_CL_1_1		  1
   119 
   120 /* ClearBufferMask */
   121 #define GL_DEPTH_BUFFER_BIT               0x00000100
   122 #define GL_STENCIL_BUFFER_BIT             0x00000400
   123 #define GL_COLOR_BUFFER_BIT               0x00004000
   124 
   125 /* Boolean */
   126 #define GL_FALSE                          0
   127 #define GL_TRUE                           1
   128 
   129 /* BeginMode */
   130 #define GL_POINTS                         0x0000
   131 #define GL_LINES                          0x0001
   132 #define GL_LINE_LOOP                      0x0002
   133 #define GL_LINE_STRIP                     0x0003
   134 #define GL_TRIANGLES                      0x0004
   135 #define GL_TRIANGLE_STRIP                 0x0005
   136 #define GL_TRIANGLE_FAN                   0x0006
   137 
   138 /* AlphaFunction */
   139 #define GL_NEVER                          0x0200
   140 #define GL_LESS                           0x0201
   141 #define GL_EQUAL                          0x0202
   142 #define GL_LEQUAL                         0x0203
   143 #define GL_GREATER                        0x0204
   144 #define GL_NOTEQUAL                       0x0205
   145 #define GL_GEQUAL                         0x0206
   146 #define GL_ALWAYS                         0x0207
   147 
   148 /* BlendingFactorDest */
   149 #define GL_ZERO                           0
   150 #define GL_ONE                            1
   151 #define GL_SRC_COLOR                      0x0300
   152 #define GL_ONE_MINUS_SRC_COLOR            0x0301
   153 #define GL_SRC_ALPHA                      0x0302
   154 #define GL_ONE_MINUS_SRC_ALPHA            0x0303
   155 #define GL_DST_ALPHA                      0x0304
   156 #define GL_ONE_MINUS_DST_ALPHA            0x0305
   157 
   158 /* BlendingFactorSrc */
   159 /*      GL_ZERO */
   160 /*      GL_ONE */
   161 #define GL_DST_COLOR                      0x0306
   162 #define GL_ONE_MINUS_DST_COLOR            0x0307
   163 #define GL_SRC_ALPHA_SATURATE             0x0308
   164 /*      GL_SRC_ALPHA */
   165 /*      GL_ONE_MINUS_SRC_ALPHA */
   166 /*      GL_DST_ALPHA */
   167 /*      GL_ONE_MINUS_DST_ALPHA */
   168 
   169 /* ClipPlaneName */
   170 #define GL_CLIP_PLANE0                    0x3000
   171 #define GL_CLIP_PLANE1                    0x3001
   172 #define GL_CLIP_PLANE2                    0x3002
   173 #define GL_CLIP_PLANE3                    0x3003
   174 #define GL_CLIP_PLANE4                    0x3004
   175 #define GL_CLIP_PLANE5                    0x3005
   176 
   177 /* ColorMaterialFace */
   178 /*      GL_FRONT_AND_BACK */
   179 
   180 /* ColorMaterialParameter */
   181 /*      GL_AMBIENT_AND_DIFFUSE */
   182 
   183 /* ColorPointerType */
   184 /*      GL_UNSIGNED_BYTE */
   185 /*      GL_FLOAT */
   186 /*      GL_FIXED */
   187 
   188 /* CullFaceMode */
   189 #define GL_FRONT                          0x0404
   190 #define GL_BACK                           0x0405
   191 #define GL_FRONT_AND_BACK                 0x0408
   192 
   193 /* DepthFunction */
   194 /*      GL_NEVER */
   195 /*      GL_LESS */
   196 /*      GL_EQUAL */
   197 /*      GL_LEQUAL */
   198 /*      GL_GREATER */
   199 /*      GL_NOTEQUAL */
   200 /*      GL_GEQUAL */
   201 /*      GL_ALWAYS */
   202 
   203 /* EnableCap */
   204 #define GL_FOG                            0x0B60
   205 #define GL_LIGHTING                       0x0B50
   206 #define GL_TEXTURE_2D                     0x0DE1
   207 #define GL_CULL_FACE                      0x0B44
   208 #define GL_ALPHA_TEST                     0x0BC0
   209 #define GL_BLEND                          0x0BE2
   210 #define GL_COLOR_LOGIC_OP                 0x0BF2
   211 #define GL_DITHER                         0x0BD0
   212 #define GL_STENCIL_TEST                   0x0B90
   213 #define GL_DEPTH_TEST                     0x0B71
   214 /*      GL_LIGHT0 */
   215 /*      GL_LIGHT1 */
   216 /*      GL_LIGHT2 */
   217 /*      GL_LIGHT3 */
   218 /*      GL_LIGHT4 */
   219 /*      GL_LIGHT5 */
   220 /*      GL_LIGHT6 */
   221 /*      GL_LIGHT7 */
   222 #define GL_POINT_SMOOTH                   0x0B10
   223 #define GL_LINE_SMOOTH                    0x0B20
   224 #define GL_SCISSOR_TEST                   0x0C11
   225 #define GL_COLOR_MATERIAL                 0x0B57
   226 #define GL_NORMALIZE                      0x0BA1
   227 #define GL_RESCALE_NORMAL                 0x803A
   228 #define GL_POLYGON_OFFSET_FILL            0x8037
   229 #define GL_VERTEX_ARRAY                   0x8074
   230 #define GL_NORMAL_ARRAY                   0x8075
   231 #define GL_COLOR_ARRAY                    0x8076
   232 #define GL_TEXTURE_COORD_ARRAY            0x8078
   233 #define GL_MULTISAMPLE                    0x809D
   234 #define GL_SAMPLE_ALPHA_TO_COVERAGE       0x809E
   235 #define GL_SAMPLE_ALPHA_TO_ONE            0x809F
   236 #define GL_SAMPLE_COVERAGE                0x80A0
   237 
   238 /* ErrorCode */
   239 #define GL_NO_ERROR                       0
   240 #define GL_INVALID_ENUM                   0x0500
   241 #define GL_INVALID_VALUE                  0x0501
   242 #define GL_INVALID_OPERATION              0x0502
   243 #define GL_STACK_OVERFLOW                 0x0503
   244 #define GL_STACK_UNDERFLOW                0x0504
   245 #define GL_OUT_OF_MEMORY                  0x0505
   246 
   247 /* FogMode */
   248 /*      GL_LINEAR */
   249 #define GL_EXP                            0x0800
   250 #define GL_EXP2                           0x0801
   251 
   252 /* FogParameter */
   253 #define GL_FOG_DENSITY                    0x0B62
   254 #define GL_FOG_START                      0x0B63
   255 #define GL_FOG_END                        0x0B64
   256 #define GL_FOG_MODE                       0x0B65
   257 #define GL_FOG_COLOR                      0x0B66
   258 
   259 /* FrontFaceDirection */
   260 #define GL_CW                             0x0900
   261 #define GL_CCW                            0x0901
   262 
   263 /* GetPName */
   264 #define GL_CURRENT_COLOR                  0x0B00
   265 #define GL_CURRENT_NORMAL                 0x0B02
   266 #define GL_CURRENT_TEXTURE_COORDS         0x0B03
   267 #define GL_POINT_SIZE                     0x0B11
   268 #define GL_POINT_SIZE_MIN                 0x8126
   269 #define GL_POINT_SIZE_MAX                 0x8127
   270 #define GL_POINT_FADE_THRESHOLD_SIZE      0x8128
   271 #define GL_POINT_DISTANCE_ATTENUATION     0x8129
   272 #define GL_SMOOTH_POINT_SIZE_RANGE        0x0B12
   273 #define GL_LINE_WIDTH                     0x0B21
   274 #define GL_SMOOTH_LINE_WIDTH_RANGE        0x0B22
   275 #define GL_ALIASED_POINT_SIZE_RANGE       0x846D
   276 #define GL_ALIASED_LINE_WIDTH_RANGE       0x846E
   277 #define GL_CULL_FACE_MODE                 0x0B45
   278 #define GL_FRONT_FACE                     0x0B46
   279 #define GL_SHADE_MODEL                    0x0B54
   280 #define GL_DEPTH_RANGE                    0x0B70
   281 #define GL_DEPTH_WRITEMASK                0x0B72
   282 #define GL_DEPTH_CLEAR_VALUE              0x0B73
   283 #define GL_DEPTH_FUNC                     0x0B74
   284 #define GL_STENCIL_CLEAR_VALUE            0x0B91
   285 #define GL_STENCIL_FUNC                   0x0B92
   286 #define GL_STENCIL_VALUE_MASK             0x0B93
   287 #define GL_STENCIL_FAIL                   0x0B94
   288 #define GL_STENCIL_PASS_DEPTH_FAIL        0x0B95
   289 #define GL_STENCIL_PASS_DEPTH_PASS        0x0B96
   290 #define GL_STENCIL_REF                    0x0B97
   291 #define GL_STENCIL_WRITEMASK              0x0B98
   292 #define GL_MATRIX_MODE                    0x0BA0
   293 #define GL_VIEWPORT                       0x0BA2
   294 #define GL_MODELVIEW_STACK_DEPTH          0x0BA3
   295 #define GL_PROJECTION_STACK_DEPTH         0x0BA4
   296 #define GL_TEXTURE_STACK_DEPTH            0x0BA5
   297 #define GL_MODELVIEW_MATRIX               0x0BA6
   298 #define GL_PROJECTION_MATRIX              0x0BA7
   299 #define GL_TEXTURE_MATRIX                 0x0BA8
   300 #define GL_ALPHA_TEST_FUNC                0x0BC1
   301 #define GL_ALPHA_TEST_REF                 0x0BC2
   302 #define GL_BLEND_DST                      0x0BE0
   303 #define GL_BLEND_SRC                      0x0BE1
   304 #define GL_LOGIC_OP_MODE                  0x0BF0
   305 #define GL_SCISSOR_BOX                    0x0C10
   306 #define GL_SCISSOR_TEST                   0x0C11
   307 #define GL_COLOR_CLEAR_VALUE              0x0C22
   308 #define GL_COLOR_WRITEMASK                0x0C23
   309 #define GL_UNPACK_ALIGNMENT               0x0CF5
   310 #define GL_PACK_ALIGNMENT                 0x0D05
   311 #define GL_MAX_LIGHTS                     0x0D31
   312 #define GL_MAX_CLIP_PLANES                0x0D32
   313 #define GL_MAX_TEXTURE_SIZE               0x0D33
   314 #define GL_MAX_MODELVIEW_STACK_DEPTH      0x0D36
   315 #define GL_MAX_PROJECTION_STACK_DEPTH     0x0D38
   316 #define GL_MAX_TEXTURE_STACK_DEPTH        0x0D39
   317 #define GL_MAX_VIEWPORT_DIMS              0x0D3A
   318 #define GL_MAX_TEXTURE_UNITS              0x84E2
   319 #define GL_SUBPIXEL_BITS                  0x0D50
   320 #define GL_RED_BITS                       0x0D52
   321 #define GL_GREEN_BITS                     0x0D53
   322 #define GL_BLUE_BITS                      0x0D54
   323 #define GL_ALPHA_BITS                     0x0D55
   324 #define GL_DEPTH_BITS                     0x0D56
   325 #define GL_STENCIL_BITS                   0x0D57
   326 #define GL_POLYGON_OFFSET_UNITS           0x2A00
   327 #define GL_POLYGON_OFFSET_FILL            0x8037
   328 #define GL_POLYGON_OFFSET_FACTOR          0x8038
   329 #define GL_TEXTURE_BINDING_2D             0x8069
   330 #define GL_VERTEX_ARRAY_SIZE              0x807A
   331 #define GL_VERTEX_ARRAY_TYPE              0x807B
   332 #define GL_VERTEX_ARRAY_STRIDE            0x807C
   333 #define GL_NORMAL_ARRAY_TYPE              0x807E
   334 #define GL_NORMAL_ARRAY_STRIDE            0x807F
   335 #define GL_COLOR_ARRAY_SIZE               0x8081
   336 #define GL_COLOR_ARRAY_TYPE               0x8082
   337 #define GL_COLOR_ARRAY_STRIDE             0x8083
   338 #define GL_TEXTURE_COORD_ARRAY_SIZE       0x8088
   339 #define GL_TEXTURE_COORD_ARRAY_TYPE       0x8089
   340 #define GL_TEXTURE_COORD_ARRAY_STRIDE     0x808A
   341 #define GL_VERTEX_ARRAY_POINTER           0x808E
   342 #define GL_NORMAL_ARRAY_POINTER           0x808F
   343 #define GL_COLOR_ARRAY_POINTER            0x8090
   344 #define GL_TEXTURE_COORD_ARRAY_POINTER    0x8092
   345 #define GL_SAMPLE_BUFFERS                 0x80A8
   346 #define GL_SAMPLES                        0x80A9
   347 #define GL_SAMPLE_COVERAGE_VALUE          0x80AA
   348 #define GL_SAMPLE_COVERAGE_INVERT         0x80AB
   349 
   350 /* OpenGL ES 1.0 defines, they gone in 1.1 and 2.0 */
   351 #ifndef GL_MAX_ELEMENTS_VERTICES
   352 #define GL_MAX_ELEMENTS_VERTICES          0x80E8
   353 #endif                          /* GL_MAX_ELEMENTS_VERTICES */
   354 #ifndef GL_MAX_ELEMENTS_INDICES
   355 #define GL_MAX_ELEMENTS_INDICES           0x80E9
   356 #endif                          /* GL_MAX_ELEMENTS_INDICES */
   357 
   358 /* GetTextureParameter */
   359 /*      GL_TEXTURE_MAG_FILTER */
   360 /*      GL_TEXTURE_MIN_FILTER */
   361 /*      GL_TEXTURE_WRAP_S */
   362 /*      GL_TEXTURE_WRAP_T */
   363 
   364 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
   365 #define GL_COMPRESSED_TEXTURE_FORMATS     0x86A3
   366 
   367 /* HintMode */
   368 #define GL_DONT_CARE                      0x1100
   369 #define GL_FASTEST                        0x1101
   370 #define GL_NICEST                         0x1102
   371 
   372 /* HintTarget */
   373 #define GL_PERSPECTIVE_CORRECTION_HINT    0x0C50
   374 #define GL_POINT_SMOOTH_HINT              0x0C51
   375 #define GL_LINE_SMOOTH_HINT               0x0C52
   376 #define GL_FOG_HINT                       0x0C54
   377 #define GL_GENERATE_MIPMAP_HINT           0x8192
   378 
   379 /* LightModelParameter */
   380 #define GL_LIGHT_MODEL_AMBIENT            0x0B53
   381 #define GL_LIGHT_MODEL_TWO_SIDE           0x0B52
   382 
   383 /* LightParameter */
   384 #define GL_AMBIENT                        0x1200
   385 #define GL_DIFFUSE                        0x1201
   386 #define GL_SPECULAR                       0x1202
   387 #define GL_POSITION                       0x1203
   388 #define GL_SPOT_DIRECTION                 0x1204
   389 #define GL_SPOT_EXPONENT                  0x1205
   390 #define GL_SPOT_CUTOFF                    0x1206
   391 #define GL_CONSTANT_ATTENUATION           0x1207
   392 #define GL_LINEAR_ATTENUATION             0x1208
   393 #define GL_QUADRATIC_ATTENUATION          0x1209
   394 
   395 /* DataType */
   396 #define GL_BYTE                           0x1400
   397 #define GL_UNSIGNED_BYTE                  0x1401
   398 #define GL_SHORT                          0x1402
   399 #define GL_UNSIGNED_SHORT                 0x1403
   400 #define GL_FLOAT                          0x1406
   401 #define GL_FIXED                          0x140C
   402 
   403 /* LogicOp */
   404 #define GL_CLEAR                          0x1500
   405 #define GL_AND                            0x1501
   406 #define GL_AND_REVERSE                    0x1502
   407 #define GL_COPY                           0x1503
   408 #define GL_AND_INVERTED                   0x1504
   409 #define GL_NOOP                           0x1505
   410 #define GL_XOR                            0x1506
   411 #define GL_OR                             0x1507
   412 #define GL_NOR                            0x1508
   413 #define GL_EQUIV                          0x1509
   414 #define GL_INVERT                         0x150A
   415 #define GL_OR_REVERSE                     0x150B
   416 #define GL_COPY_INVERTED                  0x150C
   417 #define GL_OR_INVERTED                    0x150D
   418 #define GL_NAND                           0x150E
   419 #define GL_SET                            0x150F
   420 
   421 /* MaterialFace */
   422 /*      GL_FRONT_AND_BACK */
   423 
   424 /* MaterialParameter */
   425 #define GL_EMISSION                       0x1600
   426 #define GL_SHININESS                      0x1601
   427 #define GL_AMBIENT_AND_DIFFUSE            0x1602
   428 /*      GL_AMBIENT */
   429 /*      GL_DIFFUSE */
   430 /*      GL_SPECULAR */
   431 
   432 /* MatrixMode */
   433 #define GL_MODELVIEW                      0x1700
   434 #define GL_PROJECTION                     0x1701
   435 #define GL_TEXTURE                        0x1702
   436 
   437 /* NormalPointerType */
   438 /*      GL_BYTE */
   439 /*      GL_SHORT */
   440 /*      GL_FLOAT */
   441 /*      GL_FIXED */
   442 
   443 /* PixelFormat */
   444 #define GL_ALPHA                          0x1906
   445 #define GL_RGB                            0x1907
   446 #define GL_RGBA                           0x1908
   447 #define GL_LUMINANCE                      0x1909
   448 #define GL_LUMINANCE_ALPHA                0x190A
   449 
   450 /* PixelStoreParameter */
   451 #define GL_UNPACK_ALIGNMENT               0x0CF5
   452 #define GL_PACK_ALIGNMENT                 0x0D05
   453 
   454 /* PixelType */
   455 /*      GL_UNSIGNED_BYTE */
   456 #define GL_UNSIGNED_SHORT_4_4_4_4         0x8033
   457 #define GL_UNSIGNED_SHORT_5_5_5_1         0x8034
   458 #define GL_UNSIGNED_SHORT_5_6_5           0x8363
   459 
   460 /* ShadingModel */
   461 #define GL_FLAT                           0x1D00
   462 #define GL_SMOOTH                         0x1D01
   463 
   464 /* StencilFunction */
   465 /*      GL_NEVER */
   466 /*      GL_LESS */
   467 /*      GL_EQUAL */
   468 /*      GL_LEQUAL */
   469 /*      GL_GREATER */
   470 /*      GL_NOTEQUAL */
   471 /*      GL_GEQUAL */
   472 /*      GL_ALWAYS */
   473 
   474 /* StencilOp */
   475 /*      GL_ZERO */
   476 #define GL_KEEP                           0x1E00
   477 #define GL_REPLACE                        0x1E01
   478 #define GL_INCR                           0x1E02
   479 #define GL_DECR                           0x1E03
   480 /*      GL_INVERT */
   481 
   482 /* StringName */
   483 #define GL_VENDOR                         0x1F00
   484 #define GL_RENDERER                       0x1F01
   485 #define GL_VERSION                        0x1F02
   486 #define GL_EXTENSIONS                     0x1F03
   487 
   488 /* TexCoordPointerType */
   489 /*      GL_SHORT */
   490 /*      GL_FLOAT */
   491 /*      GL_FIXED */
   492 /*      GL_BYTE */
   493 
   494 /* TextureEnvMode */
   495 #define GL_MODULATE                       0x2100
   496 #define GL_DECAL                          0x2101
   497 /*      GL_BLEND */
   498 #define GL_ADD                            0x0104
   499 /*      GL_REPLACE */
   500 
   501 /* TextureEnvParameter */
   502 #define GL_TEXTURE_ENV_MODE               0x2200
   503 #define GL_TEXTURE_ENV_COLOR              0x2201
   504 
   505 /* TextureEnvTarget */
   506 #define GL_TEXTURE_ENV                    0x2300
   507 
   508 /* TextureMagFilter */
   509 #define GL_NEAREST                        0x2600
   510 #define GL_LINEAR                         0x2601
   511 
   512 /* TextureMinFilter */
   513 /*      GL_NEAREST */
   514 /*      GL_LINEAR */
   515 #define GL_NEAREST_MIPMAP_NEAREST         0x2700
   516 #define GL_LINEAR_MIPMAP_NEAREST          0x2701
   517 #define GL_NEAREST_MIPMAP_LINEAR          0x2702
   518 #define GL_LINEAR_MIPMAP_LINEAR           0x2703
   519 
   520 /* TextureParameterName */
   521 #define GL_TEXTURE_MAG_FILTER             0x2800
   522 #define GL_TEXTURE_MIN_FILTER             0x2801
   523 #define GL_TEXTURE_WRAP_S                 0x2802
   524 #define GL_TEXTURE_WRAP_T                 0x2803
   525 #define GL_GENERATE_MIPMAP                0x8191
   526 
   527 /* TextureTarget */
   528 /*      GL_TEXTURE_2D */
   529 
   530 /* TextureUnit */
   531 #define GL_TEXTURE0                       0x84C0
   532 #define GL_TEXTURE1                       0x84C1
   533 #define GL_TEXTURE2                       0x84C2
   534 #define GL_TEXTURE3                       0x84C3
   535 #define GL_TEXTURE4                       0x84C4
   536 #define GL_TEXTURE5                       0x84C5
   537 #define GL_TEXTURE6                       0x84C6
   538 #define GL_TEXTURE7                       0x84C7
   539 #define GL_TEXTURE8                       0x84C8
   540 #define GL_TEXTURE9                       0x84C9
   541 #define GL_TEXTURE10                      0x84CA
   542 #define GL_TEXTURE11                      0x84CB
   543 #define GL_TEXTURE12                      0x84CC
   544 #define GL_TEXTURE13                      0x84CD
   545 #define GL_TEXTURE14                      0x84CE
   546 #define GL_TEXTURE15                      0x84CF
   547 #define GL_TEXTURE16                      0x84D0
   548 #define GL_TEXTURE17                      0x84D1
   549 #define GL_TEXTURE18                      0x84D2
   550 #define GL_TEXTURE19                      0x84D3
   551 #define GL_TEXTURE20                      0x84D4
   552 #define GL_TEXTURE21                      0x84D5
   553 #define GL_TEXTURE22                      0x84D6
   554 #define GL_TEXTURE23                      0x84D7
   555 #define GL_TEXTURE24                      0x84D8
   556 #define GL_TEXTURE25                      0x84D9
   557 #define GL_TEXTURE26                      0x84DA
   558 #define GL_TEXTURE27                      0x84DB
   559 #define GL_TEXTURE28                      0x84DC
   560 #define GL_TEXTURE29                      0x84DD
   561 #define GL_TEXTURE30                      0x84DE
   562 #define GL_TEXTURE31                      0x84DF
   563 #define GL_ACTIVE_TEXTURE                 0x84E0
   564 #define GL_CLIENT_ACTIVE_TEXTURE          0x84E1
   565 
   566 /* TextureWrapMode */
   567 #define GL_REPEAT                         0x2901
   568 #define GL_CLAMP_TO_EDGE                  0x812F
   569 
   570 /* VertexPointerType */
   571 /*      GL_SHORT */
   572 /*      GL_FLOAT */
   573 /*      GL_FIXED */
   574 /*      GL_BYTE */
   575 
   576 /* LightName */
   577 #define GL_LIGHT0                         0x4000
   578 #define GL_LIGHT1                         0x4001
   579 #define GL_LIGHT2                         0x4002
   580 #define GL_LIGHT3                         0x4003
   581 #define GL_LIGHT4                         0x4004
   582 #define GL_LIGHT5                         0x4005
   583 #define GL_LIGHT6                         0x4006
   584 #define GL_LIGHT7                         0x4007
   585 
   586 /* Buffer Objects */
   587 #define GL_ARRAY_BUFFER                   0x8892
   588 #define GL_ELEMENT_ARRAY_BUFFER           0x8893
   589 
   590 #define GL_ARRAY_BUFFER_BINDING               0x8894
   591 #define GL_ELEMENT_ARRAY_BUFFER_BINDING       0x8895
   592 #define GL_VERTEX_ARRAY_BUFFER_BINDING        0x8896
   593 #define GL_NORMAL_ARRAY_BUFFER_BINDING        0x8897
   594 #define GL_COLOR_ARRAY_BUFFER_BINDING         0x8898
   595 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
   596 
   597 #define GL_STATIC_DRAW                    0x88E4
   598 #define GL_DYNAMIC_DRAW                   0x88E8
   599 
   600 #define GL_BUFFER_SIZE                    0x8764
   601 #define GL_BUFFER_USAGE                   0x8765
   602 
   603 /* Texture combine + dot3 */
   604 #define GL_SUBTRACT                       0x84E7
   605 #define GL_COMBINE                        0x8570
   606 #define GL_COMBINE_RGB                    0x8571
   607 #define GL_COMBINE_ALPHA                  0x8572
   608 #define GL_RGB_SCALE                      0x8573
   609 #define GL_ADD_SIGNED                     0x8574
   610 #define GL_INTERPOLATE                    0x8575
   611 #define GL_CONSTANT                       0x8576
   612 #define GL_PRIMARY_COLOR                  0x8577
   613 #define GL_PREVIOUS                       0x8578
   614 #define GL_OPERAND0_RGB                   0x8590
   615 #define GL_OPERAND1_RGB                   0x8591
   616 #define GL_OPERAND2_RGB                   0x8592
   617 #define GL_OPERAND0_ALPHA                 0x8598
   618 #define GL_OPERAND1_ALPHA                 0x8599
   619 #define GL_OPERAND2_ALPHA                 0x859A
   620 
   621 #define GL_ALPHA_SCALE                    0x0D1C
   622 
   623 #define GL_SRC0_RGB                       0x8580
   624 #define GL_SRC1_RGB                       0x8581
   625 #define GL_SRC2_RGB                       0x8582
   626 #define GL_SRC0_ALPHA                     0x8588
   627 #define GL_SRC1_ALPHA                     0x8589
   628 #define GL_SRC2_ALPHA                     0x858A
   629 
   630 #define GL_DOT3_RGB                       0x86AE
   631 #define GL_DOT3_RGBA                      0x86AF
   632 
   633 /*------------------------------------------------------------------------*
   634  * required OES extension tokens
   635  *------------------------------------------------------------------------*/
   636 
   637 /* OES_read_format */
   638 #ifndef GL_OES_read_format
   639 #define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES                   0x8B9A
   640 #define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES                 0x8B9B
   641 #endif
   642 
   643 /* GL_OES_compressed_paletted_texture */
   644 #ifndef GL_OES_compressed_paletted_texture
   645 #define GL_PALETTE4_RGB8_OES                                    0x8B90
   646 #define GL_PALETTE4_RGBA8_OES                                   0x8B91
   647 #define GL_PALETTE4_R5_G6_B5_OES                                0x8B92
   648 #define GL_PALETTE4_RGBA4_OES                                   0x8B93
   649 #define GL_PALETTE4_RGB5_A1_OES                                 0x8B94
   650 #define GL_PALETTE8_RGB8_OES                                    0x8B95
   651 #define GL_PALETTE8_RGBA8_OES                                   0x8B96
   652 #define GL_PALETTE8_R5_G6_B5_OES                                0x8B97
   653 #define GL_PALETTE8_RGBA4_OES                                   0x8B98
   654 #define GL_PALETTE8_RGB5_A1_OES                                 0x8B99
   655 #endif
   656 
   657 /* OES_point_size_array */
   658 #ifndef GL_OES_point_size_array
   659 #define GL_POINT_SIZE_ARRAY_OES                                 0x8B9C
   660 #define GL_POINT_SIZE_ARRAY_TYPE_OES                            0x898A
   661 #define GL_POINT_SIZE_ARRAY_STRIDE_OES                          0x898B
   662 #define GL_POINT_SIZE_ARRAY_POINTER_OES                         0x898C
   663 #define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES                  0x8B9F
   664 #endif
   665 
   666 /* GL_OES_point_sprite */
   667 #ifndef GL_OES_point_sprite
   668 #define GL_POINT_SPRITE_OES                                     0x8861
   669 #define GL_COORD_REPLACE_OES                                    0x8862
   670 #endif
   671 
   672 /* GL_OES_draw_texture */
   673 #ifndef GL_OES_draw_texture
   674 #define GL_TEXTURE_CROP_RECT_OES                                0x8B9D
   675 #endif                          /* GL_OES_draw_texture */
   676 
   677 /*  GL_OES_vertex_buffer_object */
   678 #ifndef GL_OES_vertex_buffer_object
   679 #define GL_ARRAY_BUFFER_OES                                     0x8892
   680 #define GL_ELEMENT_ARRAY_BUFFER_OES                             0x8893
   681 #define GL_ARRAY_BUFFER_BINDING_OES                             0x8894
   682 #define GL_ELEMENT_ARRAY_BUFFER_BINDING_OES                     0x8895
   683 #define GL_VERTEX_ARRAY_BUFFER_BINDING_OES                      0x8896
   684 #define GL_NORMAL_ARRAY_BUFFER_BINDING_OES                      0x8897
   685 #define GL_COLOR_ARRAY_BUFFER_BINDING_OES                       0x8898
   686 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_OES               0x889A
   687 #define GL_STATIC_DRAW_OES                                      0x88E4
   688 #define GL_DYNAMIC_DRAW_OES                                     0x88E8
   689 #define GL_WRITE_ONLY_OES                                       0x88B9
   690 #define GL_BUFFER_SIZE_OES                                      0x8764
   691 #define GL_BUFFER_USAGE_OES                                     0x8765
   692 #define GL_BUFFER_ACCESS_OES                                    0x88BB
   693 #endif                          /* GL_OES_vertex_buffer_object */
   694 
   695 /*************************************************************/
   696 
   697 /* Available only in Common profile */
   698     GL_API void GL_APIENTRY glAlphaFunc(GLenum func, GLclampf ref);
   699     GL_API void GL_APIENTRY glClearColor(GLclampf red, GLclampf green,
   700                                          GLclampf blue, GLclampf alpha);
   701     GL_API void GL_APIENTRY glClearDepthf(GLclampf depth);
   702     GL_API void GL_APIENTRY glClipPlanef(GLenum plane,
   703                                          const GLfloat * equation);
   704     GL_API void GL_APIENTRY glColor4f(GLfloat red, GLfloat green,
   705                                       GLfloat blue, GLfloat alpha);
   706     GL_API void GL_APIENTRY glDepthRangef(GLclampf zNear, GLclampf zFar);
   707     GL_API void GL_APIENTRY glFogf(GLenum pname, GLfloat param);
   708     GL_API void GL_APIENTRY glFogfv(GLenum pname, const GLfloat * params);
   709     GL_API void GL_APIENTRY glFrustumf(GLfloat left, GLfloat right,
   710                                        GLfloat bottom, GLfloat top,
   711                                        GLfloat zNear, GLfloat zFar);
   712     GL_API void GL_APIENTRY glGetClipPlanef(GLenum pname, GLfloat eqn[4]);
   713     GL_API void GL_APIENTRY glGetFloatv(GLenum pname, GLfloat * params);
   714     GL_API void GL_APIENTRY glGetLightfv(GLenum light, GLenum pname,
   715                                          GLfloat * params);
   716     GL_API void GL_APIENTRY glGetMaterialfv(GLenum face, GLenum pname,
   717                                             GLfloat * params);
   718     GL_API void GL_APIENTRY glGetTexEnvfv(GLenum env, GLenum pname,
   719                                           GLfloat * params);
   720     GL_API void GL_APIENTRY glGetTexParameterfv(GLenum target, GLenum pname,
   721                                                 GLfloat * params);
   722     GL_API void GL_APIENTRY glLightModelf(GLenum pname, GLfloat param);
   723     GL_API void GL_APIENTRY glLightModelfv(GLenum pname,
   724                                            const GLfloat * params);
   725     GL_API void GL_APIENTRY glLightf(GLenum light, GLenum pname,
   726                                      GLfloat param);
   727     GL_API void GL_APIENTRY glLightfv(GLenum light, GLenum pname,
   728                                       const GLfloat * params);
   729     GL_API void GL_APIENTRY glLineWidth(GLfloat width);
   730     GL_API void GL_APIENTRY glLoadMatrixf(const GLfloat * m);
   731     GL_API void GL_APIENTRY glMaterialf(GLenum face, GLenum pname,
   732                                         GLfloat param);
   733     GL_API void GL_APIENTRY glMaterialfv(GLenum face, GLenum pname,
   734                                          const GLfloat * params);
   735     GL_API void GL_APIENTRY glMultMatrixf(const GLfloat * m);
   736     GL_API void GL_APIENTRY glMultiTexCoord4f(GLenum target, GLfloat s,
   737                                               GLfloat t, GLfloat r,
   738                                               GLfloat q);
   739     GL_API void GL_APIENTRY glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz);
   740     GL_API void GL_APIENTRY glOrthof(GLfloat left, GLfloat right,
   741                                      GLfloat bottom, GLfloat top,
   742                                      GLfloat zNear, GLfloat zFar);
   743     GL_API void GL_APIENTRY glPointParameterf(GLenum pname, GLfloat param);
   744     GL_API void GL_APIENTRY glPointParameterfv(GLenum pname,
   745                                                const GLfloat * params);
   746     GL_API void GL_APIENTRY glPointSize(GLfloat size);
   747     GL_API void GL_APIENTRY glPolygonOffset(GLfloat factor, GLfloat units);
   748     GL_API void GL_APIENTRY glRotatef(GLfloat angle, GLfloat x, GLfloat y,
   749                                       GLfloat z);
   750     GL_API void GL_APIENTRY glScalef(GLfloat x, GLfloat y, GLfloat z);
   751     GL_API void GL_APIENTRY glTexEnvf(GLenum target, GLenum pname,
   752                                       GLfloat param);
   753     GL_API void GL_APIENTRY glTexEnvfv(GLenum target, GLenum pname,
   754                                        const GLfloat * params);
   755     GL_API void GL_APIENTRY glTexParameterf(GLenum target, GLenum pname,
   756                                             GLfloat param);
   757     GL_API void GL_APIENTRY glTexParameterfv(GLenum target, GLenum pname,
   758                                              const GLfloat * params);
   759     GL_API void GL_APIENTRY glTranslatef(GLfloat x, GLfloat y, GLfloat z);
   760 
   761 /* Available in both Common and Common-Lite profiles */
   762     GL_API void GL_APIENTRY glActiveTexture(GLenum texture);
   763     GL_API void GL_APIENTRY glAlphaFuncx(GLenum func, GLclampx ref);
   764     GL_API void GL_APIENTRY glBindBuffer(GLenum target, GLuint buffer);
   765     GL_API void GL_APIENTRY glBindTexture(GLenum target, GLuint texture);
   766     GL_API void GL_APIENTRY glBlendFunc(GLenum sfactor, GLenum dfactor);
   767     GL_API void GL_APIENTRY glBufferData(GLenum target, GLsizeiptr size,
   768                                          const GLvoid * data, GLenum usage);
   769     GL_API void GL_APIENTRY glBufferSubData(GLenum target, GLintptr offset,
   770                                             GLsizeiptr size,
   771                                             const GLvoid * data);
   772     GL_API void GL_APIENTRY glClear(GLbitfield mask);
   773     GL_API void GL_APIENTRY glClearColorx(GLclampx red, GLclampx green,
   774                                           GLclampx blue, GLclampx alpha);
   775     GL_API void GL_APIENTRY glClearDepthx(GLclampx depth);
   776     GL_API void GL_APIENTRY glClearStencil(GLint s);
   777     GL_API void GL_APIENTRY glClientActiveTexture(GLenum texture);
   778     GL_API void GL_APIENTRY glClipPlanex(GLenum plane,
   779                                          const GLfixed * equation);
   780     GL_API void GL_APIENTRY glColor4ub(GLubyte red, GLubyte green,
   781                                        GLubyte blue, GLubyte alpha);
   782     GL_API void GL_APIENTRY glColor4x(GLfixed red, GLfixed green,
   783                                       GLfixed blue, GLfixed alpha);
   784     GL_API void GL_APIENTRY glColorMask(GLboolean red, GLboolean green,
   785                                         GLboolean blue, GLboolean alpha);
   786     GL_API void GL_APIENTRY glColorPointer(GLint size, GLenum type,
   787                                            GLsizei stride,
   788                                            const GLvoid * pointer);
   789     GL_API void GL_APIENTRY glCompressedTexImage2D(GLenum target, GLint level,
   790                                                    GLenum internalformat,
   791                                                    GLsizei width,
   792                                                    GLsizei height,
   793                                                    GLint border,
   794                                                    GLsizei imageSize,
   795                                                    const GLvoid * data);
   796     GL_API void GL_APIENTRY glCompressedTexSubImage2D(GLenum target,
   797                                                       GLint level,
   798                                                       GLint xoffset,
   799                                                       GLint yoffset,
   800                                                       GLsizei width,
   801                                                       GLsizei height,
   802                                                       GLenum format,
   803                                                       GLsizei imageSize,
   804                                                       const GLvoid * data);
   805     GL_API void GL_APIENTRY glCopyTexImage2D(GLenum target, GLint level,
   806                                              GLenum internalformat, GLint x,
   807                                              GLint y, GLsizei width,
   808                                              GLsizei height, GLint border);
   809     GL_API void GL_APIENTRY glCopyTexSubImage2D(GLenum target, GLint level,
   810                                                 GLint xoffset, GLint yoffset,
   811                                                 GLint x, GLint y,
   812                                                 GLsizei width,
   813                                                 GLsizei height);
   814     GL_API void GL_APIENTRY glCullFace(GLenum mode);
   815     GL_API void GL_APIENTRY glDeleteBuffers(GLsizei n,
   816                                             const GLuint * buffers);
   817     GL_API void GL_APIENTRY glDeleteTextures(GLsizei n,
   818                                              const GLuint * textures);
   819     GL_API void GL_APIENTRY glDepthFunc(GLenum func);
   820     GL_API void GL_APIENTRY glDepthMask(GLboolean flag);
   821     GL_API void GL_APIENTRY glDepthRangex(GLclampx zNear, GLclampx zFar);
   822     GL_API void GL_APIENTRY glDisable(GLenum cap);
   823     GL_API void GL_APIENTRY glDisableClientState(GLenum array);
   824     GL_API void GL_APIENTRY glDrawArrays(GLenum mode, GLint first,
   825                                          GLsizei count);
   826     GL_API void GL_APIENTRY glDrawElements(GLenum mode, GLsizei count,
   827                                            GLenum type,
   828                                            const GLvoid * indices);
   829     GL_API void GL_APIENTRY glEnable(GLenum cap);
   830     GL_API void GL_APIENTRY glEnableClientState(GLenum array);
   831     GL_API void GL_APIENTRY glFinish(void);
   832     GL_API void GL_APIENTRY glFlush(void);
   833     GL_API void GL_APIENTRY glFogx(GLenum pname, GLfixed param);
   834     GL_API void GL_APIENTRY glFogxv(GLenum pname, const GLfixed * params);
   835     GL_API void GL_APIENTRY glFrontFace(GLenum mode);
   836     GL_API void GL_APIENTRY glFrustumx(GLfixed left, GLfixed right,
   837                                        GLfixed bottom, GLfixed top,
   838                                        GLfixed zNear, GLfixed zFar);
   839     GL_API void GL_APIENTRY glGetBooleanv(GLenum pname, GLboolean * params);
   840     GL_API void GL_APIENTRY glGetBufferParameteriv(GLenum target,
   841                                                    GLenum pname,
   842                                                    GLint * params);
   843     GL_API void GL_APIENTRY glGetClipPlanex(GLenum pname, GLfixed eqn[4]);
   844     GL_API void GL_APIENTRY glGenBuffers(GLsizei n, GLuint * buffers);
   845     GL_API void GL_APIENTRY glGenTextures(GLsizei n, GLuint * textures);
   846     GL_API GLenum GL_APIENTRY glGetError(void);
   847     GL_API void GL_APIENTRY glGetFixedv(GLenum pname, GLfixed * params);
   848     GL_API void GL_APIENTRY glGetIntegerv(GLenum pname, GLint * params);
   849     GL_API void GL_APIENTRY glGetLightxv(GLenum light, GLenum pname,
   850                                          GLfixed * params);
   851     GL_API void GL_APIENTRY glGetMaterialxv(GLenum face, GLenum pname,
   852                                             GLfixed * params);
   853     GL_API void GL_APIENTRY glGetPointerv(GLenum pname, void **params);
   854     GL_API const GLubyte *GL_APIENTRY glGetString(GLenum name);
   855     GL_API void GL_APIENTRY glGetTexEnviv(GLenum env, GLenum pname,
   856                                           GLint * params);
   857     GL_API void GL_APIENTRY glGetTexEnvxv(GLenum env, GLenum pname,
   858                                           GLfixed * params);
   859     GL_API void GL_APIENTRY glGetTexParameteriv(GLenum target, GLenum pname,
   860                                                 GLint * params);
   861     GL_API void GL_APIENTRY glGetTexParameterxv(GLenum target, GLenum pname,
   862                                                 GLfixed * params);
   863     GL_API void GL_APIENTRY glHint(GLenum target, GLenum mode);
   864     GL_API GLboolean GL_APIENTRY glIsBuffer(GLuint buffer);
   865     GL_API GLboolean GL_APIENTRY glIsEnabled(GLenum cap);
   866     GL_API GLboolean GL_APIENTRY glIsTexture(GLuint texture);
   867     GL_API void GL_APIENTRY glLightModelx(GLenum pname, GLfixed param);
   868     GL_API void GL_APIENTRY glLightModelxv(GLenum pname,
   869                                            const GLfixed * params);
   870     GL_API void GL_APIENTRY glLightx(GLenum light, GLenum pname,
   871                                      GLfixed param);
   872     GL_API void GL_APIENTRY glLightxv(GLenum light, GLenum pname,
   873                                       const GLfixed * params);
   874     GL_API void GL_APIENTRY glLineWidthx(GLfixed width);
   875     GL_API void GL_APIENTRY glLoadIdentity(void);
   876     GL_API void GL_APIENTRY glLoadMatrixx(const GLfixed * m);
   877     GL_API void GL_APIENTRY glLogicOp(GLenum opcode);
   878     GL_API void GL_APIENTRY glMaterialx(GLenum face, GLenum pname,
   879                                         GLfixed param);
   880     GL_API void GL_APIENTRY glMaterialxv(GLenum face, GLenum pname,
   881                                          const GLfixed * params);
   882     GL_API void GL_APIENTRY glMatrixMode(GLenum mode);
   883     GL_API void GL_APIENTRY glMultMatrixx(const GLfixed * m);
   884     GL_API void GL_APIENTRY glMultiTexCoord4x(GLenum target, GLfixed s,
   885                                               GLfixed t, GLfixed r,
   886                                               GLfixed q);
   887     GL_API void GL_APIENTRY glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz);
   888     GL_API void GL_APIENTRY glNormalPointer(GLenum type, GLsizei stride,
   889                                             const GLvoid * pointer);
   890     GL_API void GL_APIENTRY glOrthox(GLfixed left, GLfixed right,
   891                                      GLfixed bottom, GLfixed top,
   892                                      GLfixed zNear, GLfixed zFar);
   893     GL_API void GL_APIENTRY glPixelStorei(GLenum pname, GLint param);
   894     GL_API void GL_APIENTRY glPointParameterx(GLenum pname, GLfixed param);
   895     GL_API void GL_APIENTRY glPointParameterxv(GLenum pname,
   896                                                const GLfixed * params);
   897     GL_API void GL_APIENTRY glPointSizex(GLfixed size);
   898     GL_API void GL_APIENTRY glPolygonOffsetx(GLfixed factor, GLfixed units);
   899     GL_API void GL_APIENTRY glPopMatrix(void);
   900     GL_API void GL_APIENTRY glPushMatrix(void);
   901     GL_API void GL_APIENTRY glReadPixels(GLint x, GLint y, GLsizei width,
   902                                          GLsizei height, GLenum format,
   903                                          GLenum type, GLvoid * pixels);
   904     GL_API void GL_APIENTRY glRotatex(GLfixed angle, GLfixed x, GLfixed y,
   905                                       GLfixed z);
   906     GL_API void GL_APIENTRY glSampleCoverage(GLclampf value,
   907                                              GLboolean invert);
   908     GL_API void GL_APIENTRY glSampleCoveragex(GLclampx value,
   909                                               GLboolean invert);
   910     GL_API void GL_APIENTRY glScalex(GLfixed x, GLfixed y, GLfixed z);
   911     GL_API void GL_APIENTRY glScissor(GLint x, GLint y, GLsizei width,
   912                                       GLsizei height);
   913     GL_API void GL_APIENTRY glShadeModel(GLenum mode);
   914     GL_API void GL_APIENTRY glStencilFunc(GLenum func, GLint ref,
   915                                           GLuint mask);
   916     GL_API void GL_APIENTRY glStencilMask(GLuint mask);
   917     GL_API void GL_APIENTRY glStencilOp(GLenum fail, GLenum zfail,
   918                                         GLenum zpass);
   919     GL_API void GL_APIENTRY glTexCoordPointer(GLint size, GLenum type,
   920                                               GLsizei stride,
   921                                               const GLvoid * pointer);
   922     GL_API void GL_APIENTRY glTexEnvi(GLenum target, GLenum pname,
   923                                       GLint param);
   924     GL_API void GL_APIENTRY glTexEnvx(GLenum target, GLenum pname,
   925                                       GLfixed param);
   926     GL_API void GL_APIENTRY glTexEnviv(GLenum target, GLenum pname,
   927                                        const GLint * params);
   928     GL_API void GL_APIENTRY glTexEnvxv(GLenum target, GLenum pname,
   929                                        const GLfixed * params);
   930     GL_API void GL_APIENTRY glTexImage2D(GLenum target, GLint level,
   931                                          GLint internalformat, GLsizei width,
   932                                          GLsizei height, GLint border,
   933                                          GLenum format, GLenum type,
   934                                          const GLvoid * pixels);
   935     GL_API void GL_APIENTRY glTexParameteri(GLenum target, GLenum pname,
   936                                             GLint param);
   937     GL_API void GL_APIENTRY glTexParameterx(GLenum target, GLenum pname,
   938                                             GLfixed param);
   939     GL_API void GL_APIENTRY glTexParameteriv(GLenum target, GLenum pname,
   940                                              const GLint * params);
   941     GL_API void GL_APIENTRY glTexParameterxv(GLenum target, GLenum pname,
   942                                              const GLfixed * params);
   943     GL_API void GL_APIENTRY glTexSubImage2D(GLenum target, GLint level,
   944                                             GLint xoffset, GLint yoffset,
   945                                             GLsizei width, GLsizei height,
   946                                             GLenum format, GLenum type,
   947                                             const GLvoid * pixels);
   948     GL_API void GL_APIENTRY glTranslatex(GLfixed x, GLfixed y, GLfixed z);
   949     GL_API void GL_APIENTRY glVertexPointer(GLint size, GLenum type,
   950                                             GLsizei stride,
   951                                             const GLvoid * pointer);
   952     GL_API void GL_APIENTRY glViewport(GLint x, GLint y, GLsizei width,
   953                                        GLsizei height);
   954 
   955 /*------------------------------------------------------------------------*
   956  * Required OES extension functions
   957  *------------------------------------------------------------------------*/
   958 
   959 /* GL_OES_read_format */
   960 #ifndef GL_OES_read_format
   961 #define GL_OES_read_format 1
   962 #endif
   963 
   964 /* GL_OES_compressed_paletted_texture */
   965 #ifndef GL_OES_compressed_paletted_texture
   966 #define GL_OES_compressed_paletted_texture 1
   967 #endif
   968 
   969 /* GL_OES_point_size_array */
   970 #ifndef GL_OES_point_size_array
   971 #define GL_OES_point_size_array 1
   972     GL_API void GL_APIENTRY glPointSizePointerOES(GLenum type, GLsizei stride,
   973                                                   const GLvoid * pointer);
   974 #endif
   975 
   976 /* GL_OES_query_matrix */
   977 #ifndef GL_OES_query_matrix
   978 #define GL_OES_query_matrix 1
   979     GL_API GLbitfield GL_APIENTRY glQueryMatrixxOES(GLfixed mantissa[16],
   980                                                     GLint exponent[16]);
   981 #endif                          /* GL_OES_query_matrix */
   982 
   983 /* GL_OES_point_sprite */
   984 #ifndef GL_OES_point_sprite
   985 #define GL_OES_point_sprite 1
   986 #endif
   987 
   988 /* GL_OES_draw_texture */
   989 #ifndef GL_OES_draw_texture
   990 #define GL_OES_draw_texture 1
   991     GL_API void GL_APIENTRY glDrawTexsOES(GLshort x, GLshort y, GLshort z,
   992                                           GLshort width, GLshort height);
   993     GL_API void GL_APIENTRY glDrawTexiOES(GLint x, GLint y, GLint z,
   994                                           GLint width, GLint height);
   995     GL_API void GL_APIENTRY glDrawTexxOES(GLfixed x, GLfixed y, GLfixed z,
   996                                           GLfixed width, GLfixed height);
   997     GL_API void GL_APIENTRY glDrawTexsvOES(const GLshort * coords);
   998     GL_API void GL_APIENTRY glDrawTexivOES(const GLint * coords);
   999     GL_API void GL_APIENTRY glDrawTexxvOES(const GLfixed * coords);
  1000     GL_API void GL_APIENTRY glDrawTexfOES(GLfloat x, GLfloat y, GLfloat z,
  1001                                           GLfloat width, GLfloat height);
  1002     GL_API void GL_APIENTRY glDrawTexfvOES(const GLfloat * coords);
  1003 #endif                          /* GL_OES_draw_texture */
  1004 
  1005 /* GL_OES_single_precision */
  1006 #ifndef GL_OES_single_precision
  1007 #define GL_OES_single_precision 1
  1008     GL_API void GL_APIENTRY glDepthRangefOES(GLclampf zNear, GLclampf zFar);
  1009     GL_API void GL_APIENTRY glFrustumfOES(GLfloat left, GLfloat right,
  1010                                           GLfloat bottom, GLfloat top,
  1011                                           GLfloat zNear, GLfloat zFar);
  1012     GL_API void GL_APIENTRY glOrthofOES(GLfloat left, GLfloat right,
  1013                                         GLfloat bottom, GLfloat top,
  1014                                         GLfloat zNear, GLfloat zFar);
  1015     GL_API void GL_APIENTRY glClipPlanefOES(GLenum plane,
  1016                                             const GLfloat * equation);
  1017     GL_API void GL_APIENTRY glGetClipPlanefOES(GLenum pname, GLfloat eqn[4]);
  1018     GL_API void GL_APIENTRY glClearDepthfOES(GLclampf depth);
  1019 #endif                          /* GL_OES_single_precision */
  1020 
  1021 /* GL_OES_vertex_buffer_object */
  1022 #ifndef GL_OES_vertex_buffer_object
  1023 #define GL_OES_vertex_buffer_object 1
  1024     GL_API void APIENTRY glBindBufferOES(GLenum, GLuint);
  1025     GL_API void APIENTRY glDeleteBuffersOES(GLsizei, const GLuint *);
  1026     GL_API void APIENTRY glGenBuffersOES(GLsizei, GLuint *);
  1027     GL_API GLboolean APIENTRY glIsBufferOES(GLuint);
  1028     GL_API void APIENTRY glBufferDataOES(GLenum, GLsizeiptr, const GLvoid *,
  1029                                          GLenum);
  1030     GL_API void APIENTRY glBufferSubDataOES(GLenum, GLintptr, GLsizeiptr,
  1031                                             const GLvoid *);
  1032     GL_API void APIENTRY glGetBufferParameterivOES(GLenum, GLenum, GLint *);
  1033 #endif                          /* GL_OES_vertex_buffer_object */
  1034 
  1035 #ifdef __cplusplus
  1036 }
  1037 #endif
  1038 
  1039 #endif                          /* __gles_h_ */