mesa: include mtypes.h less
[mesa.git] / src / mesa / main / glheader.h
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 /* Custom Mesa types to save space. */
47 typedef unsigned short GLenum16;
48 typedef unsigned char GLbitfield8;
49 typedef unsigned short GLbitfield16;
50 typedef GLuint64 GLbitfield64;
51
52 typedef int GLclampx;
53
54
55 #ifndef GL_OES_EGL_image
56 typedef void *GLeglImageOES;
57 #endif
58
59
60 #ifndef GL_OES_EGL_image_external
61 #define GL_TEXTURE_EXTERNAL_OES 0x8D65
62 #define GL_SAMPLER_EXTERNAL_OES 0x8D66
63 #define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67
64 #define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68
65 #endif
66
67
68 #ifndef GL_OES_point_size_array
69 #define GL_POINT_SIZE_ARRAY_OES 0x8B9C
70 #define GL_POINT_SIZE_ARRAY_TYPE_OES 0x898A
71 #define GL_POINT_SIZE_ARRAY_STRIDE_OES 0x898B
72 #define GL_POINT_SIZE_ARRAY_POINTER_OES 0x898C
73 #define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES 0x8B9F
74 #endif
75
76
77 #ifndef GL_OES_draw_texture
78 #define GL_TEXTURE_CROP_RECT_OES 0x8B9D
79 #endif
80
81
82 #ifndef GL_PROGRAM_BINARY_LENGTH_OES
83 #define GL_PROGRAM_BINARY_LENGTH_OES 0x8741
84 #endif
85
86 /* GLES 2.0 tokens */
87 #ifndef GL_RGB565
88 #define GL_RGB565 0x8D62
89 #endif
90
91 #ifndef GL_TEXTURE_GEN_STR_OES
92 #define GL_TEXTURE_GEN_STR_OES 0x8D60
93 #endif
94
95 #ifndef GL_OES_compressed_paletted_texture
96 #define GL_PALETTE4_RGB8_OES 0x8B90
97 #define GL_PALETTE4_RGBA8_OES 0x8B91
98 #define GL_PALETTE4_R5_G6_B5_OES 0x8B92
99 #define GL_PALETTE4_RGBA4_OES 0x8B93
100 #define GL_PALETTE4_RGB5_A1_OES 0x8B94
101 #define GL_PALETTE8_RGB8_OES 0x8B95
102 #define GL_PALETTE8_RGBA8_OES 0x8B96
103 #define GL_PALETTE8_R5_G6_B5_OES 0x8B97
104 #define GL_PALETTE8_RGBA4_OES 0x8B98
105 #define GL_PALETTE8_RGB5_A1_OES 0x8B99
106 #endif
107
108 #ifndef GL_OES_texture_compression_astc
109 #define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0
110 #define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1
111 #define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2
112 #define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3
113 #define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4
114 #define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5
115 #define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6
116 #define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7
117 #define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8
118 #define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9
119 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0
120 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1
121 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2
122 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3
123 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4
124 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5
125 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6
126 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7
127 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8
128 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9
129 #endif
130
131 #ifndef GL_ES_VERSION_2_0
132 #define GL_SHADER_BINARY_FORMATS 0x8DF8
133 #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
134 #define GL_SHADER_COMPILER 0x8DFA
135 #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
136 #define GL_MAX_VARYING_VECTORS 0x8DFC
137 #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
138 #endif
139
140 #ifndef GL_ATI_texture_compression_3dc
141 #define GL_ATI_texture_compression_3dc 1
142 #define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837
143 #endif
144
145 #ifndef GL_OES_compressed_ETC1_RGB8_texture
146 #define GL_ETC1_RGB8_OES 0x8D64
147 #endif
148
149 #ifndef GL_EXT_shader_framebuffer_fetch
150 #define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
151 #endif
152
153 #ifndef GL_EXT_disjoint_timer_query
154 #define GL_GPU_DISJOINT_EXT 0x8FBB
155 #endif
156
157 /* Inexplicably, GL_HALF_FLOAT_OES has a different value than GL_HALF_FLOAT.
158 */
159 #ifndef GL_HALF_FLOAT_OES
160 #define GL_HALF_FLOAT_OES 0x8D61
161 #endif
162
163
164 /**
165 * Internal token to represent a GLSL shader program (a collection of
166 * one or more shaders that get linked together). Note that GLSL
167 * shaders and shader programs share one name space (one hash table)
168 * so we need a value that's different from any of the
169 * GL_VERTEX/FRAGMENT/GEOMETRY_PROGRAM tokens.
170 */
171 #define GL_SHADER_PROGRAM_MESA 0x9999
172
173
174 /* Several fields of struct gl_config can take these as values. Since
175 * GLX header files may not be available everywhere they need to be used,
176 * redefine them here.
177 */
178 #define GLX_NONE 0x8000
179 #define GLX_SLOW_CONFIG 0x8001
180 #define GLX_TRUE_COLOR 0x8002
181 #define GLX_DIRECT_COLOR 0x8003
182 #define GLX_PSEUDO_COLOR 0x8004
183 #define GLX_STATIC_COLOR 0x8005
184 #define GLX_GRAY_SCALE 0x8006
185 #define GLX_STATIC_GRAY 0x8007
186 #define GLX_TRANSPARENT_RGB 0x8008
187 #define GLX_TRANSPARENT_INDEX 0x8009
188 #define GLX_NON_CONFORMANT_CONFIG 0x800D
189 #define GLX_SWAP_EXCHANGE_OML 0x8061
190 #define GLX_SWAP_COPY_OML 0x8062
191 #define GLX_SWAP_UNDEFINED_OML 0x8063
192
193 #define GLX_DONT_CARE 0xFFFFFFFF
194
195
196 #ifdef __cplusplus
197 }
198 #endif
199
200 #endif /* GLHEADER_H */