1 /*
2 ** Copyright 1992-1999 Silicon Graphics, Inc.
3 ** All Rights Reserved.
4 **
5 ** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
6 ** the contents of this file may not be disclosed to third parties, copied or
7 ** duplicated in any form, in whole or in part, without the prior written
8 ** permission of Silicon Graphics, Inc.
9 **
10 ** RESTRICTED RIGHTS LEGEND:
11 ** Use, duplication or disclosure by the Government is subject to restrictions
12 ** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
13 ** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
14 ** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
15 ** rights reserved under the Copyright Laws of the United States.
16 */
17 #ifndef __glext_h_
18 #define __glext_h_
19 
20 
21 #ifndef APIENTRY
22 #define WIN32_LEAN_AND_MEAN 1
23 #include <windows.h>
24 #endif
25 
26 #define GL_ARB_multitexture                 1
27 #define GL_EXT_abgr                         1
28 #define GL_EXT_bgra                         1
29 #define GL_EXT_clip_volume_hint             1
30 #define GL_EXT_compiled_vertex_array        1
31 #define GL_EXT_cull_vertex                  1
32 #define GL_EXT_packed_pixels                1
33 #define GL_EXT_point_parameters             1
34 #define GL_EXT_stencil_wrap                 1
35 #define GL_EXT_texture_env_add              1
36 #define GL_EXT_texture_env_combine          1
37 #define GL_EXT_vertex_array                 1
38 #define GL_NV_texgen_reflection             1
39 #define GL_NV_texture_env_combine4          1
40 #define GL_WIN_swap_hint                    1
41 
42 /* EXT_abgr */
43 #define GL_ABGR_EXT                         0x8000
44 
45 /* EXT_packed_pixels */
46 #define GL_UNSIGNED_BYTE_3_3_2_EXT          0x8032
47 #define GL_UNSIGNED_SHORT_4_4_4_4_EXT       0x8033
48 #define GL_UNSIGNED_SHORT_5_5_5_1_EXT       0x8034
49 #define GL_UNSIGNED_INT_8_8_8_8_EXT         0x8035
50 #define GL_UNSIGNED_INT_10_10_10_2_EXT      0x8036
51 
52 /* EXT_vertex_array */
53 #define GL_VERTEX_ARRAY_EXT                 0x8074
54 #define GL_NORMAL_ARRAY_EXT                 0x8075
55 #define GL_COLOR_ARRAY_EXT                  0x8076
56 #define GL_INDEX_ARRAY_EXT                  0x8077
57 #define GL_TEXTURE_COORD_ARRAY_EXT          0x8078
58 #define GL_EDGE_FLAG_ARRAY_EXT              0x8079
59 #define GL_VERTEX_ARRAY_SIZE_EXT            0x807A
60 #define GL_VERTEX_ARRAY_TYPE_EXT            0x807B
61 #define GL_VERTEX_ARRAY_STRIDE_EXT          0x807C
62 #define GL_VERTEX_ARRAY_COUNT_EXT           0x807D
63 #define GL_NORMAL_ARRAY_TYPE_EXT            0x807E
64 #define GL_NORMAL_ARRAY_STRIDE_EXT          0x807F
65 #define GL_NORMAL_ARRAY_COUNT_EXT           0x8080
66 #define GL_COLOR_ARRAY_SIZE_EXT             0x8081
67 #define GL_COLOR_ARRAY_TYPE_EXT             0x8082
68 #define GL_COLOR_ARRAY_STRIDE_EXT           0x8083
69 #define GL_COLOR_ARRAY_COUNT_EXT            0x8084
70 #define GL_INDEX_ARRAY_TYPE_EXT             0x8085
71 #define GL_INDEX_ARRAY_STRIDE_EXT           0x8086
72 #define GL_INDEX_ARRAY_COUNT_EXT            0x8087
73 #define GL_TEXTURE_COORD_ARRAY_SIZE_EXT     0x8088
74 #define GL_TEXTURE_COORD_ARRAY_TYPE_EXT     0x8089
75 #define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT   0x808A
76 #define GL_TEXTURE_COORD_ARRAY_COUNT_EXT    0x808B
77 #define GL_EDGE_FLAG_ARRAY_STRIDE_EXT       0x808C
78 #define GL_EDGE_FLAG_ARRAY_COUNT_EXT        0x808D
79 #define GL_VERTEX_ARRAY_POINTER_EXT         0x808E
80 #define GL_NORMAL_ARRAY_POINTER_EXT         0x808F
81 #define GL_COLOR_ARRAY_POINTER_EXT          0x8090
82 #define GL_INDEX_ARRAY_POINTER_EXT          0x8091
83 #define GL_TEXTURE_COORD_ARRAY_POINTER_EXT  0x8092
84 #define GL_EDGE_FLAG_ARRAY_POINTER_EXT      0x8093
85 
86 /* EXT_bgra */
87 #define GL_BGR_EXT                          0x80E0
88 #define GL_BGRA_EXT                         0x80E1
89 
90 /* EXT_clip_volume_hint */
91 #define GL_CLIP_VOLUME_CLIPPING_HINT_EXT    0x80F0
92 
93 /* EXT_point_parameters */
94 #define GL_POINT_SIZE_MIN_EXT               0x8126
95 #define GL_POINT_SIZE_MAX_EXT               0x8127
96 #define GL_POINT_FADE_THRESHOLD_SIZE_EXT    0x8128
97 #define GL_DISTANCE_ATTENUATION_EXT         0x8129
98 
99 /* EXT_compiled_vertex_array */
100 #define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT     0x81A8
101 #define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT     0x81A9
102 
103 /* EXT_cull_vertex */
104 #define GL_CULL_VERTEX_EXT                  0x81AA
105 #define GL_CULL_VERTEX_EYE_POSITION_EXT     0x81AB
106 #define GL_CULL_VERTEX_OBJECT_POSITION_EXT  0x81AC
107 
108 /* ARB_multitexture */
109 #define GL_ACTIVE_TEXTURE_ARB               0x84E0
110 #define GL_CLIENT_ACTIVE_TEXTURE_ARB        0x84E1
111 #define GL_MAX_TEXTURE_UNITS_ARB            0x84E2
112 #define GL_TEXTURE0_ARB                     0x84C0
113 #define GL_TEXTURE1_ARB                     0x84C1
114 #define GL_TEXTURE2_ARB                     0x84C2
115 #define GL_TEXTURE3_ARB                     0x84C3
116 #define GL_TEXTURE4_ARB                     0x84C4
117 #define GL_TEXTURE5_ARB                     0x84C5
118 #define GL_TEXTURE6_ARB                     0x84C6
119 #define GL_TEXTURE7_ARB                     0x84C7
120 #define GL_TEXTURE8_ARB                     0x84C8
121 #define GL_TEXTURE9_ARB                     0x84C9
122 #define GL_TEXTURE10_ARB                    0x84CA
123 #define GL_TEXTURE11_ARB                    0x84CB
124 #define GL_TEXTURE12_ARB                    0x84CC
125 #define GL_TEXTURE13_ARB                    0x84CD
126 #define GL_TEXTURE14_ARB                    0x84CE
127 #define GL_TEXTURE15_ARB                    0x84CF
128 #define GL_TEXTURE16_ARB                    0x84D0
129 #define GL_TEXTURE17_ARB                    0x84D1
130 #define GL_TEXTURE18_ARB                    0x84D2
131 #define GL_TEXTURE19_ARB                    0x84D3
132 #define GL_TEXTURE20_ARB                    0x84D4
133 #define GL_TEXTURE21_ARB                    0x84D5
134 #define GL_TEXTURE22_ARB                    0x84D6
135 #define GL_TEXTURE23_ARB                    0x84D7
136 #define GL_TEXTURE24_ARB                    0x84D8
137 #define GL_TEXTURE25_ARB                    0x84D9
138 #define GL_TEXTURE26_ARB                    0x84DA
139 #define GL_TEXTURE27_ARB                    0x84DB
140 #define GL_TEXTURE28_ARB                    0x84DC
141 #define GL_TEXTURE29_ARB                    0x84DD
142 #define GL_TEXTURE30_ARB                    0x84DE
143 #define GL_TEXTURE31_ARB                    0x84DF
144 
145 /* EXT_stencil_wrap */
146 #define GL_INCR_WRAP_EXT                    0x8507
147 #define GL_DECR_WRAP_EXT                    0x8508
148 
149 /* NV_texgen_reflection */
150 #define GL_NORMAL_MAP_NV                    0x8511
151 #define GL_REFLECTION_MAP_NV                0x8512
152 
153 /* EXT_texture_env_combine */
154 #define GL_COMBINE_EXT                      0x8570
155 #define GL_COMBINE_RGB_EXT                  0x8571
156 #define GL_COMBINE_ALPHA_EXT                0x8572
157 #define GL_RGB_SCALE_EXT                    0x8573
158 #define GL_ADD_SIGNED_EXT                   0x8574
159 #define GL_INTERPOLATE_EXT                  0x8575
160 #define GL_CONSTANT_EXT                     0x8576
161 #define GL_PRIMARY_COLOR_EXT                0x8577
162 #define GL_PREVIOUS_EXT                     0x8578
163 #define GL_SOURCE0_RGB_EXT                  0x8580
164 #define GL_SOURCE1_RGB_EXT                  0x8581
165 #define GL_SOURCE2_RGB_EXT                  0x8582
166 #define GL_SOURCE0_ALPHA_EXT                0x8588
167 #define GL_SOURCE1_ALPHA_EXT                0x8589
168 #define GL_SOURCE2_ALPHA_EXT                0x858A
169 #define GL_OPERAND0_RGB_EXT                 0x8590
170 #define GL_OPERAND1_RGB_EXT                 0x8591
171 #define GL_OPERAND2_RGB_EXT                 0x8592
172 #define GL_OPERAND0_ALPHA_EXT               0x8598
173 #define GL_OPERAND1_ALPHA_EXT               0x8599
174 #define GL_OPERAND2_ALPHA_EXT               0x859A
175 
176 /* NV_texture_env_combine4 */
177 #define GL_COMBINE4_NV                      0x8503
178 #define GL_SOURCE3_RGB_NV                   0x8583
179 #define GL_SOURCE3_ALPHA_NV                 0x858B
180 #define GL_OPERAND3_RGB_NV                  0x8593
181 #define GL_OPERAND3_ALPHA_NV                0x859B
182 
183 /* texture clamp */
184 #define GL_CLAMP_TO_EDGE					0x812F
185 #define GL_CLAMP_TO_BORDER					0x812D
186 #define GL_CLAMP_TO_BORDER_SGIS				0x812D
187 
188 #ifndef GL_ARB_texture_border_clamp
189 #define GL_CLAMP_TO_BORDER_ARB				0x812D
190 #endif
191 
192 #ifndef GL_SGIS_texture_edge_clamp
193 #define GL_CLAMP_TO_EDGE_SGIS             0x812F
194 #endif
195 
196 #ifndef GL_SGIX_texture_coordinate_clamp
197 #define GL_TEXTURE_MAX_CLAMP_S_SGIX       0x8369
198 #define GL_TEXTURE_MAX_CLAMP_T_SGIX       0x836A
199 #define GL_TEXTURE_MAX_CLAMP_R_SGIX       0x836B
200 #endif
201 
202 /*************************************************************/
203 
204 /* EXT_vertex_array */
205 typedef void (APIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i);
206 typedef void (APIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
207 typedef void (APIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count);
208 typedef void (APIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer);
209 typedef void (APIENTRY * PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params);
210 typedef void (APIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
211 typedef void (APIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
212 typedef void (APIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
213 typedef void (APIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
214 
215 /* ARB_multitexture */
216 typedef void (APIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
217 typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
218 typedef void (APIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
219 typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
220 typedef void (APIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
221 typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
222 typedef void (APIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
223 typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
224 typedef void (APIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
225 typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
226 typedef void (APIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
227 typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
228 typedef void (APIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
229 typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
230 typedef void (APIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
231 typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
232 typedef void (APIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
233 typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
234 typedef void (APIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
235 typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
236 typedef void (APIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
237 typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
238 typedef void (APIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
239 typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
240 typedef void (APIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
241 typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
242 typedef void (APIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
243 typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
244 typedef void (APIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
245 typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
246 typedef void (APIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
247 typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
248 typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum target);
249 typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum target);
250 
251 /* EXT_compiled_vertex_array */
252 typedef void (APIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count);
253 typedef void (APIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void);
254 
255 /* EXT_cull_vertex */
256 typedef void (APIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble* params);
257 typedef void (APIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat* params);
258 
259 /* WIN_swap_hint */
260 typedef void (APIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
261 
262 /* EXT_point_parameter */
263 typedef void (APIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param);
264 typedef void (APIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params);
265 
266 /* WGL_EXT_swap_control */
267 typedef void (APIENTRY * PFNWGLSWAPINTERVALPROC) (GLenum interval);
268 typedef GLenum (APIENTRY * PFNWGLGETSWAPINTERVALPROC) (void);
269 
270 
271 
272 
273 #endif /* __glext_h_ */