glheader.h revision b9abf16e
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
42extern "C" {
43#endif
44
45
46/* Custom Mesa types to save space. */
47typedef unsigned short GLenum16;
48typedef unsigned char GLbitfield8;
49typedef unsigned short GLbitfield16;
50typedef GLuint64 GLbitfield64;
51
52/* Common GLES 1.0 and 2.0 tokens */
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#ifndef GL_OES_compressed_ETC1_RGB8_texture
62#define GL_ETC1_RGB8_OES                                        0x8D64
63#endif
64
65
66/* GLES 1.0 only tokens */
67
68typedef int GLclampx;
69
70#ifndef GL_OES_point_size_array
71#define GL_POINT_SIZE_ARRAY_OES                                 0x8B9C
72#define GL_POINT_SIZE_ARRAY_TYPE_OES                            0x898A
73#define GL_POINT_SIZE_ARRAY_STRIDE_OES                          0x898B
74#define GL_POINT_SIZE_ARRAY_POINTER_OES                         0x898C
75#define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES                  0x8B9F
76#endif
77
78
79#ifndef GL_OES_draw_texture
80#define GL_TEXTURE_CROP_RECT_OES                                0x8B9D
81#endif
82
83#ifndef GL_TEXTURE_GEN_STR_OES
84#define GL_TEXTURE_GEN_STR_OES                                  0x8D60
85#endif
86
87
88/* GLES 2.0 only tokens */
89
90#ifndef GL_PROGRAM_BINARY_LENGTH_OES
91#define GL_PROGRAM_BINARY_LENGTH_OES                            0x8741
92#endif
93
94#ifndef GL_OES_texture_compression_astc
95#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES                       0x93C0
96#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES                       0x93C1
97#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES                       0x93C2
98#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES                       0x93C3
99#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES                       0x93C4
100#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES                       0x93C5
101#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES                       0x93C6
102#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES                       0x93C7
103#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES                       0x93C8
104#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES                       0x93C9
105#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES               0x93E0
106#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES               0x93E1
107#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES               0x93E2
108#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES               0x93E3
109#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES               0x93E4
110#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES               0x93E5
111#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES               0x93E6
112#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES               0x93E7
113#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES               0x93E8
114#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES               0x93E9
115#endif
116
117#ifndef GL_EXT_shader_framebuffer_fetch
118#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT                 0x8A52
119#endif
120
121#ifndef GL_EXT_disjoint_timer_query
122#define GL_GPU_DISJOINT_EXT                                     0x8FBB
123#endif
124
125/* Inexplicably, GL_HALF_FLOAT_OES has a different value than GL_HALF_FLOAT.
126 */
127#ifndef GL_HALF_FLOAT_OES
128#define GL_HALF_FLOAT_OES                                       0x8D61
129#endif
130
131#ifndef GL_MESA_framebuffer_flip_y
132#define GL_FRAMEBUFFER_FLIP_Y_MESA                              0x8BBB
133#endif
134
135/* There is no formal spec for the following extension. */
136#ifndef GL_ATI_texture_compression_3dc
137#define GL_ATI_texture_compression_3dc                          1
138#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI                   0x8837
139#endif
140
141#ifndef GL_EXT_texture_sRGB_R8
142#define GL_SR8_EXT                                              0x8FBD
143#endif
144
145#ifndef GL_AMD_compressed_ATC_texture
146#define GL_ATC_RGB_AMD                                          0x8C92
147#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD                          0x8C93
148#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD                      0x87EE
149#endif
150
151/**
152 * Internal token to represent a GLSL shader program (a collection of
153 * one or more shaders that get linked together).  Note that GLSL
154 * shaders and shader programs share one name space (one hash table)
155 * so we need a value that's different from any of the
156 * GL_VERTEX/FRAGMENT/GEOMETRY_PROGRAM tokens.
157 */
158#define GL_SHADER_PROGRAM_MESA                                  0x9999
159
160#ifndef GL_EXT_multisampled_render_to_texture
161#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C
162#endif
163
164#ifdef __cplusplus
165}
166#endif
167
168#endif /* GLHEADER_H */
169