1 #ifndef __wglext_h_ 2 #define __wglext_h_ 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 /* 9 ** Copyright (c) 2007 The Khronos Group Inc. 10 ** 11 ** Permission is hereby granted, free of charge, to any person obtaining a 12 ** copy of this software and/or associated documentation files (the 13 ** "Materials"), to deal in the Materials without restriction, including 14 ** without limitation the rights to use, copy, modify, merge, publish, 15 ** distribute, sublicense, and/or sell copies of the Materials, and to 16 ** permit persons to whom the Materials are furnished to do so, subject to 17 ** the following conditions: 18 ** 19 ** The above copyright notice and this permission notice shall be included 20 ** in all copies or substantial portions of the Materials. 21 ** 22 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 23 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 24 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 25 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 26 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 27 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 28 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 29 */ 30 31 #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) 32 #define WIN32_LEAN_AND_MEAN 1 33 #include <windows.h> 34 #endif 35 36 #ifndef APIENTRY 37 #define APIENTRY 38 #endif 39 #ifndef APIENTRYP 40 #define APIENTRYP APIENTRY * 41 #endif 42 #ifndef GLAPI 43 #define GLAPI extern 44 #endif 45 46 /*************************************************************/ 47 48 /* Header file version number */ 49 /* wglext.h last updated 2007/02/09 */ 50 /* Current version at http://www.opengl.org/registry/ */ 51 #define WGL_WGLEXT_VERSION 9 52 53 #ifndef WGL_ARB_buffer_region 54 #define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 55 #define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 56 #define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 57 #define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 58 #endif 59 60 #ifndef WGL_ARB_multisample 61 #define WGL_SAMPLE_BUFFERS_ARB 0x2041 62 #define WGL_SAMPLES_ARB 0x2042 63 #endif 64 65 #ifndef WGL_ARB_extensions_string 66 #endif 67 68 #ifndef WGL_ARB_pixel_format 69 #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 70 #define WGL_DRAW_TO_WINDOW_ARB 0x2001 71 #define WGL_DRAW_TO_BITMAP_ARB 0x2002 72 #define WGL_ACCELERATION_ARB 0x2003 73 #define WGL_NEED_PALETTE_ARB 0x2004 74 #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 75 #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 76 #define WGL_SWAP_METHOD_ARB 0x2007 77 #define WGL_NUMBER_OVERLAYS_ARB 0x2008 78 #define WGL_NUMBER_UNDERLAYS_ARB 0x2009 79 #define WGL_TRANSPARENT_ARB 0x200A 80 #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 81 #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 82 #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 83 #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A 84 #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B 85 #define WGL_SHARE_DEPTH_ARB 0x200C 86 #define WGL_SHARE_STENCIL_ARB 0x200D 87 #define WGL_SHARE_ACCUM_ARB 0x200E 88 #define WGL_SUPPORT_GDI_ARB 0x200F 89 #define WGL_SUPPORT_OPENGL_ARB 0x2010 90 #define WGL_DOUBLE_BUFFER_ARB 0x2011 91 #define WGL_STEREO_ARB 0x2012 92 #define WGL_PIXEL_TYPE_ARB 0x2013 93 #define WGL_COLOR_BITS_ARB 0x2014 94 #define WGL_RED_BITS_ARB 0x2015 95 #define WGL_RED_SHIFT_ARB 0x2016 96 #define WGL_GREEN_BITS_ARB 0x2017 97 #define WGL_GREEN_SHIFT_ARB 0x2018 98 #define WGL_BLUE_BITS_ARB 0x2019 99 #define WGL_BLUE_SHIFT_ARB 0x201A 100 #define WGL_ALPHA_BITS_ARB 0x201B 101 #define WGL_ALPHA_SHIFT_ARB 0x201C 102 #define WGL_ACCUM_BITS_ARB 0x201D 103 #define WGL_ACCUM_RED_BITS_ARB 0x201E 104 #define WGL_ACCUM_GREEN_BITS_ARB 0x201F 105 #define WGL_ACCUM_BLUE_BITS_ARB 0x2020 106 #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 107 #define WGL_DEPTH_BITS_ARB 0x2022 108 #define WGL_STENCIL_BITS_ARB 0x2023 109 #define WGL_AUX_BUFFERS_ARB 0x2024 110 #define WGL_NO_ACCELERATION_ARB 0x2025 111 #define WGL_GENERIC_ACCELERATION_ARB 0x2026 112 #define WGL_FULL_ACCELERATION_ARB 0x2027 113 #define WGL_SWAP_EXCHANGE_ARB 0x2028 114 #define WGL_SWAP_COPY_ARB 0x2029 115 #define WGL_SWAP_UNDEFINED_ARB 0x202A 116 #define WGL_TYPE_RGBA_ARB 0x202B 117 #define WGL_TYPE_COLORINDEX_ARB 0x202C 118 #endif 119 120 #ifndef WGL_ARB_make_current_read 121 #define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 122 #define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 123 #endif 124 125 #ifndef WGL_ARB_pbuffer 126 #define WGL_DRAW_TO_PBUFFER_ARB 0x202D 127 #define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E 128 #define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F 129 #define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 130 #define WGL_PBUFFER_LARGEST_ARB 0x2033 131 #define WGL_PBUFFER_WIDTH_ARB 0x2034 132 #define WGL_PBUFFER_HEIGHT_ARB 0x2035 133 #define WGL_PBUFFER_LOST_ARB 0x2036 134 #endif 135 136 #ifndef WGL_ARB_render_texture 137 #define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 138 #define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 139 #define WGL_TEXTURE_FORMAT_ARB 0x2072 140 #define WGL_TEXTURE_TARGET_ARB 0x2073 141 #define WGL_MIPMAP_TEXTURE_ARB 0x2074 142 #define WGL_TEXTURE_RGB_ARB 0x2075 143 #define WGL_TEXTURE_RGBA_ARB 0x2076 144 #define WGL_NO_TEXTURE_ARB 0x2077 145 #define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 146 #define WGL_TEXTURE_1D_ARB 0x2079 147 #define WGL_TEXTURE_2D_ARB 0x207A 148 #define WGL_MIPMAP_LEVEL_ARB 0x207B 149 #define WGL_CUBE_MAP_FACE_ARB 0x207C 150 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D 151 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E 152 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F 153 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 154 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 155 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 156 #define WGL_FRONT_LEFT_ARB 0x2083 157 #define WGL_FRONT_RIGHT_ARB 0x2084 158 #define WGL_BACK_LEFT_ARB 0x2085 159 #define WGL_BACK_RIGHT_ARB 0x2086 160 #define WGL_AUX0_ARB 0x2087 161 #define WGL_AUX1_ARB 0x2088 162 #define WGL_AUX2_ARB 0x2089 163 #define WGL_AUX3_ARB 0x208A 164 #define WGL_AUX4_ARB 0x208B 165 #define WGL_AUX5_ARB 0x208C 166 #define WGL_AUX6_ARB 0x208D 167 #define WGL_AUX7_ARB 0x208E 168 #define WGL_AUX8_ARB 0x208F 169 #define WGL_AUX9_ARB 0x2090 170 #endif 171 172 #ifndef WGL_ARB_pixel_format_float 173 #define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0 174 #endif 175 176 #ifndef WGL_EXT_make_current_read 177 #define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 178 #endif 179 180 #ifndef WGL_EXT_pixel_format 181 #define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000 182 #define WGL_DRAW_TO_WINDOW_EXT 0x2001 183 #define WGL_DRAW_TO_BITMAP_EXT 0x2002 184 #define WGL_ACCELERATION_EXT 0x2003 185 #define WGL_NEED_PALETTE_EXT 0x2004 186 #define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005 187 #define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006 188 #define WGL_SWAP_METHOD_EXT 0x2007 189 #define WGL_NUMBER_OVERLAYS_EXT 0x2008 190 #define WGL_NUMBER_UNDERLAYS_EXT 0x2009 191 #define WGL_TRANSPARENT_EXT 0x200A 192 #define WGL_TRANSPARENT_VALUE_EXT 0x200B 193 #define WGL_SHARE_DEPTH_EXT 0x200C 194 #define WGL_SHARE_STENCIL_EXT 0x200D 195 #define WGL_SHARE_ACCUM_EXT 0x200E 196 #define WGL_SUPPORT_GDI_EXT 0x200F 197 #define WGL_SUPPORT_OPENGL_EXT 0x2010 198 #define WGL_DOUBLE_BUFFER_EXT 0x2011 199 #define WGL_STEREO_EXT 0x2012 200 #define WGL_PIXEL_TYPE_EXT 0x2013 201 #define WGL_COLOR_BITS_EXT 0x2014 202 #define WGL_RED_BITS_EXT 0x2015 203 #define WGL_RED_SHIFT_EXT 0x2016 204 #define WGL_GREEN_BITS_EXT 0x2017 205 #define WGL_GREEN_SHIFT_EXT 0x2018 206 #define WGL_BLUE_BITS_EXT 0x2019 207 #define WGL_BLUE_SHIFT_EXT 0x201A 208 #define WGL_ALPHA_BITS_EXT 0x201B 209 #define WGL_ALPHA_SHIFT_EXT 0x201C 210 #define WGL_ACCUM_BITS_EXT 0x201D 211 #define WGL_ACCUM_RED_BITS_EXT 0x201E 212 #define WGL_ACCUM_GREEN_BITS_EXT 0x201F 213 #define WGL_ACCUM_BLUE_BITS_EXT 0x2020 214 #define WGL_ACCUM_ALPHA_BITS_EXT 0x2021 215 #define WGL_DEPTH_BITS_EXT 0x2022 216 #define WGL_STENCIL_BITS_EXT 0x2023 217 #define WGL_AUX_BUFFERS_EXT 0x2024 218 #define WGL_NO_ACCELERATION_EXT 0x2025 219 #define WGL_GENERIC_ACCELERATION_EXT 0x2026 220 #define WGL_FULL_ACCELERATION_EXT 0x2027 221 #define WGL_SWAP_EXCHANGE_EXT 0x2028 222 #define WGL_SWAP_COPY_EXT 0x2029 223 #define WGL_SWAP_UNDEFINED_EXT 0x202A 224 #define WGL_TYPE_RGBA_EXT 0x202B 225 #define WGL_TYPE_COLORINDEX_EXT 0x202C 226 #endif 227 228 #ifndef WGL_EXT_pbuffer 229 #define WGL_DRAW_TO_PBUFFER_EXT 0x202D 230 #define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E 231 #define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F 232 #define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030 233 #define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031 234 #define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032 235 #define WGL_PBUFFER_LARGEST_EXT 0x2033 236 #define WGL_PBUFFER_WIDTH_EXT 0x2034 237 #define WGL_PBUFFER_HEIGHT_EXT 0x2035 238 #endif 239 240 #ifndef WGL_EXT_depth_float 241 #define WGL_DEPTH_FLOAT_EXT 0x2040 242 #endif 243 244 #ifndef WGL_3DFX_multisample 245 #define WGL_SAMPLE_BUFFERS_3DFX 0x2060 246 #define WGL_SAMPLES_3DFX 0x2061 247 #endif 248 249 #ifndef WGL_EXT_multisample 250 #define WGL_SAMPLE_BUFFERS_EXT 0x2041 251 #define WGL_SAMPLES_EXT 0x2042 252 #endif 253 254 #ifndef WGL_I3D_digital_video_control 255 #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050 256 #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051 257 #define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052 258 #define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053 259 #endif 260 261 #ifndef WGL_I3D_gamma 262 #define WGL_GAMMA_TABLE_SIZE_I3D 0x204E 263 #define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F 264 #endif 265 266 #ifndef WGL_I3D_genlock 267 #define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 268 #define WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D 0x2045 269 #define WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D 0x2046 270 #define WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D 0x2047 271 #define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 272 #define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 273 #define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A 274 #define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B 275 #define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C 276 #endif 277 278 #ifndef WGL_I3D_image_buffer 279 #define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 280 #define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 281 #endif 282 283 #ifndef WGL_I3D_swap_frame_lock 284 #endif 285 286 #ifndef WGL_NV_render_depth_texture 287 #define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 288 #define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 289 #define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 290 #define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 291 #define WGL_DEPTH_COMPONENT_NV 0x20A7 292 #endif 293 294 #ifndef WGL_NV_render_texture_rectangle 295 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0 296 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1 297 #define WGL_TEXTURE_RECTANGLE_NV 0x20A2 298 #endif 299 300 #ifndef WGL_ATI_pixel_format_float 301 #define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 302 #endif 303 304 #ifndef WGL_NV_float_buffer 305 #define WGL_FLOAT_COMPONENTS_NV 0x20B0 306 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1 307 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2 308 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3 309 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4 310 #define WGL_TEXTURE_FLOAT_R_NV 0x20B5 311 #define WGL_TEXTURE_FLOAT_RG_NV 0x20B6 312 #define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7 313 #define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 314 #endif 315 316 #ifndef WGL_3DL_stereo_control 317 #define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055 318 #define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056 319 #define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057 320 #define WGL_STEREO_POLARITY_INVERT_3DL 0x2058 321 #endif 322 323 #ifndef WGL_EXT_pixel_format_packed_float 324 #define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8 325 #endif 326 327 #ifndef WGL_EXT_framebuffer_sRGB 328 #define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9 329 #endif 330 331 332 /*************************************************************/ 333 334 #ifndef WGL_ARB_pbuffer 335 DECLARE_HANDLE(HPBUFFERARB); 336 #endif 337 #ifndef WGL_EXT_pbuffer 338 DECLARE_HANDLE(HPBUFFEREXT); 339 #endif 340 341 #ifndef WGL_ARB_buffer_region 342 #define WGL_ARB_buffer_region 1 343 #ifdef WGL_WGLEXT_PROTOTYPES 344 extern HANDLE WINAPI wglCreateBufferRegionARB (HDC, int, UINT); 345 extern VOID WINAPI wglDeleteBufferRegionARB (HANDLE); 346 extern BOOL WINAPI wglSaveBufferRegionARB (HANDLE, int, int, int, int); 347 extern BOOL WINAPI wglRestoreBufferRegionARB (HANDLE, int, int, int, int, int, int); 348 #endif /* WGL_WGLEXT_PROTOTYPES */ 349 typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType); 350 typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion); 351 typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height); 352 typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); 353 #endif 354 355 #ifndef WGL_ARB_multisample 356 #define WGL_ARB_multisample 1 357 #endif 358 359 #ifndef WGL_ARB_extensions_string 360 #define WGL_ARB_extensions_string 1 361 #ifdef WGL_WGLEXT_PROTOTYPES 362 extern const char * WINAPI wglGetExtensionsStringARB (HDC); 363 #endif /* WGL_WGLEXT_PROTOTYPES */ 364 typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); 365 #endif 366 367 #ifndef WGL_ARB_pixel_format 368 #define WGL_ARB_pixel_format 1 369 #ifdef WGL_WGLEXT_PROTOTYPES 370 extern BOOL WINAPI wglGetPixelFormatAttribivARB (HDC, int, int, UINT, const int *, int *); 371 extern BOOL WINAPI wglGetPixelFormatAttribfvARB (HDC, int, int, UINT, const int *, FLOAT *); 372 extern BOOL WINAPI wglChoosePixelFormatARB (HDC, const int *, const FLOAT *, UINT, int *, UINT *); 373 #endif /* WGL_WGLEXT_PROTOTYPES */ 374 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues); 375 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues); 376 typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); 377 #endif 378 379 #ifndef WGL_ARB_make_current_read 380 #define WGL_ARB_make_current_read 1 381 #ifdef WGL_WGLEXT_PROTOTYPES 382 extern BOOL WINAPI wglMakeContextCurrentARB (HDC, HDC, HGLRC); 383 extern HDC WINAPI wglGetCurrentReadDCARB (void); 384 #endif /* WGL_WGLEXT_PROTOTYPES */ 385 typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); 386 typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void); 387 #endif 388 389 #ifndef WGL_ARB_pbuffer 390 #define WGL_ARB_pbuffer 1 391 #ifdef WGL_WGLEXT_PROTOTYPES 392 extern HPBUFFERARB WINAPI wglCreatePbufferARB (HDC, int, int, int, const int *); 393 extern HDC WINAPI wglGetPbufferDCARB (HPBUFFERARB); 394 extern int WINAPI wglReleasePbufferDCARB (HPBUFFERARB, HDC); 395 extern BOOL WINAPI wglDestroyPbufferARB (HPBUFFERARB); 396 extern BOOL WINAPI wglQueryPbufferARB (HPBUFFERARB, int, int *); 397 #endif /* WGL_WGLEXT_PROTOTYPES */ 398 typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); 399 typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer); 400 typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC); 401 typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer); 402 typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue); 403 #endif 404 405 #ifndef WGL_ARB_render_texture 406 #define WGL_ARB_render_texture 1 407 #ifdef WGL_WGLEXT_PROTOTYPES 408 extern BOOL WINAPI wglBindTexImageARB (HPBUFFERARB, int); 409 extern BOOL WINAPI wglReleaseTexImageARB (HPBUFFERARB, int); 410 extern BOOL WINAPI wglSetPbufferAttribARB (HPBUFFERARB, const int *); 411 #endif /* WGL_WGLEXT_PROTOTYPES */ 412 typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); 413 typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); 414 typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList); 415 #endif 416 417 #ifndef WGL_ARB_pixel_format_float 418 #define WGL_ARB_pixel_format_float 1 419 #endif 420 421 #ifndef WGL_EXT_display_color_table 422 #define WGL_EXT_display_color_table 1 423 #ifdef WGL_WGLEXT_PROTOTYPES 424 extern GLboolean WINAPI wglCreateDisplayColorTableEXT (GLushort); 425 extern GLboolean WINAPI wglLoadDisplayColorTableEXT (const GLushort *, GLuint); 426 extern GLboolean WINAPI wglBindDisplayColorTableEXT (GLushort); 427 extern VOID WINAPI wglDestroyDisplayColorTableEXT (GLushort); 428 #endif /* WGL_WGLEXT_PROTOTYPES */ 429 typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); 430 typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort *table, GLuint length); 431 typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); 432 typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); 433 #endif 434 435 #ifndef WGL_EXT_extensions_string 436 #define WGL_EXT_extensions_string 1 437 #ifdef WGL_WGLEXT_PROTOTYPES 438 extern const char * WINAPI wglGetExtensionsStringEXT (void); 439 #endif /* WGL_WGLEXT_PROTOTYPES */ 440 typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); 441 #endif 442 443 #ifndef WGL_EXT_make_current_read 444 #define WGL_EXT_make_current_read 1 445 #ifdef WGL_WGLEXT_PROTOTYPES 446 extern BOOL WINAPI wglMakeContextCurrentEXT (HDC, HDC, HGLRC); 447 extern HDC WINAPI wglGetCurrentReadDCEXT (void); 448 #endif /* WGL_WGLEXT_PROTOTYPES */ 449 typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); 450 typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void); 451 #endif 452 453 #ifndef WGL_EXT_pbuffer 454 #define WGL_EXT_pbuffer 1 455 #ifdef WGL_WGLEXT_PROTOTYPES 456 extern HPBUFFEREXT WINAPI wglCreatePbufferEXT (HDC, int, int, int, const int *); 457 extern HDC WINAPI wglGetPbufferDCEXT (HPBUFFEREXT); 458 extern int WINAPI wglReleasePbufferDCEXT (HPBUFFEREXT, HDC); 459 extern BOOL WINAPI wglDestroyPbufferEXT (HPBUFFEREXT); 460 extern BOOL WINAPI wglQueryPbufferEXT (HPBUFFEREXT, int, int *); 461 #endif /* WGL_WGLEXT_PROTOTYPES */ 462 typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); 463 typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer); 464 typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC); 465 typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer); 466 typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue); 467 #endif 468 469 #ifndef WGL_EXT_pixel_format 470 #define WGL_EXT_pixel_format 1 471 #ifdef WGL_WGLEXT_PROTOTYPES 472 extern BOOL WINAPI wglGetPixelFormatAttribivEXT (HDC, int, int, UINT, int *, int *); 473 extern BOOL WINAPI wglGetPixelFormatAttribfvEXT (HDC, int, int, UINT, int *, FLOAT *); 474 extern BOOL WINAPI wglChoosePixelFormatEXT (HDC, const int *, const FLOAT *, UINT, int *, UINT *); 475 #endif /* WGL_WGLEXT_PROTOTYPES */ 476 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues); 477 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues); 478 typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); 479 #endif 480 481 #ifndef WGL_EXT_swap_control 482 #define WGL_EXT_swap_control 1 483 #ifdef WGL_WGLEXT_PROTOTYPES 484 extern BOOL WINAPI wglSwapIntervalEXT (int); 485 extern int WINAPI wglGetSwapIntervalEXT (void); 486 #endif /* WGL_WGLEXT_PROTOTYPES */ 487 typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); 488 typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void); 489 #endif 490 491 #ifndef WGL_EXT_depth_float 492 #define WGL_EXT_depth_float 1 493 #endif 494 495 #ifndef WGL_NV_vertex_array_range 496 #define WGL_NV_vertex_array_range 1 497 #ifdef WGL_WGLEXT_PROTOTYPES 498 extern void* WINAPI wglAllocateMemoryNV (GLsizei, GLfloat, GLfloat, GLfloat); 499 extern void WINAPI wglFreeMemoryNV (void *); 500 #endif /* WGL_WGLEXT_PROTOTYPES */ 501 typedef void* (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); 502 typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer); 503 #endif 504 505 #ifndef WGL_3DFX_multisample 506 #define WGL_3DFX_multisample 1 507 #endif 508 509 #ifndef WGL_EXT_multisample 510 #define WGL_EXT_multisample 1 511 #endif 512 513 #ifndef WGL_OML_sync_control 514 #define WGL_OML_sync_control 1 515 #ifdef WGL_WGLEXT_PROTOTYPES 516 extern BOOL WINAPI wglGetSyncValuesOML (HDC, INT64 *, INT64 *, INT64 *); 517 extern BOOL WINAPI wglGetMscRateOML (HDC, INT32 *, INT32 *); 518 extern INT64 WINAPI wglSwapBuffersMscOML (HDC, INT64, INT64, INT64); 519 extern INT64 WINAPI wglSwapLayerBuffersMscOML (HDC, int, INT64, INT64, INT64); 520 extern BOOL WINAPI wglWaitForMscOML (HDC, INT64, INT64, INT64, INT64 *, INT64 *, INT64 *); 521 extern BOOL WINAPI wglWaitForSbcOML (HDC, INT64, INT64 *, INT64 *, INT64 *); 522 #endif /* WGL_WGLEXT_PROTOTYPES */ 523 typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc); 524 typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32 *numerator, INT32 *denominator); 525 typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); 526 typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); 527 typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc); 528 typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc); 529 #endif 530 531 #ifndef WGL_I3D_digital_video_control 532 #define WGL_I3D_digital_video_control 1 533 #ifdef WGL_WGLEXT_PROTOTYPES 534 extern BOOL WINAPI wglGetDigitalVideoParametersI3D (HDC, int, int *); 535 extern BOOL WINAPI wglSetDigitalVideoParametersI3D (HDC, int, const int *); 536 #endif /* WGL_WGLEXT_PROTOTYPES */ 537 typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue); 538 typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue); 539 #endif 540 541 #ifndef WGL_I3D_gamma 542 #define WGL_I3D_gamma 1 543 #ifdef WGL_WGLEXT_PROTOTYPES 544 extern BOOL WINAPI wglGetGammaTableParametersI3D (HDC, int, int *); 545 extern BOOL WINAPI wglSetGammaTableParametersI3D (HDC, int, const int *); 546 extern BOOL WINAPI wglGetGammaTableI3D (HDC, int, USHORT *, USHORT *, USHORT *); 547 extern BOOL WINAPI wglSetGammaTableI3D (HDC, int, const USHORT *, const USHORT *, const USHORT *); 548 #endif /* WGL_WGLEXT_PROTOTYPES */ 549 typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue); 550 typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue); 551 typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue); 552 typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue); 553 #endif 554 555 #ifndef WGL_I3D_genlock 556 #define WGL_I3D_genlock 1 557 #ifdef WGL_WGLEXT_PROTOTYPES 558 extern BOOL WINAPI wglEnableGenlockI3D (HDC); 559 extern BOOL WINAPI wglDisableGenlockI3D (HDC); 560 extern BOOL WINAPI wglIsEnabledGenlockI3D (HDC, BOOL *); 561 extern BOOL WINAPI wglGenlockSourceI3D (HDC, UINT); 562 extern BOOL WINAPI wglGetGenlockSourceI3D (HDC, UINT *); 563 extern BOOL WINAPI wglGenlockSourceEdgeI3D (HDC, UINT); 564 extern BOOL WINAPI wglGetGenlockSourceEdgeI3D (HDC, UINT *); 565 extern BOOL WINAPI wglGenlockSampleRateI3D (HDC, UINT); 566 extern BOOL WINAPI wglGetGenlockSampleRateI3D (HDC, UINT *); 567 extern BOOL WINAPI wglGenlockSourceDelayI3D (HDC, UINT); 568 extern BOOL WINAPI wglGetGenlockSourceDelayI3D (HDC, UINT *); 569 extern BOOL WINAPI wglQueryGenlockMaxSourceDelayI3D (HDC, UINT *, UINT *); 570 #endif /* WGL_WGLEXT_PROTOTYPES */ 571 typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC); 572 typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC); 573 typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL *pFlag); 574 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource); 575 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT *uSource); 576 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge); 577 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT *uEdge); 578 typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate); 579 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT *uRate); 580 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay); 581 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT *uDelay); 582 typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay); 583 #endif 584 585 #ifndef WGL_I3D_image_buffer 586 #define WGL_I3D_image_buffer 1 587 #ifdef WGL_WGLEXT_PROTOTYPES 588 extern LPVOID WINAPI wglCreateImageBufferI3D (HDC, DWORD, UINT); 589 extern BOOL WINAPI wglDestroyImageBufferI3D (HDC, LPVOID); 590 extern BOOL WINAPI wglAssociateImageBufferEventsI3D (HDC, const HANDLE *, const LPVOID *, const DWORD *, UINT); 591 extern BOOL WINAPI wglReleaseImageBufferEventsI3D (HDC, const LPVOID *, UINT); 592 #endif /* WGL_WGLEXT_PROTOTYPES */ 593 typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags); 594 typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress); 595 typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count); 596 typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID *pAddress, UINT count); 597 #endif 598 599 #ifndef WGL_I3D_swap_frame_lock 600 #define WGL_I3D_swap_frame_lock 1 601 #ifdef WGL_WGLEXT_PROTOTYPES 602 extern BOOL WINAPI wglEnableFrameLockI3D (void); 603 extern BOOL WINAPI wglDisableFrameLockI3D (void); 604 extern BOOL WINAPI wglIsEnabledFrameLockI3D (BOOL *); 605 extern BOOL WINAPI wglQueryFrameLockMasterI3D (BOOL *); 606 #endif /* WGL_WGLEXT_PROTOTYPES */ 607 typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void); 608 typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void); 609 typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL *pFlag); 610 typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL *pFlag); 611 #endif 612 613 #ifndef WGL_I3D_swap_frame_usage 614 #define WGL_I3D_swap_frame_usage 1 615 #ifdef WGL_WGLEXT_PROTOTYPES 616 extern BOOL WINAPI wglGetFrameUsageI3D (float *); 617 extern BOOL WINAPI wglBeginFrameTrackingI3D (void); 618 extern BOOL WINAPI wglEndFrameTrackingI3D (void); 619 extern BOOL WINAPI wglQueryFrameTrackingI3D (DWORD *, DWORD *, float *); 620 #endif /* WGL_WGLEXT_PROTOTYPES */ 621 typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float *pUsage); 622 typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void); 623 typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void); 624 typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); 625 #endif 626 627 #ifndef WGL_ATI_pixel_format_float 628 #define WGL_ATI_pixel_format_float 1 629 #endif 630 631 #ifndef WGL_NV_float_buffer 632 #define WGL_NV_float_buffer 1 633 #endif 634 635 #ifndef WGL_EXT_pixel_format_packed_float 636 #define WGL_EXT_pixel_format_packed_float 1 637 #endif 638 639 #ifndef WGL_EXT_framebuffer_sRGB 640 #define WGL_EXT_framebuffer_sRGB 1 641 #endif 642 643 644 #ifdef __cplusplus 645 } 646 #endif 647 648 #endif 649