1 #ifndef __wglext_h_ 2 #define __wglext_h_ 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 /* 9 ** License Applicability. Except to the extent portions of this file are 10 ** made subject to an alternative license as permitted in the SGI Free 11 ** Software License B, Version 1.1 (the "License"), the contents of this 12 ** file are subject only to the provisions of the License. You may not use 13 ** this file except in compliance with the License. You may obtain a copy 14 ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 15 ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: 16 ** 17 ** http://oss.sgi.com/projects/FreeB 18 ** 19 ** Note that, as provided in the License, the Software is distributed on an 20 ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS 21 ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND 22 ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A 23 ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. 24 ** 25 ** Original Code. The Original Code is: OpenGL Sample Implementation, 26 ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, 27 ** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. 28 ** Copyright in any portions created by third parties is as indicated 29 ** elsewhere herein. All Rights Reserved. 30 ** 31 ** Additional Notice Provisions: This software was created using the 32 ** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has 33 ** not been independently verified as being compliant with the OpenGL(R) 34 ** version 1.2.1 Specification. 35 */ 36 37 #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) 38 #define WIN32_LEAN_AND_MEAN 1 39 #include <windows.h> 40 #endif 41 42 #ifndef APIENTRY 43 #define APIENTRY 44 #endif 45 46 /*************************************************************/ 47 48 /* Header file version number */ 49 #define WGL_WGLEXT_VERSION 1 50 51 #ifndef WGL_ARB_buffer_region 52 #define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 53 #define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 54 #define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 55 #define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 56 #endif 57 58 #ifndef WGL_ARB_extensions_string 59 #endif 60 61 #ifndef WGL_ARB_pixel_format 62 #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 63 #define WGL_DRAW_TO_WINDOW_ARB 0x2001 64 #define WGL_DRAW_TO_BITMAP_ARB 0x2002 65 #define WGL_ACCELERATION_ARB 0x2003 66 #define WGL_NEED_PALETTE_ARB 0x2004 67 #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 68 #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 69 #define WGL_SWAP_METHOD_ARB 0x2007 70 #define WGL_NUMBER_OVERLAYS_ARB 0x2008 71 #define WGL_NUMBER_UNDERLAYS_ARB 0x2009 72 #define WGL_TRANSPARENT_ARB 0x200A 73 #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 74 #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 75 #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 76 #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A 77 #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B 78 #define WGL_SHARE_DEPTH_ARB 0x200C 79 #define WGL_SHARE_STENCIL_ARB 0x200D 80 #define WGL_SHARE_ACCUM_ARB 0x200E 81 #define WGL_SUPPORT_GDI_ARB 0x200F 82 #define WGL_SUPPORT_OPENGL_ARB 0x2010 83 #define WGL_DOUBLE_BUFFER_ARB 0x2011 84 #define WGL_STEREO_ARB 0x2012 85 #define WGL_PIXEL_TYPE_ARB 0x2013 86 #define WGL_COLOR_BITS_ARB 0x2014 87 #define WGL_RED_BITS_ARB 0x2015 88 #define WGL_RED_SHIFT_ARB 0x2016 89 #define WGL_GREEN_BITS_ARB 0x2017 90 #define WGL_GREEN_SHIFT_ARB 0x2018 91 #define WGL_BLUE_BITS_ARB 0x2019 92 #define WGL_BLUE_SHIFT_ARB 0x201A 93 #define WGL_ALPHA_BITS_ARB 0x201B 94 #define WGL_ALPHA_SHIFT_ARB 0x201C 95 #define WGL_ACCUM_BITS_ARB 0x201D 96 #define WGL_ACCUM_RED_BITS_ARB 0x201E 97 #define WGL_ACCUM_GREEN_BITS_ARB 0x201F 98 #define WGL_ACCUM_BLUE_BITS_ARB 0x2020 99 #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 100 #define WGL_DEPTH_BITS_ARB 0x2022 101 #define WGL_STENCIL_BITS_ARB 0x2023 102 #define WGL_AUX_BUFFERS_ARB 0x2024 103 #define WGL_NO_ACCELERATION_ARB 0x2025 104 #define WGL_GENERIC_ACCELERATION_ARB 0x2026 105 #define WGL_FULL_ACCELERATION_ARB 0x2027 106 #define WGL_SWAP_EXCHANGE_ARB 0x2028 107 #define WGL_SWAP_COPY_ARB 0x2029 108 #define WGL_SWAP_UNDEFINED_ARB 0x202A 109 #define WGL_TYPE_RGBA_ARB 0x202B 110 #define WGL_TYPE_COLORINDEX_ARB 0x202C 111 #endif 112 113 #ifndef WGL_ARB_make_current_read 114 #define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 115 #define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 116 #endif 117 118 #ifndef WGL_ARB_pbuffer 119 #define WGL_DRAW_TO_PBUFFER_ARB 0x202D 120 #define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E 121 #define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F 122 #define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 123 #define WGL_PBUFFER_LARGEST_ARB 0x2033 124 #define WGL_PBUFFER_WIDTH_ARB 0x2034 125 #define WGL_PBUFFER_HEIGHT_ARB 0x2035 126 #define WGL_PBUFFER_LOST_ARB 0x2036 127 #endif 128 129 #ifndef WGL_ARB_render_texture 130 #define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 131 #define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 132 #define WGL_TEXTURE_FORMAT_ARB 0x2072 133 #define WGL_TEXTURE_TARGET_ARB 0x2073 134 #define WGL_MIPMAP_TEXTURE_ARB 0x2074 135 #define WGL_TEXTURE_RGB_ARB 0x2075 136 #define WGL_TEXTURE_RGBA_ARB 0x2076 137 #define WGL_NO_TEXTURE_ARB 0x2077 138 #define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 139 #define WGL_TEXTURE_1D_ARB 0x2079 140 #define WGL_TEXTURE_2D_ARB 0x207A 141 #define WGL_MIPMAP_LEVEL_ARB 0x207B 142 #define WGL_CUBE_MAP_FACE_ARB 0x207C 143 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D 144 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E 145 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F 146 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 147 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 148 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 149 #define WGL_FRONT_LEFT_ARB 0x2083 150 #define WGL_FRONT_RIGHT_ARB 0x2084 151 #define WGL_BACK_LEFT_ARB 0x2085 152 #define WGL_BACK_RIGHT_ARB 0x2086 153 #define WGL_AUX0_ARB 0x2087 154 #define WGL_AUX1_ARB 0x2088 155 #define WGL_AUX2_ARB 0x2089 156 #define WGL_AUX3_ARB 0x208A 157 #define WGL_AUX4_ARB 0x208B 158 #define WGL_AUX5_ARB 0x208C 159 #define WGL_AUX6_ARB 0x208D 160 #define WGL_AUX7_ARB 0x208E 161 #define WGL_AUX8_ARB 0x208F 162 #define WGL_AUX9_ARB 0x2090 163 #endif 164 165 #ifndef WGL_EXT_make_current_read 166 #define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 167 #endif 168 169 #ifndef WGL_EXT_pixel_format 170 #define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000 171 #define WGL_DRAW_TO_WINDOW_EXT 0x2001 172 #define WGL_DRAW_TO_BITMAP_EXT 0x2002 173 #define WGL_ACCELERATION_EXT 0x2003 174 #define WGL_NEED_PALETTE_EXT 0x2004 175 #define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005 176 #define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006 177 #define WGL_SWAP_METHOD_EXT 0x2007 178 #define WGL_NUMBER_OVERLAYS_EXT 0x2008 179 #define WGL_NUMBER_UNDERLAYS_EXT 0x2009 180 #define WGL_TRANSPARENT_EXT 0x200A 181 #define WGL_TRANSPARENT_VALUE_EXT 0x200B 182 #define WGL_SHARE_DEPTH_EXT 0x200C 183 #define WGL_SHARE_STENCIL_EXT 0x200D 184 #define WGL_SHARE_ACCUM_EXT 0x200E 185 #define WGL_SUPPORT_GDI_EXT 0x200F 186 #define WGL_SUPPORT_OPENGL_EXT 0x2010 187 #define WGL_DOUBLE_BUFFER_EXT 0x2011 188 #define WGL_STEREO_EXT 0x2012 189 #define WGL_PIXEL_TYPE_EXT 0x2013 190 #define WGL_COLOR_BITS_EXT 0x2014 191 #define WGL_RED_BITS_EXT 0x2015 192 #define WGL_RED_SHIFT_EXT 0x2016 193 #define WGL_GREEN_BITS_EXT 0x2017 194 #define WGL_GREEN_SHIFT_EXT 0x2018 195 #define WGL_BLUE_BITS_EXT 0x2019 196 #define WGL_BLUE_SHIFT_EXT 0x201A 197 #define WGL_ALPHA_BITS_EXT 0x201B 198 #define WGL_ALPHA_SHIFT_EXT 0x201C 199 #define WGL_ACCUM_BITS_EXT 0x201D 200 #define WGL_ACCUM_RED_BITS_EXT 0x201E 201 #define WGL_ACCUM_GREEN_BITS_EXT 0x201F 202 #define WGL_ACCUM_BLUE_BITS_EXT 0x2020 203 #define WGL_ACCUM_ALPHA_BITS_EXT 0x2021 204 #define WGL_DEPTH_BITS_EXT 0x2022 205 #define WGL_STENCIL_BITS_EXT 0x2023 206 #define WGL_AUX_BUFFERS_EXT 0x2024 207 #define WGL_NO_ACCELERATION_EXT 0x2025 208 #define WGL_GENERIC_ACCELERATION_EXT 0x2026 209 #define WGL_FULL_ACCELERATION_EXT 0x2027 210 #define WGL_SWAP_EXCHANGE_EXT 0x2028 211 #define WGL_SWAP_COPY_EXT 0x2029 212 #define WGL_SWAP_UNDEFINED_EXT 0x202A 213 #define WGL_TYPE_RGBA_EXT 0x202B 214 #define WGL_TYPE_COLORINDEX_EXT 0x202C 215 #endif 216 217 #ifndef WGL_EXT_pbuffer 218 #define WGL_DRAW_TO_PBUFFER_EXT 0x202D 219 #define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E 220 #define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F 221 #define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030 222 #define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031 223 #define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032 224 #define WGL_PBUFFER_LARGEST_EXT 0x2033 225 #define WGL_PBUFFER_WIDTH_EXT 0x2034 226 #define WGL_PBUFFER_HEIGHT_EXT 0x2035 227 #endif 228 229 #ifndef WGL_EXT_depth_float 230 #define WGL_DEPTH_FLOAT_EXT 0x2040 231 #endif 232 233 #ifndef WGL_NV_render_texture_rectangle 234 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0 235 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1 236 #define WGL_TEXTURE_RECTANGLE_NV 0x20A2 237 #endif 238 239 #ifndef WGL_NV_render_depth_texture 240 #define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 241 #define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 242 #define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 243 #define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 244 #define WGL_DEPTH_COMPONENT_NV 0x20A7 245 #endif 246 247 #ifndef WGL_3DFX_multisample 248 #define WGL_SAMPLE_BUFFERS_3DFX 0x2060 249 #define WGL_SAMPLES_3DFX 0x2061 250 #endif 251 252 #ifndef WGL_EXT_multisample 253 #define WGL_SAMPLE_BUFFERS_EXT 0x2041 254 #define WGL_SAMPLES_EXT 0x2042 255 #endif 256 257 #ifndef WGL_I3D_unknown_genlock_extension_name 258 #define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 259 #define WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D 0x2045 260 #define WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D 0x2046 261 #define WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D 0x2047 262 #define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 263 #define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 264 #define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A 265 #define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B 266 #define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C 267 #endif 268 269 #ifndef WGL_I3D_unknown_gamma_extension_name 270 #define WGL_GAMMA_TABLE_SIZE_I3D 0x204E 271 #define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F 272 #endif 273 274 #ifndef WGL_I3D_unknown_digital_video_cursor_extension_name 275 #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050 276 #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051 277 #define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052 278 #define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053 279 #endif 280 281 282 /*************************************************************/ 283 284 #ifndef WGL_ARB_pbuffer 285 DECLARE_HANDLE(HPBUFFERARB); 286 #endif 287 #ifndef WGL_EXT_pbuffer 288 DECLARE_HANDLE(HPBUFFEREXT); 289 #endif 290 291 #ifndef WGL_ARB_buffer_region 292 #define WGL_ARB_buffer_region 1 293 #ifdef WGL_WGLEXT_PROTOTYPES 294 extern HANDLE WINAPI wglCreateBufferRegionARB (HDC, int, UINT); 295 extern VOID WINAPI wglDeleteBufferRegionARB (HANDLE); 296 extern BOOL WINAPI wglSaveBufferRegionARB (HANDLE, int, int, int, int); 297 extern BOOL WINAPI wglRestoreBufferRegionARB (HANDLE, int, int, int, int, int, int); 298 #endif /* WGL_WGLEXT_PROTOTYPES */ 299 typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType); 300 typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion); 301 typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height); 302 typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); 303 #endif 304 305 #ifndef WGL_ARB_extensions_string 306 #define WGL_ARB_extensions_string 1 307 #ifdef WGL_WGLEXT_PROTOTYPES 308 extern const char * WINAPI wglGetExtensionsStringARB (HDC); 309 #endif /* WGL_WGLEXT_PROTOTYPES */ 310 typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); 311 #endif 312 313 #ifndef WGL_ARB_pixel_format 314 #define WGL_ARB_pixel_format 1 315 #ifdef WGL_WGLEXT_PROTOTYPES 316 extern BOOL WINAPI wglGetPixelFormatAttribivARB (HDC, int, int, UINT, const int *, int *); 317 extern BOOL WINAPI wglGetPixelFormatAttribfvARB (HDC, int, int, UINT, const int *, FLOAT *); 318 extern BOOL WINAPI wglChoosePixelFormatARB (HDC, const int *, const FLOAT *, UINT, int *, UINT *); 319 #endif /* WGL_WGLEXT_PROTOTYPES */ 320 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues); 321 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues); 322 typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); 323 #endif 324 325 #ifndef WGL_ARB_make_current_read 326 #define WGL_ARB_make_current_read 1 327 #ifdef WGL_WGLEXT_PROTOTYPES 328 extern BOOL WINAPI wglMakeContextCurrentARB (HDC, HDC, HGLRC); 329 extern HDC WINAPI wglGetCurrentReadDCARB (void); 330 #endif /* WGL_WGLEXT_PROTOTYPES */ 331 typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); 332 typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void); 333 #endif 334 335 #ifndef WGL_ARB_pbuffer 336 #define WGL_ARB_pbuffer 1 337 #ifdef WGL_WGLEXT_PROTOTYPES 338 extern HPBUFFERARB WINAPI wglCreatePbufferARB (HDC, int, int, int, const int *); 339 extern HDC WINAPI wglGetPbufferDCARB (HPBUFFERARB); 340 extern int WINAPI wglReleasePbufferDCARB (HPBUFFERARB, HDC); 341 extern BOOL WINAPI wglDestroyPbufferARB (HPBUFFERARB); 342 extern BOOL WINAPI wglQueryPbufferARB (HPBUFFERARB, int, int *); 343 #endif /* WGL_WGLEXT_PROTOTYPES */ 344 typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); 345 typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer); 346 typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC); 347 typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer); 348 typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue); 349 #endif 350 351 #ifndef WGL_EXT_display_color_table 352 #define WGL_EXT_display_color_table 1 353 #ifdef WGL_WGLEXT_PROTOTYPES 354 extern GLboolean WINAPI wglCreateDisplayColorTableEXT (GLushort); 355 extern GLboolean WINAPI wglLoadDisplayColorTableEXT (const GLushort *, GLuint); 356 extern GLboolean WINAPI wglBindDisplayColorTableEXT (GLushort); 357 extern VOID WINAPI wglDestroyDisplayColorTableEXT (GLushort); 358 #endif /* WGL_WGLEXT_PROTOTYPES */ 359 typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); 360 typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort *table, GLuint length); 361 typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); 362 typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); 363 #endif 364 365 #ifndef WGL_EXT_extensions_string 366 #define WGL_EXT_extensions_string 1 367 #ifdef WGL_WGLEXT_PROTOTYPES 368 extern const char * WINAPI wglGetExtensionsStringEXT (void); 369 #endif /* WGL_WGLEXT_PROTOTYPES */ 370 typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); 371 #endif 372 373 #ifndef WGL_EXT_make_current_read 374 #define WGL_EXT_make_current_read 1 375 #ifdef WGL_WGLEXT_PROTOTYPES 376 extern BOOL WINAPI wglMakeContextCurrentEXT (HDC, HDC, HGLRC); 377 extern HDC WINAPI wglGetCurrentReadDCEXT (void); 378 #endif /* WGL_WGLEXT_PROTOTYPES */ 379 typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); 380 typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void); 381 #endif 382 383 #ifndef WGL_EXT_pbuffer 384 #define WGL_EXT_pbuffer 1 385 #ifdef WGL_WGLEXT_PROTOTYPES 386 extern HPBUFFEREXT WINAPI wglCreatePbufferEXT (HDC, int, int, int, const int *); 387 extern HDC WINAPI wglGetPbufferDCEXT (HPBUFFEREXT); 388 extern int WINAPI wglReleasePbufferDCEXT (HPBUFFEREXT, HDC); 389 extern BOOL WINAPI wglDestroyPbufferEXT (HPBUFFEREXT); 390 extern BOOL WINAPI wglQueryPbufferEXT (HPBUFFEREXT, int, int *); 391 #endif /* WGL_WGLEXT_PROTOTYPES */ 392 typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); 393 typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer); 394 typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC); 395 typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer); 396 typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue); 397 #endif 398 399 #ifndef WGL_EXT_pixel_format 400 #define WGL_EXT_pixel_format 1 401 #ifdef WGL_WGLEXT_PROTOTYPES 402 extern BOOL WINAPI wglGetPixelFormatAttribivEXT (HDC, int, int, UINT, int *, int *); 403 extern BOOL WINAPI wglGetPixelFormatAttribfvEXT (HDC, int, int, UINT, int *, FLOAT *); 404 extern BOOL WINAPI wglChoosePixelFormatEXT (HDC, const int *, const FLOAT *, UINT, int *, UINT *); 405 #endif /* WGL_WGLEXT_PROTOTYPES */ 406 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues); 407 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues); 408 typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); 409 #endif 410 411 #ifndef WGL_EXT_swap_control 412 #define WGL_EXT_swap_control 1 413 #ifdef WGL_WGLEXT_PROTOTYPES 414 extern BOOL WINAPI wglSwapIntervalEXT (int); 415 extern int WINAPI wglGetSwapIntervalEXT (void); 416 #endif /* WGL_WGLEXT_PROTOTYPES */ 417 typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); 418 typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void); 419 #endif 420 421 #ifndef WGL_WGL_EXT_depth_float 422 #define WGL_WGL_EXT_depth_float 1 423 #endif 424 425 #ifndef WGL_WGL_3DFX_multisample 426 #define WGL_WGL_3DFX_multisample 1 427 #endif 428 429 #ifndef WGL_WGL_EXT_multisample 430 #define WGL_WGL_EXT_multisample 1 431 #endif 432 433 /* added by Cass -- but this should already be in here! */ 434 #ifndef WGL_NV_allocate_memory 435 #define WGL_NV_allocate_memory 1 436 #ifdef WGL_WGLEXT_PROTOTYPES 437 extern void * wglAllocateMemoryNV(int size, float readfreq, float writefreq, float priority); 438 extern void wglFreeMemoryNV(void * pointer); 439 #endif 440 typedef void * (APIENTRY * PFNWGLALLOCATEMEMORYNVPROC) (int size, float readfreq, float writefreq, float priority); 441 typedef void (APIENTRY * PFNWGLFREEMEMORYNVPROC) (void *pointer); 442 #endif 443 444 /* WGL_ARB_render_texture */ 445 #ifndef WGL_ARB_render_texture 446 #define WGL_ARB_render_texture 1 447 typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); 448 typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); 449 typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int * piAttribList); 450 #endif 451 452 #ifndef WGL_NV_render_texture_rectangle 453 #define WGL_NV_render_texture_rectangle 1 454 #endif 455 456 #ifndef WGL_NV_render_depth_texture 457 #define WGL_NV_render_depth_texture 1 458 #endif 459 460 #ifdef __cplusplus 461 } 462 #endif 463 464 #endif 465 466 467