1 /*
2 ** The OpenGL Extension Wrangler Library
3 ** Copyright (C) 2002-2007, Milan Ikits <milan ikits[]ieee org>
4 ** Copyright (C) 2002-2007, Marcelo E. Magallon <mmagallo[]debian org>
5 ** Copyright (C) 2002, Lev Povalahev
6 ** All rights reserved.
7 **
8 ** Redistribution and use in source and binary forms, with or without
9 ** modification, are permitted provided that the following conditions are met:
10 **
11 ** * Redistributions of source code must retain the above copyright notice,
12 **   this list of conditions and the following disclaimer.
13 ** * Redistributions in binary form must reproduce the above copyright notice,
14 **   this list of conditions and the following disclaimer in the documentation
15 **   and/or other materials provided with the distribution.
16 ** * The name of the author may be used to endorse or promote products
17 **   derived from this software without specific prior written permission.
18 **
19 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
29 ** THE POSSIBILITY OF SUCH DAMAGE.
30 */
31 
32 #ifndef __wglew_h__
33 #define __wglew_h__
34 #define __WGLEW_H__
35 
36 #ifdef __wglext_h_
37 #error wglext.h included before wglew.h
38 #endif
39 
40 #define __wglext_h_
41 
42 #if !defined(APIENTRY) && !defined(__CYGWIN__)
43 #  ifndef WIN32_LEAN_AND_MEAN
44 #    define WIN32_LEAN_AND_MEAN 1
45 #  endif
46 #include <windows.h>
47 #endif
48 
49 /*
50  * GLEW_STATIC needs to be set when using the static version.
51  * GLEW_BUILD is set when building the DLL version.
52  */
53 #ifdef GLEW_STATIC
54 #  define GLEWAPI extern
55 #else
56 #  ifdef GLEW_BUILD
57 #    define GLEWAPI extern __declspec(dllexport)
58 #  else
59 #    define GLEWAPI extern __declspec(dllimport)
60 #  endif
61 #endif
62 
63 #ifdef __cplusplus
64 extern "C" {
65 #endif
66 
67 /* -------------------------- WGL_3DFX_multisample ------------------------- */
68 
69 #ifndef WGL_3DFX_multisample
70 #define WGL_3DFX_multisample 1
71 
72 #define WGL_SAMPLE_BUFFERS_3DFX 0x2060
73 #define WGL_SAMPLES_3DFX 0x2061
74 
75 #define WGLEW_3DFX_multisample WGLEW_GET_VAR(__WGLEW_3DFX_multisample)
76 
77 #endif /* WGL_3DFX_multisample */
78 
79 /* ------------------------- WGL_3DL_stereo_control ------------------------ */
80 
81 #ifndef WGL_3DL_stereo_control
82 #define WGL_3DL_stereo_control 1
83 
84 #define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055
85 #define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056
86 #define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057
87 #define WGL_STEREO_POLARITY_INVERT_3DL 0x2058
88 
89 typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState);
90 
91 #define wglSetStereoEmitterState3DL WGLEW_GET_FUN(__wglewSetStereoEmitterState3DL)
92 
93 #define WGLEW_3DL_stereo_control WGLEW_GET_VAR(__WGLEW_3DL_stereo_control)
94 
95 #endif /* WGL_3DL_stereo_control */
96 
97 /* ------------------------- WGL_ARB_buffer_region ------------------------- */
98 
99 #ifndef WGL_ARB_buffer_region
100 #define WGL_ARB_buffer_region 1
101 
102 #define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
103 #define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
104 #define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
105 #define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
106 
107 typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
108 typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion);
109 typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
110 typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
111 
112 #define wglCreateBufferRegionARB WGLEW_GET_FUN(__wglewCreateBufferRegionARB)
113 #define wglDeleteBufferRegionARB WGLEW_GET_FUN(__wglewDeleteBufferRegionARB)
114 #define wglRestoreBufferRegionARB WGLEW_GET_FUN(__wglewRestoreBufferRegionARB)
115 #define wglSaveBufferRegionARB WGLEW_GET_FUN(__wglewSaveBufferRegionARB)
116 
117 #define WGLEW_ARB_buffer_region WGLEW_GET_VAR(__WGLEW_ARB_buffer_region)
118 
119 #endif /* WGL_ARB_buffer_region */
120 
121 /* ----------------------- WGL_ARB_extensions_string ----------------------- */
122 
123 #ifndef WGL_ARB_extensions_string
124 #define WGL_ARB_extensions_string 1
125 
126 typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
127 
128 #define wglGetExtensionsStringARB WGLEW_GET_FUN(__wglewGetExtensionsStringARB)
129 
130 #define WGLEW_ARB_extensions_string WGLEW_GET_VAR(__WGLEW_ARB_extensions_string)
131 
132 #endif /* WGL_ARB_extensions_string */
133 
134 /* ----------------------- WGL_ARB_make_current_read ----------------------- */
135 
136 #ifndef WGL_ARB_make_current_read
137 #define WGL_ARB_make_current_read 1
138 
139 typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (VOID);
140 typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
141 
142 #define wglGetCurrentReadDCARB WGLEW_GET_FUN(__wglewGetCurrentReadDCARB)
143 #define wglMakeContextCurrentARB WGLEW_GET_FUN(__wglewMakeContextCurrentARB)
144 
145 #define WGLEW_ARB_make_current_read WGLEW_GET_VAR(__WGLEW_ARB_make_current_read)
146 
147 #endif /* WGL_ARB_make_current_read */
148 
149 /* -------------------------- WGL_ARB_multisample -------------------------- */
150 
151 #ifndef WGL_ARB_multisample
152 #define WGL_ARB_multisample 1
153 
154 #define WGL_SAMPLE_BUFFERS_ARB 0x2041
155 #define WGL_SAMPLES_ARB 0x2042
156 
157 #define WGLEW_ARB_multisample WGLEW_GET_VAR(__WGLEW_ARB_multisample)
158 
159 #endif /* WGL_ARB_multisample */
160 
161 /* ---------------------------- WGL_ARB_pbuffer ---------------------------- */
162 
163 #ifndef WGL_ARB_pbuffer
164 #define WGL_ARB_pbuffer 1
165 
166 #define WGL_DRAW_TO_PBUFFER_ARB 0x202D
167 #define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
168 #define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
169 #define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
170 #define WGL_PBUFFER_LARGEST_ARB 0x2033
171 #define WGL_PBUFFER_WIDTH_ARB 0x2034
172 #define WGL_PBUFFER_HEIGHT_ARB 0x2035
173 #define WGL_PBUFFER_LOST_ARB 0x2036
174 
175 DECLARE_HANDLE(HPBUFFERARB);
176 
177 typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList);
178 typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);
179 typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);
180 typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int* piValue);
181 typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
182 
183 #define wglCreatePbufferARB WGLEW_GET_FUN(__wglewCreatePbufferARB)
184 #define wglDestroyPbufferARB WGLEW_GET_FUN(__wglewDestroyPbufferARB)
185 #define wglGetPbufferDCARB WGLEW_GET_FUN(__wglewGetPbufferDCARB)
186 #define wglQueryPbufferARB WGLEW_GET_FUN(__wglewQueryPbufferARB)
187 #define wglReleasePbufferDCARB WGLEW_GET_FUN(__wglewReleasePbufferDCARB)
188 
189 #define WGLEW_ARB_pbuffer WGLEW_GET_VAR(__WGLEW_ARB_pbuffer)
190 
191 #endif /* WGL_ARB_pbuffer */
192 
193 /* -------------------------- WGL_ARB_pixel_format ------------------------- */
194 
195 #ifndef WGL_ARB_pixel_format
196 #define WGL_ARB_pixel_format 1
197 
198 #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
199 #define WGL_DRAW_TO_WINDOW_ARB 0x2001
200 #define WGL_DRAW_TO_BITMAP_ARB 0x2002
201 #define WGL_ACCELERATION_ARB 0x2003
202 #define WGL_NEED_PALETTE_ARB 0x2004
203 #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
204 #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
205 #define WGL_SWAP_METHOD_ARB 0x2007
206 #define WGL_NUMBER_OVERLAYS_ARB 0x2008
207 #define WGL_NUMBER_UNDERLAYS_ARB 0x2009
208 #define WGL_TRANSPARENT_ARB 0x200A
209 #define WGL_SHARE_DEPTH_ARB 0x200C
210 #define WGL_SHARE_STENCIL_ARB 0x200D
211 #define WGL_SHARE_ACCUM_ARB 0x200E
212 #define WGL_SUPPORT_GDI_ARB 0x200F
213 #define WGL_SUPPORT_OPENGL_ARB 0x2010
214 #define WGL_DOUBLE_BUFFER_ARB 0x2011
215 #define WGL_STEREO_ARB 0x2012
216 #define WGL_PIXEL_TYPE_ARB 0x2013
217 #define WGL_COLOR_BITS_ARB 0x2014
218 #define WGL_RED_BITS_ARB 0x2015
219 #define WGL_RED_SHIFT_ARB 0x2016
220 #define WGL_GREEN_BITS_ARB 0x2017
221 #define WGL_GREEN_SHIFT_ARB 0x2018
222 #define WGL_BLUE_BITS_ARB 0x2019
223 #define WGL_BLUE_SHIFT_ARB 0x201A
224 #define WGL_ALPHA_BITS_ARB 0x201B
225 #define WGL_ALPHA_SHIFT_ARB 0x201C
226 #define WGL_ACCUM_BITS_ARB 0x201D
227 #define WGL_ACCUM_RED_BITS_ARB 0x201E
228 #define WGL_ACCUM_GREEN_BITS_ARB 0x201F
229 #define WGL_ACCUM_BLUE_BITS_ARB 0x2020
230 #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
231 #define WGL_DEPTH_BITS_ARB 0x2022
232 #define WGL_STENCIL_BITS_ARB 0x2023
233 #define WGL_AUX_BUFFERS_ARB 0x2024
234 #define WGL_NO_ACCELERATION_ARB 0x2025
235 #define WGL_GENERIC_ACCELERATION_ARB 0x2026
236 #define WGL_FULL_ACCELERATION_ARB 0x2027
237 #define WGL_SWAP_EXCHANGE_ARB 0x2028
238 #define WGL_SWAP_COPY_ARB 0x2029
239 #define WGL_SWAP_UNDEFINED_ARB 0x202A
240 #define WGL_TYPE_RGBA_ARB 0x202B
241 #define WGL_TYPE_COLORINDEX_ARB 0x202C
242 #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
243 #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
244 #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
245 #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
246 #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
247 
248 typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
249 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT *pfValues);
250 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int *piValues);
251 
252 #define wglChoosePixelFormatARB WGLEW_GET_FUN(__wglewChoosePixelFormatARB)
253 #define wglGetPixelFormatAttribfvARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvARB)
254 #define wglGetPixelFormatAttribivARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribivARB)
255 
256 #define WGLEW_ARB_pixel_format WGLEW_GET_VAR(__WGLEW_ARB_pixel_format)
257 
258 #endif /* WGL_ARB_pixel_format */
259 
260 /* ----------------------- WGL_ARB_pixel_format_float ---------------------- */
261 
262 #ifndef WGL_ARB_pixel_format_float
263 #define WGL_ARB_pixel_format_float 1
264 
265 #define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
266 
267 #define WGLEW_ARB_pixel_format_float WGLEW_GET_VAR(__WGLEW_ARB_pixel_format_float)
268 
269 #endif /* WGL_ARB_pixel_format_float */
270 
271 /* ------------------------- WGL_ARB_render_texture ------------------------ */
272 
273 #ifndef WGL_ARB_render_texture
274 #define WGL_ARB_render_texture 1
275 
276 #define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
277 #define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
278 #define WGL_TEXTURE_FORMAT_ARB 0x2072
279 #define WGL_TEXTURE_TARGET_ARB 0x2073
280 #define WGL_MIPMAP_TEXTURE_ARB 0x2074
281 #define WGL_TEXTURE_RGB_ARB 0x2075
282 #define WGL_TEXTURE_RGBA_ARB 0x2076
283 #define WGL_NO_TEXTURE_ARB 0x2077
284 #define WGL_TEXTURE_CUBE_MAP_ARB 0x2078
285 #define WGL_TEXTURE_1D_ARB 0x2079
286 #define WGL_TEXTURE_2D_ARB 0x207A
287 #define WGL_MIPMAP_LEVEL_ARB 0x207B
288 #define WGL_CUBE_MAP_FACE_ARB 0x207C
289 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
290 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
291 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
292 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
293 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
294 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
295 #define WGL_FRONT_LEFT_ARB 0x2083
296 #define WGL_FRONT_RIGHT_ARB 0x2084
297 #define WGL_BACK_LEFT_ARB 0x2085
298 #define WGL_BACK_RIGHT_ARB 0x2086
299 #define WGL_AUX0_ARB 0x2087
300 #define WGL_AUX1_ARB 0x2088
301 #define WGL_AUX2_ARB 0x2089
302 #define WGL_AUX3_ARB 0x208A
303 #define WGL_AUX4_ARB 0x208B
304 #define WGL_AUX5_ARB 0x208C
305 #define WGL_AUX6_ARB 0x208D
306 #define WGL_AUX7_ARB 0x208E
307 #define WGL_AUX8_ARB 0x208F
308 #define WGL_AUX9_ARB 0x2090
309 
310 typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
311 typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
312 typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int* piAttribList);
313 
314 #define wglBindTexImageARB WGLEW_GET_FUN(__wglewBindTexImageARB)
315 #define wglReleaseTexImageARB WGLEW_GET_FUN(__wglewReleaseTexImageARB)
316 #define wglSetPbufferAttribARB WGLEW_GET_FUN(__wglewSetPbufferAttribARB)
317 
318 #define WGLEW_ARB_render_texture WGLEW_GET_VAR(__WGLEW_ARB_render_texture)
319 
320 #endif /* WGL_ARB_render_texture */
321 
322 /* ----------------------- WGL_ATI_pixel_format_float ---------------------- */
323 
324 #ifndef WGL_ATI_pixel_format_float
325 #define WGL_ATI_pixel_format_float 1
326 
327 #define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
328 #define GL_RGBA_FLOAT_MODE_ATI 0x8820
329 #define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
330 
331 #define WGLEW_ATI_pixel_format_float WGLEW_GET_VAR(__WGLEW_ATI_pixel_format_float)
332 
333 #endif /* WGL_ATI_pixel_format_float */
334 
335 /* -------------------- WGL_ATI_render_texture_rectangle ------------------- */
336 
337 #ifndef WGL_ATI_render_texture_rectangle
338 #define WGL_ATI_render_texture_rectangle 1
339 
340 #define WGL_TEXTURE_RECTANGLE_ATI 0x21A5
341 
342 #define WGLEW_ATI_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_ATI_render_texture_rectangle)
343 
344 #endif /* WGL_ATI_render_texture_rectangle */
345 
346 /* -------------------------- WGL_EXT_depth_float -------------------------- */
347 
348 #ifndef WGL_EXT_depth_float
349 #define WGL_EXT_depth_float 1
350 
351 #define WGL_DEPTH_FLOAT_EXT 0x2040
352 
353 #define WGLEW_EXT_depth_float WGLEW_GET_VAR(__WGLEW_EXT_depth_float)
354 
355 #endif /* WGL_EXT_depth_float */
356 
357 /* ---------------------- WGL_EXT_display_color_table ---------------------- */
358 
359 #ifndef WGL_EXT_display_color_table
360 #define WGL_EXT_display_color_table 1
361 
362 typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id);
363 typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id);
364 typedef void (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id);
365 typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (GLushort* table, GLuint length);
366 
367 #define wglBindDisplayColorTableEXT WGLEW_GET_FUN(__wglewBindDisplayColorTableEXT)
368 #define wglCreateDisplayColorTableEXT WGLEW_GET_FUN(__wglewCreateDisplayColorTableEXT)
369 #define wglDestroyDisplayColorTableEXT WGLEW_GET_FUN(__wglewDestroyDisplayColorTableEXT)
370 #define wglLoadDisplayColorTableEXT WGLEW_GET_FUN(__wglewLoadDisplayColorTableEXT)
371 
372 #define WGLEW_EXT_display_color_table WGLEW_GET_VAR(__WGLEW_EXT_display_color_table)
373 
374 #endif /* WGL_EXT_display_color_table */
375 
376 /* ----------------------- WGL_EXT_extensions_string ----------------------- */
377 
378 #ifndef WGL_EXT_extensions_string
379 #define WGL_EXT_extensions_string 1
380 
381 typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
382 
383 #define wglGetExtensionsStringEXT WGLEW_GET_FUN(__wglewGetExtensionsStringEXT)
384 
385 #define WGLEW_EXT_extensions_string WGLEW_GET_VAR(__WGLEW_EXT_extensions_string)
386 
387 #endif /* WGL_EXT_extensions_string */
388 
389 /* ------------------------ WGL_EXT_framebuffer_sRGB ----------------------- */
390 
391 #ifndef WGL_EXT_framebuffer_sRGB
392 #define WGL_EXT_framebuffer_sRGB 1
393 
394 #define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
395 
396 #define WGLEW_EXT_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_EXT_framebuffer_sRGB)
397 
398 #endif /* WGL_EXT_framebuffer_sRGB */
399 
400 /* ----------------------- WGL_EXT_make_current_read ----------------------- */
401 
402 #ifndef WGL_EXT_make_current_read
403 #define WGL_EXT_make_current_read 1
404 
405 typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (VOID);
406 typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
407 
408 #define wglGetCurrentReadDCEXT WGLEW_GET_FUN(__wglewGetCurrentReadDCEXT)
409 #define wglMakeContextCurrentEXT WGLEW_GET_FUN(__wglewMakeContextCurrentEXT)
410 
411 #define WGLEW_EXT_make_current_read WGLEW_GET_VAR(__WGLEW_EXT_make_current_read)
412 
413 #endif /* WGL_EXT_make_current_read */
414 
415 /* -------------------------- WGL_EXT_multisample -------------------------- */
416 
417 #ifndef WGL_EXT_multisample
418 #define WGL_EXT_multisample 1
419 
420 #define WGL_SAMPLE_BUFFERS_EXT 0x2041
421 #define WGL_SAMPLES_EXT 0x2042
422 
423 #define WGLEW_EXT_multisample WGLEW_GET_VAR(__WGLEW_EXT_multisample)
424 
425 #endif /* WGL_EXT_multisample */
426 
427 /* ---------------------------- WGL_EXT_pbuffer ---------------------------- */
428 
429 #ifndef WGL_EXT_pbuffer
430 #define WGL_EXT_pbuffer 1
431 
432 #define WGL_DRAW_TO_PBUFFER_EXT 0x202D
433 #define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E
434 #define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F
435 #define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030
436 #define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031
437 #define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032
438 #define WGL_PBUFFER_LARGEST_EXT 0x2033
439 #define WGL_PBUFFER_WIDTH_EXT 0x2034
440 #define WGL_PBUFFER_HEIGHT_EXT 0x2035
441 
442 DECLARE_HANDLE(HPBUFFEREXT);
443 
444 typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList);
445 typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer);
446 typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer);
447 typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int* piValue);
448 typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC);
449 
450 #define wglCreatePbufferEXT WGLEW_GET_FUN(__wglewCreatePbufferEXT)
451 #define wglDestroyPbufferEXT WGLEW_GET_FUN(__wglewDestroyPbufferEXT)
452 #define wglGetPbufferDCEXT WGLEW_GET_FUN(__wglewGetPbufferDCEXT)
453 #define wglQueryPbufferEXT WGLEW_GET_FUN(__wglewQueryPbufferEXT)
454 #define wglReleasePbufferDCEXT WGLEW_GET_FUN(__wglewReleasePbufferDCEXT)
455 
456 #define WGLEW_EXT_pbuffer WGLEW_GET_VAR(__WGLEW_EXT_pbuffer)
457 
458 #endif /* WGL_EXT_pbuffer */
459 
460 /* -------------------------- WGL_EXT_pixel_format ------------------------- */
461 
462 #ifndef WGL_EXT_pixel_format
463 #define WGL_EXT_pixel_format 1
464 
465 #define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000
466 #define WGL_DRAW_TO_WINDOW_EXT 0x2001
467 #define WGL_DRAW_TO_BITMAP_EXT 0x2002
468 #define WGL_ACCELERATION_EXT 0x2003
469 #define WGL_NEED_PALETTE_EXT 0x2004
470 #define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005
471 #define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006
472 #define WGL_SWAP_METHOD_EXT 0x2007
473 #define WGL_NUMBER_OVERLAYS_EXT 0x2008
474 #define WGL_NUMBER_UNDERLAYS_EXT 0x2009
475 #define WGL_TRANSPARENT_EXT 0x200A
476 #define WGL_TRANSPARENT_VALUE_EXT 0x200B
477 #define WGL_SHARE_DEPTH_EXT 0x200C
478 #define WGL_SHARE_STENCIL_EXT 0x200D
479 #define WGL_SHARE_ACCUM_EXT 0x200E
480 #define WGL_SUPPORT_GDI_EXT 0x200F
481 #define WGL_SUPPORT_OPENGL_EXT 0x2010
482 #define WGL_DOUBLE_BUFFER_EXT 0x2011
483 #define WGL_STEREO_EXT 0x2012
484 #define WGL_PIXEL_TYPE_EXT 0x2013
485 #define WGL_COLOR_BITS_EXT 0x2014
486 #define WGL_RED_BITS_EXT 0x2015
487 #define WGL_RED_SHIFT_EXT 0x2016
488 #define WGL_GREEN_BITS_EXT 0x2017
489 #define WGL_GREEN_SHIFT_EXT 0x2018
490 #define WGL_BLUE_BITS_EXT 0x2019
491 #define WGL_BLUE_SHIFT_EXT 0x201A
492 #define WGL_ALPHA_BITS_EXT 0x201B
493 #define WGL_ALPHA_SHIFT_EXT 0x201C
494 #define WGL_ACCUM_BITS_EXT 0x201D
495 #define WGL_ACCUM_RED_BITS_EXT 0x201E
496 #define WGL_ACCUM_GREEN_BITS_EXT 0x201F
497 #define WGL_ACCUM_BLUE_BITS_EXT 0x2020
498 #define WGL_ACCUM_ALPHA_BITS_EXT 0x2021
499 #define WGL_DEPTH_BITS_EXT 0x2022
500 #define WGL_STENCIL_BITS_EXT 0x2023
501 #define WGL_AUX_BUFFERS_EXT 0x2024
502 #define WGL_NO_ACCELERATION_EXT 0x2025
503 #define WGL_GENERIC_ACCELERATION_EXT 0x2026
504 #define WGL_FULL_ACCELERATION_EXT 0x2027
505 #define WGL_SWAP_EXCHANGE_EXT 0x2028
506 #define WGL_SWAP_COPY_EXT 0x2029
507 #define WGL_SWAP_UNDEFINED_EXT 0x202A
508 #define WGL_TYPE_RGBA_EXT 0x202B
509 #define WGL_TYPE_COLORINDEX_EXT 0x202C
510 
511 typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
512 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT *pfValues);
513 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int *piValues);
514 
515 #define wglChoosePixelFormatEXT WGLEW_GET_FUN(__wglewChoosePixelFormatEXT)
516 #define wglGetPixelFormatAttribfvEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvEXT)
517 #define wglGetPixelFormatAttribivEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribivEXT)
518 
519 #define WGLEW_EXT_pixel_format WGLEW_GET_VAR(__WGLEW_EXT_pixel_format)
520 
521 #endif /* WGL_EXT_pixel_format */
522 
523 /* ------------------- WGL_EXT_pixel_format_packed_float ------------------- */
524 
525 #ifndef WGL_EXT_pixel_format_packed_float
526 #define WGL_EXT_pixel_format_packed_float 1
527 
528 #define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
529 
530 #define WGLEW_EXT_pixel_format_packed_float WGLEW_GET_VAR(__WGLEW_EXT_pixel_format_packed_float)
531 
532 #endif /* WGL_EXT_pixel_format_packed_float */
533 
534 /* -------------------------- WGL_EXT_swap_control ------------------------- */
535 
536 #ifndef WGL_EXT_swap_control
537 #define WGL_EXT_swap_control 1
538 
539 typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void);
540 typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
541 
542 #define wglGetSwapIntervalEXT WGLEW_GET_FUN(__wglewGetSwapIntervalEXT)
543 #define wglSwapIntervalEXT WGLEW_GET_FUN(__wglewSwapIntervalEXT)
544 
545 #define WGLEW_EXT_swap_control WGLEW_GET_VAR(__WGLEW_EXT_swap_control)
546 
547 #endif /* WGL_EXT_swap_control */
548 
549 /* --------------------- WGL_I3D_digital_video_control --------------------- */
550 
551 #ifndef WGL_I3D_digital_video_control
552 #define WGL_I3D_digital_video_control 1
553 
554 #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
555 #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
556 #define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
557 #define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
558 
559 typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue);
560 typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue);
561 
562 #define wglGetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewGetDigitalVideoParametersI3D)
563 #define wglSetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewSetDigitalVideoParametersI3D)
564 
565 #define WGLEW_I3D_digital_video_control WGLEW_GET_VAR(__WGLEW_I3D_digital_video_control)
566 
567 #endif /* WGL_I3D_digital_video_control */
568 
569 /* ----------------------------- WGL_I3D_gamma ----------------------------- */
570 
571 #ifndef WGL_I3D_gamma
572 #define WGL_I3D_gamma 1
573 
574 #define WGL_GAMMA_TABLE_SIZE_I3D 0x204E
575 #define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F
576 
577 typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT *puGreen, USHORT *puBlue);
578 typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue);
579 typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT *puGreen, const USHORT *puBlue);
580 typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue);
581 
582 #define wglGetGammaTableI3D WGLEW_GET_FUN(__wglewGetGammaTableI3D)
583 #define wglGetGammaTableParametersI3D WGLEW_GET_FUN(__wglewGetGammaTableParametersI3D)
584 #define wglSetGammaTableI3D WGLEW_GET_FUN(__wglewSetGammaTableI3D)
585 #define wglSetGammaTableParametersI3D WGLEW_GET_FUN(__wglewSetGammaTableParametersI3D)
586 
587 #define WGLEW_I3D_gamma WGLEW_GET_VAR(__WGLEW_I3D_gamma)
588 
589 #endif /* WGL_I3D_gamma */
590 
591 /* ---------------------------- WGL_I3D_genlock ---------------------------- */
592 
593 #ifndef WGL_I3D_genlock
594 #define WGL_I3D_genlock 1
595 
596 #define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
597 #define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045
598 #define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046
599 #define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047
600 #define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
601 #define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
602 #define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
603 #define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
604 #define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
605 
606 typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC);
607 typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC);
608 typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate);
609 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay);
610 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge);
611 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource);
612 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT* uRate);
613 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT* uDelay);
614 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT* uEdge);
615 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT* uSource);
616 typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL* pFlag);
617 typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT *uMaxPixelDelay);
618 
619 #define wglDisableGenlockI3D WGLEW_GET_FUN(__wglewDisableGenlockI3D)
620 #define wglEnableGenlockI3D WGLEW_GET_FUN(__wglewEnableGenlockI3D)
621 #define wglGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGenlockSampleRateI3D)
622 #define wglGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGenlockSourceDelayI3D)
623 #define wglGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGenlockSourceEdgeI3D)
624 #define wglGenlockSourceI3D WGLEW_GET_FUN(__wglewGenlockSourceI3D)
625 #define wglGetGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGetGenlockSampleRateI3D)
626 #define wglGetGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGetGenlockSourceDelayI3D)
627 #define wglGetGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGetGenlockSourceEdgeI3D)
628 #define wglGetGenlockSourceI3D WGLEW_GET_FUN(__wglewGetGenlockSourceI3D)
629 #define wglIsEnabledGenlockI3D WGLEW_GET_FUN(__wglewIsEnabledGenlockI3D)
630 #define wglQueryGenlockMaxSourceDelayI3D WGLEW_GET_FUN(__wglewQueryGenlockMaxSourceDelayI3D)
631 
632 #define WGLEW_I3D_genlock WGLEW_GET_VAR(__WGLEW_I3D_genlock)
633 
634 #endif /* WGL_I3D_genlock */
635 
636 /* -------------------------- WGL_I3D_image_buffer ------------------------- */
637 
638 #ifndef WGL_I3D_image_buffer
639 #define WGL_I3D_image_buffer 1
640 
641 #define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
642 #define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002
643 
644 typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, HANDLE* pEvent, LPVOID *pAddress, DWORD *pSize, UINT count);
645 typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags);
646 typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress);
647 typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, LPVOID* pAddress, UINT count);
648 
649 #define wglAssociateImageBufferEventsI3D WGLEW_GET_FUN(__wglewAssociateImageBufferEventsI3D)
650 #define wglCreateImageBufferI3D WGLEW_GET_FUN(__wglewCreateImageBufferI3D)
651 #define wglDestroyImageBufferI3D WGLEW_GET_FUN(__wglewDestroyImageBufferI3D)
652 #define wglReleaseImageBufferEventsI3D WGLEW_GET_FUN(__wglewReleaseImageBufferEventsI3D)
653 
654 #define WGLEW_I3D_image_buffer WGLEW_GET_VAR(__WGLEW_I3D_image_buffer)
655 
656 #endif /* WGL_I3D_image_buffer */
657 
658 /* ------------------------ WGL_I3D_swap_frame_lock ------------------------ */
659 
660 #ifndef WGL_I3D_swap_frame_lock
661 #define WGL_I3D_swap_frame_lock 1
662 
663 typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (VOID);
664 typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (VOID);
665 typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL* pFlag);
666 typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag);
667 
668 #define wglDisableFrameLockI3D WGLEW_GET_FUN(__wglewDisableFrameLockI3D)
669 #define wglEnableFrameLockI3D WGLEW_GET_FUN(__wglewEnableFrameLockI3D)
670 #define wglIsEnabledFrameLockI3D WGLEW_GET_FUN(__wglewIsEnabledFrameLockI3D)
671 #define wglQueryFrameLockMasterI3D WGLEW_GET_FUN(__wglewQueryFrameLockMasterI3D)
672 
673 #define WGLEW_I3D_swap_frame_lock WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_lock)
674 
675 #endif /* WGL_I3D_swap_frame_lock */
676 
677 /* ------------------------ WGL_I3D_swap_frame_usage ----------------------- */
678 
679 #ifndef WGL_I3D_swap_frame_usage
680 #define WGL_I3D_swap_frame_usage 1
681 
682 typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void);
683 typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void);
684 typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float* pUsage);
685 typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
686 
687 #define wglBeginFrameTrackingI3D WGLEW_GET_FUN(__wglewBeginFrameTrackingI3D)
688 #define wglEndFrameTrackingI3D WGLEW_GET_FUN(__wglewEndFrameTrackingI3D)
689 #define wglGetFrameUsageI3D WGLEW_GET_FUN(__wglewGetFrameUsageI3D)
690 #define wglQueryFrameTrackingI3D WGLEW_GET_FUN(__wglewQueryFrameTrackingI3D)
691 
692 #define WGLEW_I3D_swap_frame_usage WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_usage)
693 
694 #endif /* WGL_I3D_swap_frame_usage */
695 
696 /* -------------------------- WGL_NV_float_buffer -------------------------- */
697 
698 #ifndef WGL_NV_float_buffer
699 #define WGL_NV_float_buffer 1
700 
701 #define WGL_FLOAT_COMPONENTS_NV 0x20B0
702 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
703 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
704 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
705 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
706 #define WGL_TEXTURE_FLOAT_R_NV 0x20B5
707 #define WGL_TEXTURE_FLOAT_RG_NV 0x20B6
708 #define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7
709 #define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
710 
711 #define WGLEW_NV_float_buffer WGLEW_GET_VAR(__WGLEW_NV_float_buffer)
712 
713 #endif /* WGL_NV_float_buffer */
714 
715 /* -------------------------- WGL_NV_gpu_affinity -------------------------- */
716 
717 #ifndef WGL_NV_gpu_affinity
718 #define WGL_NV_gpu_affinity 1
719 
720 #define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
721 #define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
722 
723 DECLARE_HANDLE(HGPUNV);
724 typedef struct _GPU_DEVICE {
725   DWORD cb;
726   CHAR DeviceName[32];
727   CHAR DeviceString[128];
728   DWORD Flags;
729   RECT rcVirtualScreen;
730 } GPU_DEVICE, *PGPU_DEVICE;
731 
732 typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList);
733 typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc);
734 typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
735 typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
736 typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu);
737 
738 #define wglCreateAffinityDCNV WGLEW_GET_FUN(__wglewCreateAffinityDCNV)
739 #define wglDeleteDCNV WGLEW_GET_FUN(__wglewDeleteDCNV)
740 #define wglEnumGpuDevicesNV WGLEW_GET_FUN(__wglewEnumGpuDevicesNV)
741 #define wglEnumGpusFromAffinityDCNV WGLEW_GET_FUN(__wglewEnumGpusFromAffinityDCNV)
742 #define wglEnumGpusNV WGLEW_GET_FUN(__wglewEnumGpusNV)
743 
744 #define WGLEW_NV_gpu_affinity WGLEW_GET_VAR(__WGLEW_NV_gpu_affinity)
745 
746 #endif /* WGL_NV_gpu_affinity */
747 
748 /* ---------------------- WGL_NV_render_depth_texture ---------------------- */
749 
750 #ifndef WGL_NV_render_depth_texture
751 #define WGL_NV_render_depth_texture 1
752 
753 #define WGL_NO_TEXTURE_ARB 0x2077
754 #define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3
755 #define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
756 #define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5
757 #define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
758 #define WGL_DEPTH_COMPONENT_NV 0x20A7
759 
760 #define WGLEW_NV_render_depth_texture WGLEW_GET_VAR(__WGLEW_NV_render_depth_texture)
761 
762 #endif /* WGL_NV_render_depth_texture */
763 
764 /* -------------------- WGL_NV_render_texture_rectangle -------------------- */
765 
766 #ifndef WGL_NV_render_texture_rectangle
767 #define WGL_NV_render_texture_rectangle 1
768 
769 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
770 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
771 #define WGL_TEXTURE_RECTANGLE_NV 0x20A2
772 
773 #define WGLEW_NV_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_NV_render_texture_rectangle)
774 
775 #endif /* WGL_NV_render_texture_rectangle */
776 
777 /* ----------------------- WGL_NV_vertex_array_range ----------------------- */
778 
779 #ifndef WGL_NV_vertex_array_range
780 #define WGL_NV_vertex_array_range 1
781 
782 typedef void * (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);
783 typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer);
784 
785 #define wglAllocateMemoryNV WGLEW_GET_FUN(__wglewAllocateMemoryNV)
786 #define wglFreeMemoryNV WGLEW_GET_FUN(__wglewFreeMemoryNV)
787 
788 #define WGLEW_NV_vertex_array_range WGLEW_GET_VAR(__WGLEW_NV_vertex_array_range)
789 
790 #endif /* WGL_NV_vertex_array_range */
791 
792 /* -------------------------- WGL_OML_sync_control ------------------------- */
793 
794 #ifndef WGL_OML_sync_control
795 #define WGL_OML_sync_control 1
796 
797 typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32 *denominator);
798 typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64 *msc, INT64 *sbc);
799 typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
800 typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
801 typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64 *msc, INT64 *sbc);
802 typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64 *msc, INT64 *sbc);
803 
804 #define wglGetMscRateOML WGLEW_GET_FUN(__wglewGetMscRateOML)
805 #define wglGetSyncValuesOML WGLEW_GET_FUN(__wglewGetSyncValuesOML)
806 #define wglSwapBuffersMscOML WGLEW_GET_FUN(__wglewSwapBuffersMscOML)
807 #define wglSwapLayerBuffersMscOML WGLEW_GET_FUN(__wglewSwapLayerBuffersMscOML)
808 #define wglWaitForMscOML WGLEW_GET_FUN(__wglewWaitForMscOML)
809 #define wglWaitForSbcOML WGLEW_GET_FUN(__wglewWaitForSbcOML)
810 
811 #define WGLEW_OML_sync_control WGLEW_GET_VAR(__WGLEW_OML_sync_control)
812 
813 #endif /* WGL_OML_sync_control */
814 
815 /* ------------------------------------------------------------------------- */
816 
817 #ifdef GLEW_MX
818 #define WGLEW_EXPORT
819 #else
820 #define WGLEW_EXPORT GLEWAPI
821 #endif /* GLEW_MX */
822 
823 #ifdef GLEW_MX
824 struct WGLEWContextStruct
825 {
826 #endif /* GLEW_MX */
827 
828 WGLEW_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL;
829 
830 WGLEW_EXPORT PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB;
831 WGLEW_EXPORT PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB;
832 WGLEW_EXPORT PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB;
833 WGLEW_EXPORT PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB;
834 
835 WGLEW_EXPORT PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB;
836 
837 WGLEW_EXPORT PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB;
838 WGLEW_EXPORT PFNWGLMAKECONTEXTCURRENTARBPROC __wglewMakeContextCurrentARB;
839 
840 WGLEW_EXPORT PFNWGLCREATEPBUFFERARBPROC __wglewCreatePbufferARB;
841 WGLEW_EXPORT PFNWGLDESTROYPBUFFERARBPROC __wglewDestroyPbufferARB;
842 WGLEW_EXPORT PFNWGLGETPBUFFERDCARBPROC __wglewGetPbufferDCARB;
843 WGLEW_EXPORT PFNWGLQUERYPBUFFERARBPROC __wglewQueryPbufferARB;
844 WGLEW_EXPORT PFNWGLRELEASEPBUFFERDCARBPROC __wglewReleasePbufferDCARB;
845 
846 WGLEW_EXPORT PFNWGLCHOOSEPIXELFORMATARBPROC __wglewChoosePixelFormatARB;
847 WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBFVARBPROC __wglewGetPixelFormatAttribfvARB;
848 WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBIVARBPROC __wglewGetPixelFormatAttribivARB;
849 
850 WGLEW_EXPORT PFNWGLBINDTEXIMAGEARBPROC __wglewBindTexImageARB;
851 WGLEW_EXPORT PFNWGLRELEASETEXIMAGEARBPROC __wglewReleaseTexImageARB;
852 WGLEW_EXPORT PFNWGLSETPBUFFERATTRIBARBPROC __wglewSetPbufferAttribARB;
853 
854 WGLEW_EXPORT PFNWGLBINDDISPLAYCOLORTABLEEXTPROC __wglewBindDisplayColorTableEXT;
855 WGLEW_EXPORT PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC __wglewCreateDisplayColorTableEXT;
856 WGLEW_EXPORT PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC __wglewDestroyDisplayColorTableEXT;
857 WGLEW_EXPORT PFNWGLLOADDISPLAYCOLORTABLEEXTPROC __wglewLoadDisplayColorTableEXT;
858 
859 WGLEW_EXPORT PFNWGLGETEXTENSIONSSTRINGEXTPROC __wglewGetExtensionsStringEXT;
860 
861 WGLEW_EXPORT PFNWGLGETCURRENTREADDCEXTPROC __wglewGetCurrentReadDCEXT;
862 WGLEW_EXPORT PFNWGLMAKECONTEXTCURRENTEXTPROC __wglewMakeContextCurrentEXT;
863 
864 WGLEW_EXPORT PFNWGLCREATEPBUFFEREXTPROC __wglewCreatePbufferEXT;
865 WGLEW_EXPORT PFNWGLDESTROYPBUFFEREXTPROC __wglewDestroyPbufferEXT;
866 WGLEW_EXPORT PFNWGLGETPBUFFERDCEXTPROC __wglewGetPbufferDCEXT;
867 WGLEW_EXPORT PFNWGLQUERYPBUFFEREXTPROC __wglewQueryPbufferEXT;
868 WGLEW_EXPORT PFNWGLRELEASEPBUFFERDCEXTPROC __wglewReleasePbufferDCEXT;
869 
870 WGLEW_EXPORT PFNWGLCHOOSEPIXELFORMATEXTPROC __wglewChoosePixelFormatEXT;
871 WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBFVEXTPROC __wglewGetPixelFormatAttribfvEXT;
872 WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBIVEXTPROC __wglewGetPixelFormatAttribivEXT;
873 
874 WGLEW_EXPORT PFNWGLGETSWAPINTERVALEXTPROC __wglewGetSwapIntervalEXT;
875 WGLEW_EXPORT PFNWGLSWAPINTERVALEXTPROC __wglewSwapIntervalEXT;
876 
877 WGLEW_EXPORT PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC __wglewGetDigitalVideoParametersI3D;
878 WGLEW_EXPORT PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC __wglewSetDigitalVideoParametersI3D;
879 
880 WGLEW_EXPORT PFNWGLGETGAMMATABLEI3DPROC __wglewGetGammaTableI3D;
881 WGLEW_EXPORT PFNWGLGETGAMMATABLEPARAMETERSI3DPROC __wglewGetGammaTableParametersI3D;
882 WGLEW_EXPORT PFNWGLSETGAMMATABLEI3DPROC __wglewSetGammaTableI3D;
883 WGLEW_EXPORT PFNWGLSETGAMMATABLEPARAMETERSI3DPROC __wglewSetGammaTableParametersI3D;
884 
885 WGLEW_EXPORT PFNWGLDISABLEGENLOCKI3DPROC __wglewDisableGenlockI3D;
886 WGLEW_EXPORT PFNWGLENABLEGENLOCKI3DPROC __wglewEnableGenlockI3D;
887 WGLEW_EXPORT PFNWGLGENLOCKSAMPLERATEI3DPROC __wglewGenlockSampleRateI3D;
888 WGLEW_EXPORT PFNWGLGENLOCKSOURCEDELAYI3DPROC __wglewGenlockSourceDelayI3D;
889 WGLEW_EXPORT PFNWGLGENLOCKSOURCEEDGEI3DPROC __wglewGenlockSourceEdgeI3D;
890 WGLEW_EXPORT PFNWGLGENLOCKSOURCEI3DPROC __wglewGenlockSourceI3D;
891 WGLEW_EXPORT PFNWGLGETGENLOCKSAMPLERATEI3DPROC __wglewGetGenlockSampleRateI3D;
892 WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEDELAYI3DPROC __wglewGetGenlockSourceDelayI3D;
893 WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEEDGEI3DPROC __wglewGetGenlockSourceEdgeI3D;
894 WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEI3DPROC __wglewGetGenlockSourceI3D;
895 WGLEW_EXPORT PFNWGLISENABLEDGENLOCKI3DPROC __wglewIsEnabledGenlockI3D;
896 WGLEW_EXPORT PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC __wglewQueryGenlockMaxSourceDelayI3D;
897 
898 WGLEW_EXPORT PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC __wglewAssociateImageBufferEventsI3D;
899 WGLEW_EXPORT PFNWGLCREATEIMAGEBUFFERI3DPROC __wglewCreateImageBufferI3D;
900 WGLEW_EXPORT PFNWGLDESTROYIMAGEBUFFERI3DPROC __wglewDestroyImageBufferI3D;
901 WGLEW_EXPORT PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC __wglewReleaseImageBufferEventsI3D;
902 
903 WGLEW_EXPORT PFNWGLDISABLEFRAMELOCKI3DPROC __wglewDisableFrameLockI3D;
904 WGLEW_EXPORT PFNWGLENABLEFRAMELOCKI3DPROC __wglewEnableFrameLockI3D;
905 WGLEW_EXPORT PFNWGLISENABLEDFRAMELOCKI3DPROC __wglewIsEnabledFrameLockI3D;
906 WGLEW_EXPORT PFNWGLQUERYFRAMELOCKMASTERI3DPROC __wglewQueryFrameLockMasterI3D;
907 
908 WGLEW_EXPORT PFNWGLBEGINFRAMETRACKINGI3DPROC __wglewBeginFrameTrackingI3D;
909 WGLEW_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D;
910 WGLEW_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D;
911 WGLEW_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D;
912 
913 WGLEW_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV;
914 WGLEW_EXPORT PFNWGLDELETEDCNVPROC __wglewDeleteDCNV;
915 WGLEW_EXPORT PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV;
916 WGLEW_EXPORT PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV;
917 WGLEW_EXPORT PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV;
918 
919 WGLEW_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV;
920 WGLEW_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV;
921 
922 WGLEW_EXPORT PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML;
923 WGLEW_EXPORT PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML;
924 WGLEW_EXPORT PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML;
925 WGLEW_EXPORT PFNWGLSWAPLAYERBUFFERSMSCOMLPROC __wglewSwapLayerBuffersMscOML;
926 WGLEW_EXPORT PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML;
927 WGLEW_EXPORT PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML;
928 WGLEW_EXPORT GLboolean __WGLEW_3DFX_multisample;
929 WGLEW_EXPORT GLboolean __WGLEW_3DL_stereo_control;
930 WGLEW_EXPORT GLboolean __WGLEW_ARB_buffer_region;
931 WGLEW_EXPORT GLboolean __WGLEW_ARB_extensions_string;
932 WGLEW_EXPORT GLboolean __WGLEW_ARB_make_current_read;
933 WGLEW_EXPORT GLboolean __WGLEW_ARB_multisample;
934 WGLEW_EXPORT GLboolean __WGLEW_ARB_pbuffer;
935 WGLEW_EXPORT GLboolean __WGLEW_ARB_pixel_format;
936 WGLEW_EXPORT GLboolean __WGLEW_ARB_pixel_format_float;
937 WGLEW_EXPORT GLboolean __WGLEW_ARB_render_texture;
938 WGLEW_EXPORT GLboolean __WGLEW_ATI_pixel_format_float;
939 WGLEW_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle;
940 WGLEW_EXPORT GLboolean __WGLEW_EXT_depth_float;
941 WGLEW_EXPORT GLboolean __WGLEW_EXT_display_color_table;
942 WGLEW_EXPORT GLboolean __WGLEW_EXT_extensions_string;
943 WGLEW_EXPORT GLboolean __WGLEW_EXT_framebuffer_sRGB;
944 WGLEW_EXPORT GLboolean __WGLEW_EXT_make_current_read;
945 WGLEW_EXPORT GLboolean __WGLEW_EXT_multisample;
946 WGLEW_EXPORT GLboolean __WGLEW_EXT_pbuffer;
947 WGLEW_EXPORT GLboolean __WGLEW_EXT_pixel_format;
948 WGLEW_EXPORT GLboolean __WGLEW_EXT_pixel_format_packed_float;
949 WGLEW_EXPORT GLboolean __WGLEW_EXT_swap_control;
950 WGLEW_EXPORT GLboolean __WGLEW_I3D_digital_video_control;
951 WGLEW_EXPORT GLboolean __WGLEW_I3D_gamma;
952 WGLEW_EXPORT GLboolean __WGLEW_I3D_genlock;
953 WGLEW_EXPORT GLboolean __WGLEW_I3D_image_buffer;
954 WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock;
955 WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage;
956 WGLEW_EXPORT GLboolean __WGLEW_NV_float_buffer;
957 WGLEW_EXPORT GLboolean __WGLEW_NV_gpu_affinity;
958 WGLEW_EXPORT GLboolean __WGLEW_NV_render_depth_texture;
959 WGLEW_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle;
960 WGLEW_EXPORT GLboolean __WGLEW_NV_vertex_array_range;
961 WGLEW_EXPORT GLboolean __WGLEW_OML_sync_control;
962 
963 #ifdef GLEW_MX
964 }; /* WGLEWContextStruct */
965 #endif /* GLEW_MX */
966 
967 /* ------------------------------------------------------------------------- */
968 
969 #ifdef GLEW_MX
970 
971 typedef struct WGLEWContextStruct WGLEWContext;
972 GLEWAPI GLenum wglewContextInit (WGLEWContext* ctx);
973 GLEWAPI GLboolean wglewContextIsSupported (WGLEWContext* ctx, const char* name);
974 
975 #define wglewInit() wglewContextInit(wglewGetContext())
976 #define wglewIsSupported(x) wglewContextIsSupported(wglewGetContext(), x)
977 
978 #define WGLEW_GET_VAR(x) (*(const GLboolean*)&(wglewGetContext()->x))
979 #define WGLEW_GET_FUN(x) wglewGetContext()->x
980 
981 #else /* GLEW_MX */
982 
983 #define WGLEW_GET_VAR(x) (*(const GLboolean*)&x)
984 #define WGLEW_GET_FUN(x) x
985 
986 GLEWAPI GLboolean wglewIsSupported (const char* name);
987 
988 #endif /* GLEW_MX */
989 
990 GLEWAPI GLboolean wglewGetExtension (const char* name);
991 
992 #ifdef __cplusplus
993 }
994 #endif
995 
996 #undef GLEWAPI
997 
998 #endif /* __wglew_h__ */
999