1 #ifndef __wglext_h_ 2 #define __wglext_h_ 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 /* 9 ** THIS FILE IS OBSOLETE. Please migrate away from using the 10 ** ".spec" files and the headers generated from them to the 11 ** XML Registry and headers generated from that. See 12 ** http://www.opengl.org/registry/api/README.txt 13 ** for more information. 14 ** 15 ** 16 ** Copyright (c) 2007-2013 The Khronos Group Inc. 17 ** 18 ** Permission is hereby granted, free of charge, to any person obtaining a 19 ** copy of this software and/or associated documentation files (the 20 ** "Materials"), to deal in the Materials without restriction, including 21 ** without limitation the rights to use, copy, modify, merge, publish, 22 ** distribute, sublicense, and/or sell copies of the Materials, and to 23 ** permit persons to whom the Materials are furnished to do so, subject to 24 ** the following conditions: 25 ** 26 ** The above copyright notice and this permission notice shall be included 27 ** in all copies or substantial portions of the Materials. 28 ** 29 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 30 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 31 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 32 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 33 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 34 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 35 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 36 */ 37 38 /* Function declaration macros - to move into glplatform.h */ 39 40 #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) 41 #define WIN32_LEAN_AND_MEAN 1 42 #include <windows.h> 43 #endif 44 45 #ifndef APIENTRY 46 #define APIENTRY 47 #endif 48 #ifndef APIENTRYP 49 #define APIENTRYP APIENTRY * 50 #endif 51 #ifndef GLAPI 52 #define GLAPI extern 53 #endif 54 55 /*************************************************************/ 56 57 /* Header file version number */ 58 /* wglext.h last updated 2013/06/10 */ 59 /* Current version at http://www.opengl.org/registry/ */ 60 #define WGL_WGLEXT_VERSION 26 61 62 #ifndef WGL_ARB_buffer_region 63 #define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 64 #define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 65 #define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 66 #define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 67 #endif 68 69 #ifndef WGL_ARB_multisample 70 #define WGL_SAMPLE_BUFFERS_ARB 0x2041 71 #define WGL_SAMPLES_ARB 0x2042 72 #endif 73 74 #ifndef WGL_ARB_extensions_string 75 #endif 76 77 #ifndef WGL_ARB_pixel_format 78 #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 79 #define WGL_DRAW_TO_WINDOW_ARB 0x2001 80 #define WGL_DRAW_TO_BITMAP_ARB 0x2002 81 #define WGL_ACCELERATION_ARB 0x2003 82 #define WGL_NEED_PALETTE_ARB 0x2004 83 #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 84 #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 85 #define WGL_SWAP_METHOD_ARB 0x2007 86 #define WGL_NUMBER_OVERLAYS_ARB 0x2008 87 #define WGL_NUMBER_UNDERLAYS_ARB 0x2009 88 #define WGL_TRANSPARENT_ARB 0x200A 89 #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 90 #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 91 #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 92 #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A 93 #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B 94 #define WGL_SHARE_DEPTH_ARB 0x200C 95 #define WGL_SHARE_STENCIL_ARB 0x200D 96 #define WGL_SHARE_ACCUM_ARB 0x200E 97 #define WGL_SUPPORT_GDI_ARB 0x200F 98 #define WGL_SUPPORT_OPENGL_ARB 0x2010 99 #define WGL_DOUBLE_BUFFER_ARB 0x2011 100 #define WGL_STEREO_ARB 0x2012 101 #define WGL_PIXEL_TYPE_ARB 0x2013 102 #define WGL_COLOR_BITS_ARB 0x2014 103 #define WGL_RED_BITS_ARB 0x2015 104 #define WGL_RED_SHIFT_ARB 0x2016 105 #define WGL_GREEN_BITS_ARB 0x2017 106 #define WGL_GREEN_SHIFT_ARB 0x2018 107 #define WGL_BLUE_BITS_ARB 0x2019 108 #define WGL_BLUE_SHIFT_ARB 0x201A 109 #define WGL_ALPHA_BITS_ARB 0x201B 110 #define WGL_ALPHA_SHIFT_ARB 0x201C 111 #define WGL_ACCUM_BITS_ARB 0x201D 112 #define WGL_ACCUM_RED_BITS_ARB 0x201E 113 #define WGL_ACCUM_GREEN_BITS_ARB 0x201F 114 #define WGL_ACCUM_BLUE_BITS_ARB 0x2020 115 #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 116 #define WGL_DEPTH_BITS_ARB 0x2022 117 #define WGL_STENCIL_BITS_ARB 0x2023 118 #define WGL_AUX_BUFFERS_ARB 0x2024 119 #define WGL_NO_ACCELERATION_ARB 0x2025 120 #define WGL_GENERIC_ACCELERATION_ARB 0x2026 121 #define WGL_FULL_ACCELERATION_ARB 0x2027 122 #define WGL_SWAP_EXCHANGE_ARB 0x2028 123 #define WGL_SWAP_COPY_ARB 0x2029 124 #define WGL_SWAP_UNDEFINED_ARB 0x202A 125 #define WGL_TYPE_RGBA_ARB 0x202B 126 #define WGL_TYPE_COLORINDEX_ARB 0x202C 127 #endif 128 129 #ifndef WGL_ARB_make_current_read 130 #define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 131 #define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 132 #endif 133 134 #ifndef WGL_ARB_pbuffer 135 #define WGL_DRAW_TO_PBUFFER_ARB 0x202D 136 #define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E 137 #define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F 138 #define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 139 #define WGL_PBUFFER_LARGEST_ARB 0x2033 140 #define WGL_PBUFFER_WIDTH_ARB 0x2034 141 #define WGL_PBUFFER_HEIGHT_ARB 0x2035 142 #define WGL_PBUFFER_LOST_ARB 0x2036 143 #endif 144 145 #ifndef WGL_ARB_render_texture 146 #define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 147 #define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 148 #define WGL_TEXTURE_FORMAT_ARB 0x2072 149 #define WGL_TEXTURE_TARGET_ARB 0x2073 150 #define WGL_MIPMAP_TEXTURE_ARB 0x2074 151 #define WGL_TEXTURE_RGB_ARB 0x2075 152 #define WGL_TEXTURE_RGBA_ARB 0x2076 153 #define WGL_NO_TEXTURE_ARB 0x2077 154 #define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 155 #define WGL_TEXTURE_1D_ARB 0x2079 156 #define WGL_TEXTURE_2D_ARB 0x207A 157 #define WGL_MIPMAP_LEVEL_ARB 0x207B 158 #define WGL_CUBE_MAP_FACE_ARB 0x207C 159 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D 160 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E 161 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F 162 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 163 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 164 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 165 #define WGL_FRONT_LEFT_ARB 0x2083 166 #define WGL_FRONT_RIGHT_ARB 0x2084 167 #define WGL_BACK_LEFT_ARB 0x2085 168 #define WGL_BACK_RIGHT_ARB 0x2086 169 #define WGL_AUX0_ARB 0x2087 170 #define WGL_AUX1_ARB 0x2088 171 #define WGL_AUX2_ARB 0x2089 172 #define WGL_AUX3_ARB 0x208A 173 #define WGL_AUX4_ARB 0x208B 174 #define WGL_AUX5_ARB 0x208C 175 #define WGL_AUX6_ARB 0x208D 176 #define WGL_AUX7_ARB 0x208E 177 #define WGL_AUX8_ARB 0x208F 178 #define WGL_AUX9_ARB 0x2090 179 #endif 180 181 #ifndef WGL_ARB_pixel_format_float 182 #define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0 183 #endif 184 185 #ifndef WGL_ARB_framebuffer_sRGB 186 #define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9 187 #endif 188 189 #ifndef WGL_ARB_create_context 190 #define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001 191 #define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 192 #define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 193 #define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 194 #define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 195 #define WGL_CONTEXT_FLAGS_ARB 0x2094 196 #define ERROR_INVALID_VERSION_ARB 0x2095 197 #endif 198 199 #ifndef WGL_ARB_create_context_profile 200 #define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 201 #define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 202 #define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 203 #define ERROR_INVALID_PROFILE_ARB 0x2096 204 #endif 205 206 #ifndef WGL_ARB_create_context_robustness 207 #define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 208 #define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 209 #define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 210 #define WGL_NO_RESET_NOTIFICATION_ARB 0x8261 211 #endif 212 213 #ifndef WGL_EXT_make_current_read 214 #define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 215 #endif 216 217 #ifndef WGL_EXT_pixel_format 218 #define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000 219 #define WGL_DRAW_TO_WINDOW_EXT 0x2001 220 #define WGL_DRAW_TO_BITMAP_EXT 0x2002 221 #define WGL_ACCELERATION_EXT 0x2003 222 #define WGL_NEED_PALETTE_EXT 0x2004 223 #define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005 224 #define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006 225 #define WGL_SWAP_METHOD_EXT 0x2007 226 #define WGL_NUMBER_OVERLAYS_EXT 0x2008 227 #define WGL_NUMBER_UNDERLAYS_EXT 0x2009 228 #define WGL_TRANSPARENT_EXT 0x200A 229 #define WGL_TRANSPARENT_VALUE_EXT 0x200B 230 #define WGL_SHARE_DEPTH_EXT 0x200C 231 #define WGL_SHARE_STENCIL_EXT 0x200D 232 #define WGL_SHARE_ACCUM_EXT 0x200E 233 #define WGL_SUPPORT_GDI_EXT 0x200F 234 #define WGL_SUPPORT_OPENGL_EXT 0x2010 235 #define WGL_DOUBLE_BUFFER_EXT 0x2011 236 #define WGL_STEREO_EXT 0x2012 237 #define WGL_PIXEL_TYPE_EXT 0x2013 238 #define WGL_COLOR_BITS_EXT 0x2014 239 #define WGL_RED_BITS_EXT 0x2015 240 #define WGL_RED_SHIFT_EXT 0x2016 241 #define WGL_GREEN_BITS_EXT 0x2017 242 #define WGL_GREEN_SHIFT_EXT 0x2018 243 #define WGL_BLUE_BITS_EXT 0x2019 244 #define WGL_BLUE_SHIFT_EXT 0x201A 245 #define WGL_ALPHA_BITS_EXT 0x201B 246 #define WGL_ALPHA_SHIFT_EXT 0x201C 247 #define WGL_ACCUM_BITS_EXT 0x201D 248 #define WGL_ACCUM_RED_BITS_EXT 0x201E 249 #define WGL_ACCUM_GREEN_BITS_EXT 0x201F 250 #define WGL_ACCUM_BLUE_BITS_EXT 0x2020 251 #define WGL_ACCUM_ALPHA_BITS_EXT 0x2021 252 #define WGL_DEPTH_BITS_EXT 0x2022 253 #define WGL_STENCIL_BITS_EXT 0x2023 254 #define WGL_AUX_BUFFERS_EXT 0x2024 255 #define WGL_NO_ACCELERATION_EXT 0x2025 256 #define WGL_GENERIC_ACCELERATION_EXT 0x2026 257 #define WGL_FULL_ACCELERATION_EXT 0x2027 258 #define WGL_SWAP_EXCHANGE_EXT 0x2028 259 #define WGL_SWAP_COPY_EXT 0x2029 260 #define WGL_SWAP_UNDEFINED_EXT 0x202A 261 #define WGL_TYPE_RGBA_EXT 0x202B 262 #define WGL_TYPE_COLORINDEX_EXT 0x202C 263 #endif 264 265 #ifndef WGL_EXT_pbuffer 266 #define WGL_DRAW_TO_PBUFFER_EXT 0x202D 267 #define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E 268 #define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F 269 #define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030 270 #define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031 271 #define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032 272 #define WGL_PBUFFER_LARGEST_EXT 0x2033 273 #define WGL_PBUFFER_WIDTH_EXT 0x2034 274 #define WGL_PBUFFER_HEIGHT_EXT 0x2035 275 #endif 276 277 #ifndef WGL_EXT_depth_float 278 #define WGL_DEPTH_FLOAT_EXT 0x2040 279 #endif 280 281 #ifndef WGL_3DFX_multisample 282 #define WGL_SAMPLE_BUFFERS_3DFX 0x2060 283 #define WGL_SAMPLES_3DFX 0x2061 284 #endif 285 286 #ifndef WGL_EXT_multisample 287 #define WGL_SAMPLE_BUFFERS_EXT 0x2041 288 #define WGL_SAMPLES_EXT 0x2042 289 #endif 290 291 #ifndef WGL_I3D_digital_video_control 292 #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050 293 #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051 294 #define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052 295 #define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053 296 #endif 297 298 #ifndef WGL_I3D_gamma 299 #define WGL_GAMMA_TABLE_SIZE_I3D 0x204E 300 #define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F 301 #endif 302 303 #ifndef WGL_I3D_genlock 304 #define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 305 #define WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D 0x2045 306 #define WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D 0x2046 307 #define WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D 0x2047 308 #define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 309 #define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 310 #define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A 311 #define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B 312 #define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C 313 #endif 314 315 #ifndef WGL_I3D_image_buffer 316 #define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 317 #define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 318 #endif 319 320 #ifndef WGL_I3D_swap_frame_lock 321 #endif 322 323 #ifndef WGL_NV_render_depth_texture 324 #define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 325 #define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 326 #define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 327 #define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 328 #define WGL_DEPTH_COMPONENT_NV 0x20A7 329 #endif 330 331 #ifndef WGL_NV_render_texture_rectangle 332 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0 333 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1 334 #define WGL_TEXTURE_RECTANGLE_NV 0x20A2 335 #endif 336 337 #ifndef WGL_ATI_pixel_format_float 338 #define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 339 #endif 340 341 #ifndef WGL_NV_float_buffer 342 #define WGL_FLOAT_COMPONENTS_NV 0x20B0 343 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1 344 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2 345 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3 346 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4 347 #define WGL_TEXTURE_FLOAT_R_NV 0x20B5 348 #define WGL_TEXTURE_FLOAT_RG_NV 0x20B6 349 #define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7 350 #define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 351 #endif 352 353 #ifndef WGL_3DL_stereo_control 354 #define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055 355 #define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056 356 #define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057 357 #define WGL_STEREO_POLARITY_INVERT_3DL 0x2058 358 #endif 359 360 #ifndef WGL_EXT_pixel_format_packed_float 361 #define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8 362 #endif 363 364 #ifndef WGL_EXT_framebuffer_sRGB 365 #define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9 366 #endif 367 368 #ifndef WGL_NV_present_video 369 #define WGL_NUM_VIDEO_SLOTS_NV 0x20F0 370 #endif 371 372 #ifndef WGL_NV_video_out 373 #define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0 374 #define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1 375 #define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2 376 #define WGL_VIDEO_OUT_COLOR_NV 0x20C3 377 #define WGL_VIDEO_OUT_ALPHA_NV 0x20C4 378 #define WGL_VIDEO_OUT_DEPTH_NV 0x20C5 379 #define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 380 #define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 381 #define WGL_VIDEO_OUT_FRAME 0x20C8 382 #define WGL_VIDEO_OUT_FIELD_1 0x20C9 383 #define WGL_VIDEO_OUT_FIELD_2 0x20CA 384 #define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB 385 #define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC 386 #endif 387 388 #ifndef WGL_NV_swap_group 389 #endif 390 391 #ifndef WGL_NV_gpu_affinity 392 #define ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0 393 #define ERROR_MISSING_AFFINITY_MASK_NV 0x20D1 394 #endif 395 396 #ifndef WGL_AMD_gpu_association 397 #define WGL_GPU_VENDOR_AMD 0x1F00 398 #define WGL_GPU_RENDERER_STRING_AMD 0x1F01 399 #define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 400 #define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 401 #define WGL_GPU_RAM_AMD 0x21A3 402 #define WGL_GPU_CLOCK_AMD 0x21A4 403 #define WGL_GPU_NUM_PIPES_AMD 0x21A5 404 #define WGL_GPU_NUM_SIMD_AMD 0x21A6 405 #define WGL_GPU_NUM_RB_AMD 0x21A7 406 #define WGL_GPU_NUM_SPI_AMD 0x21A8 407 #endif 408 409 #ifndef WGL_NV_video_capture 410 #define WGL_UNIQUE_ID_NV 0x20CE 411 #define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF 412 #endif 413 414 #ifndef WGL_NV_copy_image 415 #endif 416 417 #ifndef WGL_NV_multisample_coverage 418 #define WGL_COVERAGE_SAMPLES_NV 0x2042 419 #define WGL_COLOR_SAMPLES_NV 0x20B9 420 #endif 421 422 #ifndef WGL_EXT_create_context_es2_profile 423 #define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 424 #endif 425 426 #ifndef WGL_NV_DX_interop 427 #define WGL_ACCESS_READ_ONLY_NV 0x00000000 428 #define WGL_ACCESS_READ_WRITE_NV 0x00000001 429 #define WGL_ACCESS_WRITE_DISCARD_NV 0x00000002 430 #endif 431 432 #ifndef WGL_NV_DX_interop2 433 #endif 434 435 #ifndef WGL_EXT_swap_control_tear 436 #endif 437 438 439 /*************************************************************/ 440 441 #ifndef WGL_ARB_pbuffer 442 DECLARE_HANDLE(HPBUFFERARB); 443 #endif 444 #ifndef WGL_EXT_pbuffer 445 DECLARE_HANDLE(HPBUFFEREXT); 446 #endif 447 #ifndef WGL_NV_present_video 448 DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV); 449 #endif 450 #ifndef WGL_NV_video_output 451 DECLARE_HANDLE(HPVIDEODEV); 452 #endif 453 #ifndef WGL_NV_gpu_affinity 454 DECLARE_HANDLE(HPGPUNV); 455 DECLARE_HANDLE(HGPUNV); 456 457 typedef struct _GPU_DEVICE { 458 DWORD cb; 459 CHAR DeviceName[32]; 460 CHAR DeviceString[128]; 461 DWORD Flags; 462 RECT rcVirtualScreen; 463 } GPU_DEVICE, *PGPU_DEVICE; 464 #endif 465 #ifndef WGL_NV_video_capture 466 DECLARE_HANDLE(HVIDEOINPUTDEVICENV); 467 #endif 468 469 #ifndef WGL_ARB_buffer_region 470 #define WGL_ARB_buffer_region 1 471 #ifdef WGL_WGLEXT_PROTOTYPES 472 extern HANDLE WINAPI wglCreateBufferRegionARB (HDC hDC, int iLayerPlane, UINT uType); 473 extern VOID WINAPI wglDeleteBufferRegionARB (HANDLE hRegion); 474 extern BOOL WINAPI wglSaveBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height); 475 extern BOOL WINAPI wglRestoreBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); 476 #endif /* WGL_WGLEXT_PROTOTYPES */ 477 typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType); 478 typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion); 479 typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height); 480 typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); 481 #endif 482 483 #ifndef WGL_ARB_multisample 484 #define WGL_ARB_multisample 1 485 #endif 486 487 #ifndef WGL_ARB_extensions_string 488 #define WGL_ARB_extensions_string 1 489 #ifdef WGL_WGLEXT_PROTOTYPES 490 extern const char * WINAPI wglGetExtensionsStringARB (HDC hdc); 491 #endif /* WGL_WGLEXT_PROTOTYPES */ 492 typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); 493 #endif 494 495 #ifndef WGL_ARB_pixel_format 496 #define WGL_ARB_pixel_format 1 497 #ifdef WGL_WGLEXT_PROTOTYPES 498 extern BOOL WINAPI wglGetPixelFormatAttribivARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues); 499 extern BOOL WINAPI wglGetPixelFormatAttribfvARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues); 500 extern BOOL WINAPI wglChoosePixelFormatARB (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); 501 #endif /* WGL_WGLEXT_PROTOTYPES */ 502 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues); 503 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues); 504 typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); 505 #endif 506 507 #ifndef WGL_ARB_make_current_read 508 #define WGL_ARB_make_current_read 1 509 #ifdef WGL_WGLEXT_PROTOTYPES 510 extern BOOL WINAPI wglMakeContextCurrentARB (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); 511 extern HDC WINAPI wglGetCurrentReadDCARB (void); 512 #endif /* WGL_WGLEXT_PROTOTYPES */ 513 typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); 514 typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void); 515 #endif 516 517 #ifndef WGL_ARB_pbuffer 518 #define WGL_ARB_pbuffer 1 519 #ifdef WGL_WGLEXT_PROTOTYPES 520 extern HPBUFFERARB WINAPI wglCreatePbufferARB (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); 521 extern HDC WINAPI wglGetPbufferDCARB (HPBUFFERARB hPbuffer); 522 extern int WINAPI wglReleasePbufferDCARB (HPBUFFERARB hPbuffer, HDC hDC); 523 extern BOOL WINAPI wglDestroyPbufferARB (HPBUFFERARB hPbuffer); 524 extern BOOL WINAPI wglQueryPbufferARB (HPBUFFERARB hPbuffer, int iAttribute, int *piValue); 525 #endif /* WGL_WGLEXT_PROTOTYPES */ 526 typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); 527 typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer); 528 typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC); 529 typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer); 530 typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue); 531 #endif 532 533 #ifndef WGL_ARB_render_texture 534 #define WGL_ARB_render_texture 1 535 #ifdef WGL_WGLEXT_PROTOTYPES 536 extern BOOL WINAPI wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer); 537 extern BOOL WINAPI wglReleaseTexImageARB (HPBUFFERARB hPbuffer, int iBuffer); 538 extern BOOL WINAPI wglSetPbufferAttribARB (HPBUFFERARB hPbuffer, const int *piAttribList); 539 #endif /* WGL_WGLEXT_PROTOTYPES */ 540 typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); 541 typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); 542 typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList); 543 #endif 544 545 #ifndef WGL_ARB_pixel_format_float 546 #define WGL_ARB_pixel_format_float 1 547 #endif 548 549 #ifndef WGL_ARB_framebuffer_sRGB 550 #define WGL_ARB_framebuffer_sRGB 1 551 #endif 552 553 #ifndef WGL_ARB_create_context 554 #define WGL_ARB_create_context 1 555 #ifdef WGL_WGLEXT_PROTOTYPES 556 extern HGLRC WINAPI wglCreateContextAttribsARB (HDC hDC, HGLRC hShareContext, const int *attribList); 557 #endif /* WGL_WGLEXT_PROTOTYPES */ 558 typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int *attribList); 559 #endif 560 561 #ifndef WGL_ARB_create_context_profile 562 #define WGL_ARB_create_context_profile 1 563 #endif 564 565 #ifndef WGL_ARB_create_context_robustness 566 #define WGL_ARB_create_context_robustness 1 567 #endif 568 569 #ifndef WGL_EXT_display_color_table 570 #define WGL_EXT_display_color_table 1 571 #ifdef WGL_WGLEXT_PROTOTYPES 572 extern GLboolean WINAPI wglCreateDisplayColorTableEXT (GLushort id); 573 extern GLboolean WINAPI wglLoadDisplayColorTableEXT (const GLushort *table, GLuint length); 574 extern GLboolean WINAPI wglBindDisplayColorTableEXT (GLushort id); 575 extern VOID WINAPI wglDestroyDisplayColorTableEXT (GLushort id); 576 #endif /* WGL_WGLEXT_PROTOTYPES */ 577 typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); 578 typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort *table, GLuint length); 579 typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); 580 typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); 581 #endif 582 583 #ifndef WGL_EXT_extensions_string 584 #define WGL_EXT_extensions_string 1 585 #ifdef WGL_WGLEXT_PROTOTYPES 586 extern const char * WINAPI wglGetExtensionsStringEXT (void); 587 #endif /* WGL_WGLEXT_PROTOTYPES */ 588 typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); 589 #endif 590 591 #ifndef WGL_EXT_make_current_read 592 #define WGL_EXT_make_current_read 1 593 #ifdef WGL_WGLEXT_PROTOTYPES 594 extern BOOL WINAPI wglMakeContextCurrentEXT (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); 595 extern HDC WINAPI wglGetCurrentReadDCEXT (void); 596 #endif /* WGL_WGLEXT_PROTOTYPES */ 597 typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); 598 typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void); 599 #endif 600 601 #ifndef WGL_EXT_pbuffer 602 #define WGL_EXT_pbuffer 1 603 #ifdef WGL_WGLEXT_PROTOTYPES 604 extern HPBUFFEREXT WINAPI wglCreatePbufferEXT (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); 605 extern HDC WINAPI wglGetPbufferDCEXT (HPBUFFEREXT hPbuffer); 606 extern int WINAPI wglReleasePbufferDCEXT (HPBUFFEREXT hPbuffer, HDC hDC); 607 extern BOOL WINAPI wglDestroyPbufferEXT (HPBUFFEREXT hPbuffer); 608 extern BOOL WINAPI wglQueryPbufferEXT (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue); 609 #endif /* WGL_WGLEXT_PROTOTYPES */ 610 typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); 611 typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer); 612 typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC); 613 typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer); 614 typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue); 615 #endif 616 617 #ifndef WGL_EXT_pixel_format 618 #define WGL_EXT_pixel_format 1 619 #ifdef WGL_WGLEXT_PROTOTYPES 620 extern BOOL WINAPI wglGetPixelFormatAttribivEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues); 621 extern BOOL WINAPI wglGetPixelFormatAttribfvEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues); 622 extern BOOL WINAPI wglChoosePixelFormatEXT (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); 623 #endif /* WGL_WGLEXT_PROTOTYPES */ 624 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues); 625 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues); 626 typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); 627 #endif 628 629 #ifndef WGL_EXT_swap_control 630 #define WGL_EXT_swap_control 1 631 #ifdef WGL_WGLEXT_PROTOTYPES 632 extern BOOL WINAPI wglSwapIntervalEXT (int interval); 633 extern int WINAPI wglGetSwapIntervalEXT (void); 634 #endif /* WGL_WGLEXT_PROTOTYPES */ 635 typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); 636 typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void); 637 #endif 638 639 #ifndef WGL_EXT_depth_float 640 #define WGL_EXT_depth_float 1 641 #endif 642 643 #ifndef WGL_NV_vertex_array_range 644 #define WGL_NV_vertex_array_range 1 645 #ifdef WGL_WGLEXT_PROTOTYPES 646 extern void* WINAPI wglAllocateMemoryNV (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); 647 extern void WINAPI wglFreeMemoryNV (void *pointer); 648 #endif /* WGL_WGLEXT_PROTOTYPES */ 649 typedef void* (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); 650 typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer); 651 #endif 652 653 #ifndef WGL_3DFX_multisample 654 #define WGL_3DFX_multisample 1 655 #endif 656 657 #ifndef WGL_EXT_multisample 658 #define WGL_EXT_multisample 1 659 #endif 660 661 #ifndef WGL_OML_sync_control 662 #define WGL_OML_sync_control 1 663 #ifdef WGL_WGLEXT_PROTOTYPES 664 extern BOOL WINAPI wglGetSyncValuesOML (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc); 665 extern BOOL WINAPI wglGetMscRateOML (HDC hdc, INT32 *numerator, INT32 *denominator); 666 extern INT64 WINAPI wglSwapBuffersMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); 667 extern INT64 WINAPI wglSwapLayerBuffersMscOML (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); 668 extern BOOL WINAPI wglWaitForMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc); 669 extern BOOL WINAPI wglWaitForSbcOML (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc); 670 #endif /* WGL_WGLEXT_PROTOTYPES */ 671 typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc); 672 typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32 *numerator, INT32 *denominator); 673 typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); 674 typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); 675 typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc); 676 typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc); 677 #endif 678 679 #ifndef WGL_I3D_digital_video_control 680 #define WGL_I3D_digital_video_control 1 681 #ifdef WGL_WGLEXT_PROTOTYPES 682 extern BOOL WINAPI wglGetDigitalVideoParametersI3D (HDC hDC, int iAttribute, int *piValue); 683 extern BOOL WINAPI wglSetDigitalVideoParametersI3D (HDC hDC, int iAttribute, const int *piValue); 684 #endif /* WGL_WGLEXT_PROTOTYPES */ 685 typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue); 686 typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue); 687 #endif 688 689 #ifndef WGL_I3D_gamma 690 #define WGL_I3D_gamma 1 691 #ifdef WGL_WGLEXT_PROTOTYPES 692 extern BOOL WINAPI wglGetGammaTableParametersI3D (HDC hDC, int iAttribute, int *piValue); 693 extern BOOL WINAPI wglSetGammaTableParametersI3D (HDC hDC, int iAttribute, const int *piValue); 694 extern BOOL WINAPI wglGetGammaTableI3D (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue); 695 extern BOOL WINAPI wglSetGammaTableI3D (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue); 696 #endif /* WGL_WGLEXT_PROTOTYPES */ 697 typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue); 698 typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue); 699 typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue); 700 typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue); 701 #endif 702 703 #ifndef WGL_I3D_genlock 704 #define WGL_I3D_genlock 1 705 #ifdef WGL_WGLEXT_PROTOTYPES 706 extern BOOL WINAPI wglEnableGenlockI3D (HDC hDC); 707 extern BOOL WINAPI wglDisableGenlockI3D (HDC hDC); 708 extern BOOL WINAPI wglIsEnabledGenlockI3D (HDC hDC, BOOL *pFlag); 709 extern BOOL WINAPI wglGenlockSourceI3D (HDC hDC, UINT uSource); 710 extern BOOL WINAPI wglGetGenlockSourceI3D (HDC hDC, UINT *uSource); 711 extern BOOL WINAPI wglGenlockSourceEdgeI3D (HDC hDC, UINT uEdge); 712 extern BOOL WINAPI wglGetGenlockSourceEdgeI3D (HDC hDC, UINT *uEdge); 713 extern BOOL WINAPI wglGenlockSampleRateI3D (HDC hDC, UINT uRate); 714 extern BOOL WINAPI wglGetGenlockSampleRateI3D (HDC hDC, UINT *uRate); 715 extern BOOL WINAPI wglGenlockSourceDelayI3D (HDC hDC, UINT uDelay); 716 extern BOOL WINAPI wglGetGenlockSourceDelayI3D (HDC hDC, UINT *uDelay); 717 extern BOOL WINAPI wglQueryGenlockMaxSourceDelayI3D (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay); 718 #endif /* WGL_WGLEXT_PROTOTYPES */ 719 typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC); 720 typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC); 721 typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL *pFlag); 722 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource); 723 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT *uSource); 724 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge); 725 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT *uEdge); 726 typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate); 727 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT *uRate); 728 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay); 729 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT *uDelay); 730 typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay); 731 #endif 732 733 #ifndef WGL_I3D_image_buffer 734 #define WGL_I3D_image_buffer 1 735 #ifdef WGL_WGLEXT_PROTOTYPES 736 extern LPVOID WINAPI wglCreateImageBufferI3D (HDC hDC, DWORD dwSize, UINT uFlags); 737 extern BOOL WINAPI wglDestroyImageBufferI3D (HDC hDC, LPVOID pAddress); 738 extern BOOL WINAPI wglAssociateImageBufferEventsI3D (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count); 739 extern BOOL WINAPI wglReleaseImageBufferEventsI3D (HDC hDC, const LPVOID *pAddress, UINT count); 740 #endif /* WGL_WGLEXT_PROTOTYPES */ 741 typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags); 742 typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress); 743 typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count); 744 typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID *pAddress, UINT count); 745 #endif 746 747 #ifndef WGL_I3D_swap_frame_lock 748 #define WGL_I3D_swap_frame_lock 1 749 #ifdef WGL_WGLEXT_PROTOTYPES 750 extern BOOL WINAPI wglEnableFrameLockI3D (void); 751 extern BOOL WINAPI wglDisableFrameLockI3D (void); 752 extern BOOL WINAPI wglIsEnabledFrameLockI3D (BOOL *pFlag); 753 extern BOOL WINAPI wglQueryFrameLockMasterI3D (BOOL *pFlag); 754 #endif /* WGL_WGLEXT_PROTOTYPES */ 755 typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void); 756 typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void); 757 typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL *pFlag); 758 typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL *pFlag); 759 #endif 760 761 #ifndef WGL_I3D_swap_frame_usage 762 #define WGL_I3D_swap_frame_usage 1 763 #ifdef WGL_WGLEXT_PROTOTYPES 764 extern BOOL WINAPI wglGetFrameUsageI3D (float *pUsage); 765 extern BOOL WINAPI wglBeginFrameTrackingI3D (void); 766 extern BOOL WINAPI wglEndFrameTrackingI3D (void); 767 extern BOOL WINAPI wglQueryFrameTrackingI3D (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); 768 #endif /* WGL_WGLEXT_PROTOTYPES */ 769 typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float *pUsage); 770 typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void); 771 typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void); 772 typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); 773 #endif 774 775 #ifndef WGL_ATI_pixel_format_float 776 #define WGL_ATI_pixel_format_float 1 777 #endif 778 779 #ifndef WGL_NV_float_buffer 780 #define WGL_NV_float_buffer 1 781 #endif 782 783 #ifndef WGL_3DL_stereo_control 784 #define WGL_3DL_stereo_control 1 785 #ifdef WGL_WGLEXT_PROTOTYPES 786 extern BOOL WINAPI wglSetStereoEmitterState3DL (HDC hDC, UINT uState); 787 #endif /* WGL_WGLEXT_PROTOTYPES */ 788 typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState); 789 #endif 790 791 #ifndef WGL_EXT_pixel_format_packed_float 792 #define WGL_EXT_pixel_format_packed_float 1 793 #endif 794 795 #ifndef WGL_EXT_framebuffer_sRGB 796 #define WGL_EXT_framebuffer_sRGB 1 797 #endif 798 799 #ifndef WGL_NV_present_video 800 #define WGL_NV_present_video 1 801 #ifdef WGL_WGLEXT_PROTOTYPES 802 extern int WINAPI wglEnumerateVideoDevicesNV (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList); 803 extern BOOL WINAPI wglBindVideoDeviceNV (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList); 804 extern BOOL WINAPI wglQueryCurrentContextNV (int iAttribute, int *piValue); 805 #endif /* WGL_WGLEXT_PROTOTYPES */ 806 typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList); 807 typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList); 808 typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int *piValue); 809 #endif 810 811 #ifndef WGL_NV_video_output 812 #define WGL_NV_video_output 1 813 #ifdef WGL_WGLEXT_PROTOTYPES 814 extern BOOL WINAPI wglGetVideoDeviceNV (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice); 815 extern BOOL WINAPI wglReleaseVideoDeviceNV (HPVIDEODEV hVideoDevice); 816 extern BOOL WINAPI wglBindVideoImageNV (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); 817 extern BOOL WINAPI wglReleaseVideoImageNV (HPBUFFERARB hPbuffer, int iVideoBuffer); 818 extern BOOL WINAPI wglSendPbufferToVideoNV (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock); 819 extern BOOL WINAPI wglGetVideoInfoNV (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); 820 #endif /* WGL_WGLEXT_PROTOTYPES */ 821 typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice); 822 typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice); 823 typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); 824 typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer); 825 typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock); 826 typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); 827 #endif 828 829 #ifndef WGL_NV_swap_group 830 #define WGL_NV_swap_group 1 831 #ifdef WGL_WGLEXT_PROTOTYPES 832 extern BOOL WINAPI wglJoinSwapGroupNV (HDC hDC, GLuint group); 833 extern BOOL WINAPI wglBindSwapBarrierNV (GLuint group, GLuint barrier); 834 extern BOOL WINAPI wglQuerySwapGroupNV (HDC hDC, GLuint *group, GLuint *barrier); 835 extern BOOL WINAPI wglQueryMaxSwapGroupsNV (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers); 836 extern BOOL WINAPI wglQueryFrameCountNV (HDC hDC, GLuint *count); 837 extern BOOL WINAPI wglResetFrameCountNV (HDC hDC); 838 #endif /* WGL_WGLEXT_PROTOTYPES */ 839 typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group); 840 typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier); 841 typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint *group, GLuint *barrier); 842 typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers); 843 typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint *count); 844 typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); 845 #endif 846 847 #ifndef WGL_NV_gpu_affinity 848 #define WGL_NV_gpu_affinity 1 849 #ifdef WGL_WGLEXT_PROTOTYPES 850 extern BOOL WINAPI wglEnumGpusNV (UINT iGpuIndex, HGPUNV *phGpu); 851 extern BOOL WINAPI wglEnumGpuDevicesNV (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); 852 extern HDC WINAPI wglCreateAffinityDCNV (const HGPUNV *phGpuList); 853 extern BOOL WINAPI wglEnumGpusFromAffinityDCNV (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); 854 extern BOOL WINAPI wglDeleteDCNV (HDC hdc); 855 #endif /* WGL_WGLEXT_PROTOTYPES */ 856 typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu); 857 typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); 858 typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList); 859 typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); 860 typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc); 861 #endif 862 863 #ifndef WGL_AMD_gpu_association 864 #define WGL_AMD_gpu_association 1 865 #ifdef WGL_WGLEXT_PROTOTYPES 866 extern UINT WINAPI wglGetGPUIDsAMD (UINT maxCount, UINT *ids); 867 extern INT WINAPI wglGetGPUInfoAMD (UINT id, int property, GLenum dataType, UINT size, void *data); 868 extern UINT WINAPI wglGetContextGPUIDAMD (HGLRC hglrc); 869 extern HGLRC WINAPI wglCreateAssociatedContextAMD (UINT id); 870 extern HGLRC WINAPI wglCreateAssociatedContextAttribsAMD (UINT id, HGLRC hShareContext, const int *attribList); 871 extern BOOL WINAPI wglDeleteAssociatedContextAMD (HGLRC hglrc); 872 extern BOOL WINAPI wglMakeAssociatedContextCurrentAMD (HGLRC hglrc); 873 extern HGLRC WINAPI wglGetCurrentAssociatedContextAMD (void); 874 extern VOID WINAPI wglBlitContextFramebufferAMD (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); 875 #endif /* WGL_WGLEXT_PROTOTYPES */ 876 typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT *ids); 877 typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, int property, GLenum dataType, UINT size, void *data); 878 typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc); 879 typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id); 880 typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int *attribList); 881 typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc); 882 typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc); 883 typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void); 884 typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); 885 #endif 886 887 #ifndef WGL_NV_video_capture 888 #define WGL_NV_video_capture 1 889 #ifdef WGL_WGLEXT_PROTOTYPES 890 extern BOOL WINAPI wglBindVideoCaptureDeviceNV (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); 891 extern UINT WINAPI wglEnumerateVideoCaptureDevicesNV (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList); 892 extern BOOL WINAPI wglLockVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice); 893 extern BOOL WINAPI wglQueryVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue); 894 extern BOOL WINAPI wglReleaseVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice); 895 #endif /* WGL_WGLEXT_PROTOTYPES */ 896 typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); 897 typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList); 898 typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); 899 typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue); 900 typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); 901 #endif 902 903 #ifndef WGL_NV_copy_image 904 #define WGL_NV_copy_image 1 905 #ifdef WGL_WGLEXT_PROTOTYPES 906 extern BOOL WINAPI wglCopyImageSubDataNV (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); 907 #endif /* WGL_WGLEXT_PROTOTYPES */ 908 typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); 909 #endif 910 911 #ifndef WGL_NV_multisample_coverage 912 #define WGL_NV_multisample_coverage 1 913 #endif 914 915 #ifndef WGL_NV_DX_interop 916 #define WGL_NV_DX_interop 1 917 #ifdef WGL_WGLEXT_PROTOTYPES 918 extern BOOL WINAPI wglDXSetResourceShareHandleNV (void *dxObject, HANDLE shareHandle); 919 extern HANDLE WINAPI wglDXOpenDeviceNV (void *dxDevice); 920 extern BOOL WINAPI wglDXCloseDeviceNV (HANDLE hDevice); 921 extern HANDLE WINAPI wglDXRegisterObjectNV (HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access); 922 extern BOOL WINAPI wglDXUnregisterObjectNV (HANDLE hDevice, HANDLE hObject); 923 extern BOOL WINAPI wglDXObjectAccessNV (HANDLE hObject, GLenum access); 924 extern BOOL WINAPI wglDXLockObjectsNV (HANDLE hDevice, GLint count, HANDLE *hObjects); 925 extern BOOL WINAPI wglDXUnlockObjectsNV (HANDLE hDevice, GLint count, HANDLE *hObjects); 926 #endif /* WGL_WGLEXT_PROTOTYPES */ 927 typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void *dxObject, HANDLE shareHandle); 928 typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void *dxDevice); 929 typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice); 930 typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access); 931 typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject); 932 typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access); 933 typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE *hObjects); 934 typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE *hObjects); 935 #endif 936 937 #ifndef WGL_NV_DX_interop2 938 #define WGL_NV_DX_interop2 1 939 #endif 940 941 #ifndef WGL_EXT_swap_control_tear 942 #define WGL_EXT_swap_control_tear 1 943 #endif 944 945 946 #ifdef __cplusplus 947 } 948 #endif 949 950 #endif 951