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