Home | History | Annotate | Download | only in main
      1 /*
      2  * Mesa 3-D graphics library
      3  *
      4  * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.
      5  *
      6  * Permission is hereby granted, free of charge, to any person obtaining a
      7  * copy of this software and associated documentation files (the "Software"),
      8  * to deal in the Software without restriction, including without limitation
      9  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
     10  * and/or sell copies of the Software, and to permit persons to whom the
     11  * Software is furnished to do so, subject to the following conditions:
     12  *
     13  * The above copyright notice and this permission notice shall be included
     14  * in all copies or substantial portions of the Software.
     15  *
     16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
     17  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     19  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
     20  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     21  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     22  * OTHER DEALINGS IN THE SOFTWARE.
     23  */
     24 
     25 
     26 /**
     27  * \file glheader.h
     28  * Wrapper for GL/gl.h and GL/glext.h
     29  */
     30 
     31 
     32 #ifndef GLHEADER_H
     33 #define GLHEADER_H
     34 
     35 
     36 #define GL_GLEXT_PROTOTYPES
     37 #include "GL/gl.h"
     38 #include "GL/glext.h"
     39 
     40 
     41 #ifdef __cplusplus
     42 extern "C" {
     43 #endif
     44 
     45 
     46 typedef int GLclampx;
     47 
     48 
     49 #ifndef GL_OES_EGL_image
     50 typedef void *GLeglImageOES;
     51 #endif
     52 
     53 
     54 #ifndef GL_OES_EGL_image_external
     55 #define GL_TEXTURE_EXTERNAL_OES                                 0x8D65
     56 #define GL_SAMPLER_EXTERNAL_OES                                 0x8D66
     57 #define GL_TEXTURE_BINDING_EXTERNAL_OES                         0x8D67
     58 #define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES                     0x8D68
     59 #endif
     60 
     61 
     62 #ifndef GL_OES_point_size_array
     63 #define GL_POINT_SIZE_ARRAY_OES                                 0x8B9C
     64 #define GL_POINT_SIZE_ARRAY_TYPE_OES                            0x898A
     65 #define GL_POINT_SIZE_ARRAY_STRIDE_OES                          0x898B
     66 #define GL_POINT_SIZE_ARRAY_POINTER_OES                         0x898C
     67 #define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES                  0x8B9F
     68 #endif
     69 
     70 
     71 #ifndef GL_OES_draw_texture
     72 #define GL_TEXTURE_CROP_RECT_OES                                0x8B9D
     73 #endif
     74 
     75 
     76 #ifndef GL_PROGRAM_BINARY_LENGTH_OES
     77 #define GL_PROGRAM_BINARY_LENGTH_OES                            0x8741
     78 #endif
     79 
     80 /* GLES 2.0 tokens */
     81 #ifndef GL_RGB565
     82 #define GL_RGB565                                               0x8D62
     83 #endif
     84 
     85 #ifndef GL_TEXTURE_GEN_STR_OES
     86 #define GL_TEXTURE_GEN_STR_OES                                  0x8D60
     87 #endif
     88 
     89 #ifndef GL_OES_compressed_paletted_texture
     90 #define GL_PALETTE4_RGB8_OES                                    0x8B90
     91 #define GL_PALETTE4_RGBA8_OES                                   0x8B91
     92 #define GL_PALETTE4_R5_G6_B5_OES                                0x8B92
     93 #define GL_PALETTE4_RGBA4_OES                                   0x8B93
     94 #define GL_PALETTE4_RGB5_A1_OES                                 0x8B94
     95 #define GL_PALETTE8_RGB8_OES                                    0x8B95
     96 #define GL_PALETTE8_RGBA8_OES                                   0x8B96
     97 #define GL_PALETTE8_R5_G6_B5_OES                                0x8B97
     98 #define GL_PALETTE8_RGBA4_OES                                   0x8B98
     99 #define GL_PALETTE8_RGB5_A1_OES                                 0x8B99
    100 #endif
    101 
    102 #ifndef GL_OES_texture_compression_astc
    103 #define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES                       0x93C0
    104 #define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES                       0x93C1
    105 #define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES                       0x93C2
    106 #define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES                       0x93C3
    107 #define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES                       0x93C4
    108 #define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES                       0x93C5
    109 #define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES                       0x93C6
    110 #define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES                       0x93C7
    111 #define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES                       0x93C8
    112 #define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES                       0x93C9
    113 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES               0x93E0
    114 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES               0x93E1
    115 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES               0x93E2
    116 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES               0x93E3
    117 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES               0x93E4
    118 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES               0x93E5
    119 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES               0x93E6
    120 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES               0x93E7
    121 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES               0x93E8
    122 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES               0x93E9
    123 #endif
    124 
    125 #ifndef GL_ES_VERSION_2_0
    126 #define GL_SHADER_BINARY_FORMATS                                0x8DF8
    127 #define GL_NUM_SHADER_BINARY_FORMATS                            0x8DF9
    128 #define GL_SHADER_COMPILER                                      0x8DFA
    129 #define GL_MAX_VERTEX_UNIFORM_VECTORS                           0x8DFB
    130 #define GL_MAX_VARYING_VECTORS                                  0x8DFC
    131 #define GL_MAX_FRAGMENT_UNIFORM_VECTORS                         0x8DFD
    132 #endif
    133 
    134 #ifndef GL_ATI_texture_compression_3dc
    135 #define GL_ATI_texture_compression_3dc                          1
    136 #define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI                   0x8837
    137 #endif
    138 
    139 #ifndef GL_OES_compressed_ETC1_RGB8_texture
    140 #define GL_ETC1_RGB8_OES                                        0x8D64
    141 #endif
    142 
    143 #ifndef GL_EXT_shader_framebuffer_fetch
    144 #define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT                 0x8A52
    145 #endif
    146 
    147 /* Inexplicably, GL_HALF_FLOAT_OES has a different value than GL_HALF_FLOAT.
    148  */
    149 #ifndef GL_HALF_FLOAT_OES
    150 #define GL_HALF_FLOAT_OES                                       0x8D61
    151 #endif
    152 
    153 
    154 /**
    155  * Internal token to represent a GLSL shader program (a collection of
    156  * one or more shaders that get linked together).  Note that GLSL
    157  * shaders and shader programs share one name space (one hash table)
    158  * so we need a value that's different from any of the
    159  * GL_VERTEX/FRAGMENT/GEOMETRY_PROGRAM tokens.
    160  */
    161 #define GL_SHADER_PROGRAM_MESA                                  0x9999
    162 
    163 
    164 /* Several fields of struct gl_config can take these as values.  Since
    165  * GLX header files may not be available everywhere they need to be used,
    166  * redefine them here.
    167  */
    168 #define GLX_NONE                                                0x8000
    169 #define GLX_SLOW_CONFIG                                         0x8001
    170 #define GLX_TRUE_COLOR                                          0x8002
    171 #define GLX_DIRECT_COLOR                                        0x8003
    172 #define GLX_PSEUDO_COLOR                                        0x8004
    173 #define GLX_STATIC_COLOR                                        0x8005
    174 #define GLX_GRAY_SCALE                                          0x8006
    175 #define GLX_STATIC_GRAY                                         0x8007
    176 #define GLX_TRANSPARENT_RGB                                     0x8008
    177 #define GLX_TRANSPARENT_INDEX                                   0x8009
    178 #define GLX_NON_CONFORMANT_CONFIG                               0x800D
    179 #define GLX_SWAP_EXCHANGE_OML                                   0x8061
    180 #define GLX_SWAP_COPY_OML                                       0x8062
    181 #define GLX_SWAP_UNDEFINED_OML                                  0x8063
    182 
    183 #define GLX_DONT_CARE                                           0xFFFFFFFF
    184 
    185 
    186 #ifdef __cplusplus
    187 }
    188 #endif
    189 
    190 #endif /* GLHEADER_H */
    191