wglext.h
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:21k
源码类别:

OpenGL

开发平台:

Visual C++

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