PageRenderTime 33ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/Core/Dependencies/OgreCollada/dependencies/glew/Include/GL/wglew.h

https://bitbucket.org/barakianc/nvidia-physx-and-apex-in-gge
C Header | 1026 lines | 679 code | 255 blank | 92 comment | 1 complexity | 33727a1390f44ca0e1ab62f73c9963b5 MD5 | raw file
  1. /*
  2. ** The OpenGL Extension Wrangler Library
  3. ** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
  4. ** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
  5. ** Copyright (C) 2002, Lev Povalahev
  6. ** All rights reserved.
  7. **
  8. ** Redistribution and use in source and binary forms, with or without
  9. ** modification, are permitted provided that the following conditions are met:
  10. **
  11. ** * Redistributions of source code must retain the above copyright notice,
  12. ** this list of conditions and the following disclaimer.
  13. ** * Redistributions in binary form must reproduce the above copyright notice,
  14. ** this list of conditions and the following disclaimer in the documentation
  15. ** and/or other materials provided with the distribution.
  16. ** * The name of the author may be used to endorse or promote products
  17. ** derived from this software without specific prior written permission.
  18. **
  19. ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  20. ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  21. ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  22. ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  23. ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  24. ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  25. ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  26. ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  27. ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  28. ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  29. ** THE POSSIBILITY OF SUCH DAMAGE.
  30. */
  31. /*
  32. ** Copyright (c) 2007 The Khronos Group Inc.
  33. **
  34. ** Permission is hereby granted, free of charge, to any person obtaining a
  35. ** copy of this software and/or associated documentation files (the
  36. ** "Materials"), to deal in the Materials without restriction, including
  37. ** without limitation the rights to use, copy, modify, merge, publish,
  38. ** distribute, sublicense, and/or sell copies of the Materials, and to
  39. ** permit persons to whom the Materials are furnished to do so, subject to
  40. ** the following conditions:
  41. **
  42. ** The above copyright notice and this permission notice shall be included
  43. ** in all copies or substantial portions of the Materials.
  44. **
  45. ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  46. ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  47. ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  48. ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  49. ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  50. ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  51. ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
  52. */
  53. #ifndef __wglew_h__
  54. #define __wglew_h__
  55. #define __WGLEW_H__
  56. #ifdef __wglext_h_
  57. #error wglext.h included before wglew.h
  58. #endif
  59. #define __wglext_h_
  60. #if !defined(APIENTRY) && !defined(__CYGWIN__)
  61. # ifndef WIN32_LEAN_AND_MEAN
  62. # define WIN32_LEAN_AND_MEAN 1
  63. # endif
  64. #include <windows.h>
  65. #endif
  66. /*
  67. * GLEW_STATIC needs to be set when using the static version.
  68. * GLEW_BUILD is set when building the DLL version.
  69. */
  70. #ifdef GLEW_STATIC
  71. # define GLEWAPI extern
  72. #else
  73. # ifdef GLEW_BUILD
  74. # define GLEWAPI extern __declspec(dllexport)
  75. # else
  76. # define GLEWAPI extern __declspec(dllimport)
  77. # endif
  78. #endif
  79. #ifdef __cplusplus
  80. extern "C" {
  81. #endif
  82. /* -------------------------- WGL_3DFX_multisample ------------------------- */
  83. #ifndef WGL_3DFX_multisample
  84. #define WGL_3DFX_multisample 1
  85. #define WGL_SAMPLE_BUFFERS_3DFX 0x2060
  86. #define WGL_SAMPLES_3DFX 0x2061
  87. #define WGLEW_3DFX_multisample WGLEW_GET_VAR(__WGLEW_3DFX_multisample)
  88. #endif /* WGL_3DFX_multisample */
  89. /* ------------------------- WGL_3DL_stereo_control ------------------------ */
  90. #ifndef WGL_3DL_stereo_control
  91. #define WGL_3DL_stereo_control 1
  92. #define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055
  93. #define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056
  94. #define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057
  95. #define WGL_STEREO_POLARITY_INVERT_3DL 0x2058
  96. typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState);
  97. #define wglSetStereoEmitterState3DL WGLEW_GET_FUN(__wglewSetStereoEmitterState3DL)
  98. #define WGLEW_3DL_stereo_control WGLEW_GET_VAR(__WGLEW_3DL_stereo_control)
  99. #endif /* WGL_3DL_stereo_control */
  100. /* ------------------------- WGL_ARB_buffer_region ------------------------- */
  101. #ifndef WGL_ARB_buffer_region
  102. #define WGL_ARB_buffer_region 1
  103. #define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
  104. #define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
  105. #define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
  106. #define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
  107. typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
  108. typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion);
  109. typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
  110. typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
  111. #define wglCreateBufferRegionARB WGLEW_GET_FUN(__wglewCreateBufferRegionARB)
  112. #define wglDeleteBufferRegionARB WGLEW_GET_FUN(__wglewDeleteBufferRegionARB)
  113. #define wglRestoreBufferRegionARB WGLEW_GET_FUN(__wglewRestoreBufferRegionARB)
  114. #define wglSaveBufferRegionARB WGLEW_GET_FUN(__wglewSaveBufferRegionARB)
  115. #define WGLEW_ARB_buffer_region WGLEW_GET_VAR(__WGLEW_ARB_buffer_region)
  116. #endif /* WGL_ARB_buffer_region */
  117. /* ----------------------- WGL_ARB_extensions_string ----------------------- */
  118. #ifndef WGL_ARB_extensions_string
  119. #define WGL_ARB_extensions_string 1
  120. typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
  121. #define wglGetExtensionsStringARB WGLEW_GET_FUN(__wglewGetExtensionsStringARB)
  122. #define WGLEW_ARB_extensions_string WGLEW_GET_VAR(__WGLEW_ARB_extensions_string)
  123. #endif /* WGL_ARB_extensions_string */
  124. /* ----------------------- WGL_ARB_make_current_read ----------------------- */
  125. #ifndef WGL_ARB_make_current_read
  126. #define WGL_ARB_make_current_read 1
  127. #define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
  128. #define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
  129. typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (VOID);
  130. typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
  131. #define wglGetCurrentReadDCARB WGLEW_GET_FUN(__wglewGetCurrentReadDCARB)
  132. #define wglMakeContextCurrentARB WGLEW_GET_FUN(__wglewMakeContextCurrentARB)
  133. #define WGLEW_ARB_make_current_read WGLEW_GET_VAR(__WGLEW_ARB_make_current_read)
  134. #endif /* WGL_ARB_make_current_read */
  135. /* -------------------------- WGL_ARB_multisample -------------------------- */
  136. #ifndef WGL_ARB_multisample
  137. #define WGL_ARB_multisample 1
  138. #define WGL_SAMPLE_BUFFERS_ARB 0x2041
  139. #define WGL_SAMPLES_ARB 0x2042
  140. #define WGLEW_ARB_multisample WGLEW_GET_VAR(__WGLEW_ARB_multisample)
  141. #endif /* WGL_ARB_multisample */
  142. /* ---------------------------- WGL_ARB_pbuffer ---------------------------- */
  143. #ifndef WGL_ARB_pbuffer
  144. #define WGL_ARB_pbuffer 1
  145. #define WGL_DRAW_TO_PBUFFER_ARB 0x202D
  146. #define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
  147. #define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
  148. #define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
  149. #define WGL_PBUFFER_LARGEST_ARB 0x2033
  150. #define WGL_PBUFFER_WIDTH_ARB 0x2034
  151. #define WGL_PBUFFER_HEIGHT_ARB 0x2035
  152. #define WGL_PBUFFER_LOST_ARB 0x2036
  153. DECLARE_HANDLE(HPBUFFERARB);
  154. typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList);
  155. typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);
  156. typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);
  157. typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int* piValue);
  158. typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
  159. #define wglCreatePbufferARB WGLEW_GET_FUN(__wglewCreatePbufferARB)
  160. #define wglDestroyPbufferARB WGLEW_GET_FUN(__wglewDestroyPbufferARB)
  161. #define wglGetPbufferDCARB WGLEW_GET_FUN(__wglewGetPbufferDCARB)
  162. #define wglQueryPbufferARB WGLEW_GET_FUN(__wglewQueryPbufferARB)
  163. #define wglReleasePbufferDCARB WGLEW_GET_FUN(__wglewReleasePbufferDCARB)
  164. #define WGLEW_ARB_pbuffer WGLEW_GET_VAR(__WGLEW_ARB_pbuffer)
  165. #endif /* WGL_ARB_pbuffer */
  166. /* -------------------------- WGL_ARB_pixel_format ------------------------- */
  167. #ifndef WGL_ARB_pixel_format
  168. #define WGL_ARB_pixel_format 1
  169. #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
  170. #define WGL_DRAW_TO_WINDOW_ARB 0x2001
  171. #define WGL_DRAW_TO_BITMAP_ARB 0x2002
  172. #define WGL_ACCELERATION_ARB 0x2003
  173. #define WGL_NEED_PALETTE_ARB 0x2004
  174. #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
  175. #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
  176. #define WGL_SWAP_METHOD_ARB 0x2007
  177. #define WGL_NUMBER_OVERLAYS_ARB 0x2008
  178. #define WGL_NUMBER_UNDERLAYS_ARB 0x2009
  179. #define WGL_TRANSPARENT_ARB 0x200A
  180. #define WGL_SHARE_DEPTH_ARB 0x200C
  181. #define WGL_SHARE_STENCIL_ARB 0x200D
  182. #define WGL_SHARE_ACCUM_ARB 0x200E
  183. #define WGL_SUPPORT_GDI_ARB 0x200F
  184. #define WGL_SUPPORT_OPENGL_ARB 0x2010
  185. #define WGL_DOUBLE_BUFFER_ARB 0x2011
  186. #define WGL_STEREO_ARB 0x2012
  187. #define WGL_PIXEL_TYPE_ARB 0x2013
  188. #define WGL_COLOR_BITS_ARB 0x2014
  189. #define WGL_RED_BITS_ARB 0x2015
  190. #define WGL_RED_SHIFT_ARB 0x2016
  191. #define WGL_GREEN_BITS_ARB 0x2017
  192. #define WGL_GREEN_SHIFT_ARB 0x2018
  193. #define WGL_BLUE_BITS_ARB 0x2019
  194. #define WGL_BLUE_SHIFT_ARB 0x201A
  195. #define WGL_ALPHA_BITS_ARB 0x201B
  196. #define WGL_ALPHA_SHIFT_ARB 0x201C
  197. #define WGL_ACCUM_BITS_ARB 0x201D
  198. #define WGL_ACCUM_RED_BITS_ARB 0x201E
  199. #define WGL_ACCUM_GREEN_BITS_ARB 0x201F
  200. #define WGL_ACCUM_BLUE_BITS_ARB 0x2020
  201. #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
  202. #define WGL_DEPTH_BITS_ARB 0x2022
  203. #define WGL_STENCIL_BITS_ARB 0x2023
  204. #define WGL_AUX_BUFFERS_ARB 0x2024
  205. #define WGL_NO_ACCELERATION_ARB 0x2025
  206. #define WGL_GENERIC_ACCELERATION_ARB 0x2026
  207. #define WGL_FULL_ACCELERATION_ARB 0x2027
  208. #define WGL_SWAP_EXCHANGE_ARB 0x2028
  209. #define WGL_SWAP_COPY_ARB 0x2029
  210. #define WGL_SWAP_UNDEFINED_ARB 0x202A
  211. #define WGL_TYPE_RGBA_ARB 0x202B
  212. #define WGL_TYPE_COLORINDEX_ARB 0x202C
  213. #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
  214. #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
  215. #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
  216. #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
  217. #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
  218. typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
  219. typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT *pfValues);
  220. typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int *piValues);
  221. #define wglChoosePixelFormatARB WGLEW_GET_FUN(__wglewChoosePixelFormatARB)
  222. #define wglGetPixelFormatAttribfvARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvARB)
  223. #define wglGetPixelFormatAttribivARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribivARB)
  224. #define WGLEW_ARB_pixel_format WGLEW_GET_VAR(__WGLEW_ARB_pixel_format)
  225. #endif /* WGL_ARB_pixel_format */
  226. /* ----------------------- WGL_ARB_pixel_format_float ---------------------- */
  227. #ifndef WGL_ARB_pixel_format_float
  228. #define WGL_ARB_pixel_format_float 1
  229. #define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
  230. #define WGLEW_ARB_pixel_format_float WGLEW_GET_VAR(__WGLEW_ARB_pixel_format_float)
  231. #endif /* WGL_ARB_pixel_format_float */
  232. /* ------------------------- WGL_ARB_render_texture ------------------------ */
  233. #ifndef WGL_ARB_render_texture
  234. #define WGL_ARB_render_texture 1
  235. #define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
  236. #define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
  237. #define WGL_TEXTURE_FORMAT_ARB 0x2072
  238. #define WGL_TEXTURE_TARGET_ARB 0x2073
  239. #define WGL_MIPMAP_TEXTURE_ARB 0x2074
  240. #define WGL_TEXTURE_RGB_ARB 0x2075
  241. #define WGL_TEXTURE_RGBA_ARB 0x2076
  242. #define WGL_NO_TEXTURE_ARB 0x2077
  243. #define WGL_TEXTURE_CUBE_MAP_ARB 0x2078
  244. #define WGL_TEXTURE_1D_ARB 0x2079
  245. #define WGL_TEXTURE_2D_ARB 0x207A
  246. #define WGL_MIPMAP_LEVEL_ARB 0x207B
  247. #define WGL_CUBE_MAP_FACE_ARB 0x207C
  248. #define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
  249. #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
  250. #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
  251. #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
  252. #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
  253. #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
  254. #define WGL_FRONT_LEFT_ARB 0x2083
  255. #define WGL_FRONT_RIGHT_ARB 0x2084
  256. #define WGL_BACK_LEFT_ARB 0x2085
  257. #define WGL_BACK_RIGHT_ARB 0x2086
  258. #define WGL_AUX0_ARB 0x2087
  259. #define WGL_AUX1_ARB 0x2088
  260. #define WGL_AUX2_ARB 0x2089
  261. #define WGL_AUX3_ARB 0x208A
  262. #define WGL_AUX4_ARB 0x208B
  263. #define WGL_AUX5_ARB 0x208C
  264. #define WGL_AUX6_ARB 0x208D
  265. #define WGL_AUX7_ARB 0x208E
  266. #define WGL_AUX8_ARB 0x208F
  267. #define WGL_AUX9_ARB 0x2090
  268. typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
  269. typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
  270. typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int* piAttribList);
  271. #define wglBindTexImageARB WGLEW_GET_FUN(__wglewBindTexImageARB)
  272. #define wglReleaseTexImageARB WGLEW_GET_FUN(__wglewReleaseTexImageARB)
  273. #define wglSetPbufferAttribARB WGLEW_GET_FUN(__wglewSetPbufferAttribARB)
  274. #define WGLEW_ARB_render_texture WGLEW_GET_VAR(__WGLEW_ARB_render_texture)
  275. #endif /* WGL_ARB_render_texture */
  276. /* ----------------------- WGL_ATI_pixel_format_float ---------------------- */
  277. #ifndef WGL_ATI_pixel_format_float
  278. #define WGL_ATI_pixel_format_float 1
  279. #define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
  280. #define GL_RGBA_FLOAT_MODE_ATI 0x8820
  281. #define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
  282. #define WGLEW_ATI_pixel_format_float WGLEW_GET_VAR(__WGLEW_ATI_pixel_format_float)
  283. #endif /* WGL_ATI_pixel_format_float */
  284. /* -------------------- WGL_ATI_render_texture_rectangle ------------------- */
  285. #ifndef WGL_ATI_render_texture_rectangle
  286. #define WGL_ATI_render_texture_rectangle 1
  287. #define WGL_TEXTURE_RECTANGLE_ATI 0x21A5
  288. #define WGLEW_ATI_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_ATI_render_texture_rectangle)
  289. #endif /* WGL_ATI_render_texture_rectangle */
  290. /* -------------------------- WGL_EXT_depth_float -------------------------- */
  291. #ifndef WGL_EXT_depth_float
  292. #define WGL_EXT_depth_float 1
  293. #define WGL_DEPTH_FLOAT_EXT 0x2040
  294. #define WGLEW_EXT_depth_float WGLEW_GET_VAR(__WGLEW_EXT_depth_float)
  295. #endif /* WGL_EXT_depth_float */
  296. /* ---------------------- WGL_EXT_display_color_table ---------------------- */
  297. #ifndef WGL_EXT_display_color_table
  298. #define WGL_EXT_display_color_table 1
  299. typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id);
  300. typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id);
  301. typedef void (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id);
  302. typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (GLushort* table, GLuint length);
  303. #define wglBindDisplayColorTableEXT WGLEW_GET_FUN(__wglewBindDisplayColorTableEXT)
  304. #define wglCreateDisplayColorTableEXT WGLEW_GET_FUN(__wglewCreateDisplayColorTableEXT)
  305. #define wglDestroyDisplayColorTableEXT WGLEW_GET_FUN(__wglewDestroyDisplayColorTableEXT)
  306. #define wglLoadDisplayColorTableEXT WGLEW_GET_FUN(__wglewLoadDisplayColorTableEXT)
  307. #define WGLEW_EXT_display_color_table WGLEW_GET_VAR(__WGLEW_EXT_display_color_table)
  308. #endif /* WGL_EXT_display_color_table */
  309. /* ----------------------- WGL_EXT_extensions_string ----------------------- */
  310. #ifndef WGL_EXT_extensions_string
  311. #define WGL_EXT_extensions_string 1
  312. typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
  313. #define wglGetExtensionsStringEXT WGLEW_GET_FUN(__wglewGetExtensionsStringEXT)
  314. #define WGLEW_EXT_extensions_string WGLEW_GET_VAR(__WGLEW_EXT_extensions_string)
  315. #endif /* WGL_EXT_extensions_string */
  316. /* ------------------------ WGL_EXT_framebuffer_sRGB ----------------------- */
  317. #ifndef WGL_EXT_framebuffer_sRGB
  318. #define WGL_EXT_framebuffer_sRGB 1
  319. #define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
  320. #define WGLEW_EXT_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_EXT_framebuffer_sRGB)
  321. #endif /* WGL_EXT_framebuffer_sRGB */
  322. /* ----------------------- WGL_EXT_make_current_read ----------------------- */
  323. #ifndef WGL_EXT_make_current_read
  324. #define WGL_EXT_make_current_read 1
  325. #define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
  326. typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (VOID);
  327. typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
  328. #define wglGetCurrentReadDCEXT WGLEW_GET_FUN(__wglewGetCurrentReadDCEXT)
  329. #define wglMakeContextCurrentEXT WGLEW_GET_FUN(__wglewMakeContextCurrentEXT)
  330. #define WGLEW_EXT_make_current_read WGLEW_GET_VAR(__WGLEW_EXT_make_current_read)
  331. #endif /* WGL_EXT_make_current_read */
  332. /* -------------------------- WGL_EXT_multisample -------------------------- */
  333. #ifndef WGL_EXT_multisample
  334. #define WGL_EXT_multisample 1
  335. #define WGL_SAMPLE_BUFFERS_EXT 0x2041
  336. #define WGL_SAMPLES_EXT 0x2042
  337. #define WGLEW_EXT_multisample WGLEW_GET_VAR(__WGLEW_EXT_multisample)
  338. #endif /* WGL_EXT_multisample */
  339. /* ---------------------------- WGL_EXT_pbuffer ---------------------------- */
  340. #ifndef WGL_EXT_pbuffer
  341. #define WGL_EXT_pbuffer 1
  342. #define WGL_DRAW_TO_PBUFFER_EXT 0x202D
  343. #define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E
  344. #define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F
  345. #define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030
  346. #define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031
  347. #define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032
  348. #define WGL_PBUFFER_LARGEST_EXT 0x2033
  349. #define WGL_PBUFFER_WIDTH_EXT 0x2034
  350. #define WGL_PBUFFER_HEIGHT_EXT 0x2035
  351. DECLARE_HANDLE(HPBUFFEREXT);
  352. typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList);
  353. typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer);
  354. typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer);
  355. typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int* piValue);
  356. typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC);
  357. #define wglCreatePbufferEXT WGLEW_GET_FUN(__wglewCreatePbufferEXT)
  358. #define wglDestroyPbufferEXT WGLEW_GET_FUN(__wglewDestroyPbufferEXT)
  359. #define wglGetPbufferDCEXT WGLEW_GET_FUN(__wglewGetPbufferDCEXT)
  360. #define wglQueryPbufferEXT WGLEW_GET_FUN(__wglewQueryPbufferEXT)
  361. #define wglReleasePbufferDCEXT WGLEW_GET_FUN(__wglewReleasePbufferDCEXT)
  362. #define WGLEW_EXT_pbuffer WGLEW_GET_VAR(__WGLEW_EXT_pbuffer)
  363. #endif /* WGL_EXT_pbuffer */
  364. /* -------------------------- WGL_EXT_pixel_format ------------------------- */
  365. #ifndef WGL_EXT_pixel_format
  366. #define WGL_EXT_pixel_format 1
  367. #define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000
  368. #define WGL_DRAW_TO_WINDOW_EXT 0x2001
  369. #define WGL_DRAW_TO_BITMAP_EXT 0x2002
  370. #define WGL_ACCELERATION_EXT 0x2003
  371. #define WGL_NEED_PALETTE_EXT 0x2004
  372. #define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005
  373. #define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006
  374. #define WGL_SWAP_METHOD_EXT 0x2007
  375. #define WGL_NUMBER_OVERLAYS_EXT 0x2008
  376. #define WGL_NUMBER_UNDERLAYS_EXT 0x2009
  377. #define WGL_TRANSPARENT_EXT 0x200A
  378. #define WGL_TRANSPARENT_VALUE_EXT 0x200B
  379. #define WGL_SHARE_DEPTH_EXT 0x200C
  380. #define WGL_SHARE_STENCIL_EXT 0x200D
  381. #define WGL_SHARE_ACCUM_EXT 0x200E
  382. #define WGL_SUPPORT_GDI_EXT 0x200F
  383. #define WGL_SUPPORT_OPENGL_EXT 0x2010
  384. #define WGL_DOUBLE_BUFFER_EXT 0x2011
  385. #define WGL_STEREO_EXT 0x2012
  386. #define WGL_PIXEL_TYPE_EXT 0x2013
  387. #define WGL_COLOR_BITS_EXT 0x2014
  388. #define WGL_RED_BITS_EXT 0x2015
  389. #define WGL_RED_SHIFT_EXT 0x2016
  390. #define WGL_GREEN_BITS_EXT 0x2017
  391. #define WGL_GREEN_SHIFT_EXT 0x2018
  392. #define WGL_BLUE_BITS_EXT 0x2019
  393. #define WGL_BLUE_SHIFT_EXT 0x201A
  394. #define WGL_ALPHA_BITS_EXT 0x201B
  395. #define WGL_ALPHA_SHIFT_EXT 0x201C
  396. #define WGL_ACCUM_BITS_EXT 0x201D
  397. #define WGL_ACCUM_RED_BITS_EXT 0x201E
  398. #define WGL_ACCUM_GREEN_BITS_EXT 0x201F
  399. #define WGL_ACCUM_BLUE_BITS_EXT 0x2020
  400. #define WGL_ACCUM_ALPHA_BITS_EXT 0x2021
  401. #define WGL_DEPTH_BITS_EXT 0x2022
  402. #define WGL_STENCIL_BITS_EXT 0x2023
  403. #define WGL_AUX_BUFFERS_EXT 0x2024
  404. #define WGL_NO_ACCELERATION_EXT 0x2025
  405. #define WGL_GENERIC_ACCELERATION_EXT 0x2026
  406. #define WGL_FULL_ACCELERATION_EXT 0x2027
  407. #define WGL_SWAP_EXCHANGE_EXT 0x2028
  408. #define WGL_SWAP_COPY_EXT 0x2029
  409. #define WGL_SWAP_UNDEFINED_EXT 0x202A
  410. #define WGL_TYPE_RGBA_EXT 0x202B
  411. #define WGL_TYPE_COLORINDEX_EXT 0x202C
  412. typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
  413. typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT *pfValues);
  414. typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int *piValues);
  415. #define wglChoosePixelFormatEXT WGLEW_GET_FUN(__wglewChoosePixelFormatEXT)
  416. #define wglGetPixelFormatAttribfvEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvEXT)
  417. #define wglGetPixelFormatAttribivEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribivEXT)
  418. #define WGLEW_EXT_pixel_format WGLEW_GET_VAR(__WGLEW_EXT_pixel_format)
  419. #endif /* WGL_EXT_pixel_format */
  420. /* ------------------- WGL_EXT_pixel_format_packed_float ------------------- */
  421. #ifndef WGL_EXT_pixel_format_packed_float
  422. #define WGL_EXT_pixel_format_packed_float 1
  423. #define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
  424. #define WGLEW_EXT_pixel_format_packed_float WGLEW_GET_VAR(__WGLEW_EXT_pixel_format_packed_float)
  425. #endif /* WGL_EXT_pixel_format_packed_float */
  426. /* -------------------------- WGL_EXT_swap_control ------------------------- */
  427. #ifndef WGL_EXT_swap_control
  428. #define WGL_EXT_swap_control 1
  429. typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void);
  430. typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
  431. #define wglGetSwapIntervalEXT WGLEW_GET_FUN(__wglewGetSwapIntervalEXT)
  432. #define wglSwapIntervalEXT WGLEW_GET_FUN(__wglewSwapIntervalEXT)
  433. #define WGLEW_EXT_swap_control WGLEW_GET_VAR(__WGLEW_EXT_swap_control)
  434. #endif /* WGL_EXT_swap_control */
  435. /* --------------------- WGL_I3D_digital_video_control --------------------- */
  436. #ifndef WGL_I3D_digital_video_control
  437. #define WGL_I3D_digital_video_control 1
  438. #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
  439. #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
  440. #define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
  441. #define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
  442. typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue);
  443. typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue);
  444. #define wglGetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewGetDigitalVideoParametersI3D)
  445. #define wglSetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewSetDigitalVideoParametersI3D)
  446. #define WGLEW_I3D_digital_video_control WGLEW_GET_VAR(__WGLEW_I3D_digital_video_control)
  447. #endif /* WGL_I3D_digital_video_control */
  448. /* ----------------------------- WGL_I3D_gamma ----------------------------- */
  449. #ifndef WGL_I3D_gamma
  450. #define WGL_I3D_gamma 1
  451. #define WGL_GAMMA_TABLE_SIZE_I3D 0x204E
  452. #define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F
  453. typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT *puGreen, USHORT *puBlue);
  454. typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue);
  455. typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT *puGreen, const USHORT *puBlue);
  456. typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue);
  457. #define wglGetGammaTableI3D WGLEW_GET_FUN(__wglewGetGammaTableI3D)
  458. #define wglGetGammaTableParametersI3D WGLEW_GET_FUN(__wglewGetGammaTableParametersI3D)
  459. #define wglSetGammaTableI3D WGLEW_GET_FUN(__wglewSetGammaTableI3D)
  460. #define wglSetGammaTableParametersI3D WGLEW_GET_FUN(__wglewSetGammaTableParametersI3D)
  461. #define WGLEW_I3D_gamma WGLEW_GET_VAR(__WGLEW_I3D_gamma)
  462. #endif /* WGL_I3D_gamma */
  463. /* ---------------------------- WGL_I3D_genlock ---------------------------- */
  464. #ifndef WGL_I3D_genlock
  465. #define WGL_I3D_genlock 1
  466. #define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
  467. #define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045
  468. #define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046
  469. #define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047
  470. #define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
  471. #define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
  472. #define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
  473. #define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
  474. #define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
  475. typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC);
  476. typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC);
  477. typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate);
  478. typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay);
  479. typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge);
  480. typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource);
  481. typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT* uRate);
  482. typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT* uDelay);
  483. typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT* uEdge);
  484. typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT* uSource);
  485. typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL* pFlag);
  486. typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT *uMaxPixelDelay);
  487. #define wglDisableGenlockI3D WGLEW_GET_FUN(__wglewDisableGenlockI3D)
  488. #define wglEnableGenlockI3D WGLEW_GET_FUN(__wglewEnableGenlockI3D)
  489. #define wglGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGenlockSampleRateI3D)
  490. #define wglGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGenlockSourceDelayI3D)
  491. #define wglGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGenlockSourceEdgeI3D)
  492. #define wglGenlockSourceI3D WGLEW_GET_FUN(__wglewGenlockSourceI3D)
  493. #define wglGetGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGetGenlockSampleRateI3D)
  494. #define wglGetGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGetGenlockSourceDelayI3D)
  495. #define wglGetGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGetGenlockSourceEdgeI3D)
  496. #define wglGetGenlockSourceI3D WGLEW_GET_FUN(__wglewGetGenlockSourceI3D)
  497. #define wglIsEnabledGenlockI3D WGLEW_GET_FUN(__wglewIsEnabledGenlockI3D)
  498. #define wglQueryGenlockMaxSourceDelayI3D WGLEW_GET_FUN(__wglewQueryGenlockMaxSourceDelayI3D)
  499. #define WGLEW_I3D_genlock WGLEW_GET_VAR(__WGLEW_I3D_genlock)
  500. #endif /* WGL_I3D_genlock */
  501. /* -------------------------- WGL_I3D_image_buffer ------------------------- */
  502. #ifndef WGL_I3D_image_buffer
  503. #define WGL_I3D_image_buffer 1
  504. #define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
  505. #define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002
  506. typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, HANDLE* pEvent, LPVOID *pAddress, DWORD *pSize, UINT count);
  507. typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags);
  508. typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress);
  509. typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, LPVOID* pAddress, UINT count);
  510. #define wglAssociateImageBufferEventsI3D WGLEW_GET_FUN(__wglewAssociateImageBufferEventsI3D)
  511. #define wglCreateImageBufferI3D WGLEW_GET_FUN(__wglewCreateImageBufferI3D)
  512. #define wglDestroyImageBufferI3D WGLEW_GET_FUN(__wglewDestroyImageBufferI3D)
  513. #define wglReleaseImageBufferEventsI3D WGLEW_GET_FUN(__wglewReleaseImageBufferEventsI3D)
  514. #define WGLEW_I3D_image_buffer WGLEW_GET_VAR(__WGLEW_I3D_image_buffer)
  515. #endif /* WGL_I3D_image_buffer */
  516. /* ------------------------ WGL_I3D_swap_frame_lock ------------------------ */
  517. #ifndef WGL_I3D_swap_frame_lock
  518. #define WGL_I3D_swap_frame_lock 1
  519. typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (VOID);
  520. typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (VOID);
  521. typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL* pFlag);
  522. typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag);
  523. #define wglDisableFrameLockI3D WGLEW_GET_FUN(__wglewDisableFrameLockI3D)
  524. #define wglEnableFrameLockI3D WGLEW_GET_FUN(__wglewEnableFrameLockI3D)
  525. #define wglIsEnabledFrameLockI3D WGLEW_GET_FUN(__wglewIsEnabledFrameLockI3D)
  526. #define wglQueryFrameLockMasterI3D WGLEW_GET_FUN(__wglewQueryFrameLockMasterI3D)
  527. #define WGLEW_I3D_swap_frame_lock WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_lock)
  528. #endif /* WGL_I3D_swap_frame_lock */
  529. /* ------------------------ WGL_I3D_swap_frame_usage ----------------------- */
  530. #ifndef WGL_I3D_swap_frame_usage
  531. #define WGL_I3D_swap_frame_usage 1
  532. typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void);
  533. typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void);
  534. typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float* pUsage);
  535. typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
  536. #define wglBeginFrameTrackingI3D WGLEW_GET_FUN(__wglewBeginFrameTrackingI3D)
  537. #define wglEndFrameTrackingI3D WGLEW_GET_FUN(__wglewEndFrameTrackingI3D)
  538. #define wglGetFrameUsageI3D WGLEW_GET_FUN(__wglewGetFrameUsageI3D)
  539. #define wglQueryFrameTrackingI3D WGLEW_GET_FUN(__wglewQueryFrameTrackingI3D)
  540. #define WGLEW_I3D_swap_frame_usage WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_usage)
  541. #endif /* WGL_I3D_swap_frame_usage */
  542. /* -------------------------- WGL_NV_float_buffer -------------------------- */
  543. #ifndef WGL_NV_float_buffer
  544. #define WGL_NV_float_buffer 1
  545. #define WGL_FLOAT_COMPONENTS_NV 0x20B0
  546. #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
  547. #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
  548. #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
  549. #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
  550. #define WGL_TEXTURE_FLOAT_R_NV 0x20B5
  551. #define WGL_TEXTURE_FLOAT_RG_NV 0x20B6
  552. #define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7
  553. #define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
  554. #define WGLEW_NV_float_buffer WGLEW_GET_VAR(__WGLEW_NV_float_buffer)
  555. #endif /* WGL_NV_float_buffer */
  556. /* -------------------------- WGL_NV_gpu_affinity -------------------------- */
  557. #ifndef WGL_NV_gpu_affinity
  558. #define WGL_NV_gpu_affinity 1
  559. #define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
  560. #define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
  561. DECLARE_HANDLE(HGPUNV);
  562. typedef struct _GPU_DEVICE {
  563. DWORD cb;
  564. CHAR DeviceName[32];
  565. CHAR DeviceString[128];
  566. DWORD Flags;
  567. RECT rcVirtualScreen;
  568. } GPU_DEVICE, *PGPU_DEVICE;
  569. typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList);
  570. typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc);
  571. typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
  572. typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
  573. typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu);
  574. #define wglCreateAffinityDCNV WGLEW_GET_FUN(__wglewCreateAffinityDCNV)
  575. #define wglDeleteDCNV WGLEW_GET_FUN(__wglewDeleteDCNV)
  576. #define wglEnumGpuDevicesNV WGLEW_GET_FUN(__wglewEnumGpuDevicesNV)
  577. #define wglEnumGpusFromAffinityDCNV WGLEW_GET_FUN(__wglewEnumGpusFromAffinityDCNV)
  578. #define wglEnumGpusNV WGLEW_GET_FUN(__wglewEnumGpusNV)
  579. #define WGLEW_NV_gpu_affinity WGLEW_GET_VAR(__WGLEW_NV_gpu_affinity)
  580. #endif /* WGL_NV_gpu_affinity */
  581. /* ---------------------- WGL_NV_render_depth_texture ---------------------- */
  582. #ifndef WGL_NV_render_depth_texture
  583. #define WGL_NV_render_depth_texture 1
  584. #define WGL_NO_TEXTURE_ARB 0x2077
  585. #define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3
  586. #define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
  587. #define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5
  588. #define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
  589. #define WGL_DEPTH_COMPONENT_NV 0x20A7
  590. #define WGLEW_NV_render_depth_texture WGLEW_GET_VAR(__WGLEW_NV_render_depth_texture)
  591. #endif /* WGL_NV_render_depth_texture */
  592. /* -------------------- WGL_NV_render_texture_rectangle -------------------- */
  593. #ifndef WGL_NV_render_texture_rectangle
  594. #define WGL_NV_render_texture_rectangle 1
  595. #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
  596. #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
  597. #define WGL_TEXTURE_RECTANGLE_NV 0x20A2
  598. #define WGLEW_NV_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_NV_render_texture_rectangle)
  599. #endif /* WGL_NV_render_texture_rectangle */
  600. /* ----------------------- WGL_NV_vertex_array_range ----------------------- */
  601. #ifndef WGL_NV_vertex_array_range
  602. #define WGL_NV_vertex_array_range 1
  603. typedef void * (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);
  604. typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer);
  605. #define wglAllocateMemoryNV WGLEW_GET_FUN(__wglewAllocateMemoryNV)
  606. #define wglFreeMemoryNV WGLEW_GET_FUN(__wglewFreeMemoryNV)
  607. #define WGLEW_NV_vertex_array_range WGLEW_GET_VAR(__WGLEW_NV_vertex_array_range)
  608. #endif /* WGL_NV_vertex_array_range */
  609. /* -------------------------- WGL_OML_sync_control ------------------------- */
  610. #ifndef WGL_OML_sync_control
  611. #define WGL_OML_sync_control 1
  612. typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32 *denominator);
  613. typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64 *msc, INT64 *sbc);
  614. typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
  615. typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
  616. typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64 *msc, INT64 *sbc);
  617. typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64 *msc, INT64 *sbc);
  618. #define wglGetMscRateOML WGLEW_GET_FUN(__wglewGetMscRateOML)
  619. #define wglGetSyncValuesOML WGLEW_GET_FUN(__wglewGetSyncValuesOML)
  620. #define wglSwapBuffersMscOML WGLEW_GET_FUN(__wglewSwapBuffersMscOML)
  621. #define wglSwapLayerBuffersMscOML WGLEW_GET_FUN(__wglewSwapLayerBuffersMscOML)
  622. #define wglWaitForMscOML WGLEW_GET_FUN(__wglewWaitForMscOML)
  623. #define wglWaitForSbcOML WGLEW_GET_FUN(__wglewWaitForSbcOML)
  624. #define WGLEW_OML_sync_control WGLEW_GET_VAR(__WGLEW_OML_sync_control)
  625. #endif /* WGL_OML_sync_control */
  626. /* ------------------------------------------------------------------------- */
  627. #ifdef GLEW_MX
  628. #define WGLEW_EXPORT
  629. #else
  630. #define WGLEW_EXPORT GLEWAPI
  631. #endif /* GLEW_MX */
  632. #ifdef GLEW_MX
  633. struct WGLEWContextStruct
  634. {
  635. #endif /* GLEW_MX */
  636. WGLEW_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL;
  637. WGLEW_EXPORT PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB;
  638. WGLEW_EXPORT PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB;
  639. WGLEW_EXPORT PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB;
  640. WGLEW_EXPORT PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB;
  641. WGLEW_EXPORT PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB;
  642. WGLEW_EXPORT PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB;
  643. WGLEW_EXPORT PFNWGLMAKECONTEXTCURRENTARBPROC __wglewMakeContextCurrentARB;
  644. WGLEW_EXPORT PFNWGLCREATEPBUFFERARBPROC __wglewCreatePbufferARB;
  645. WGLEW_EXPORT PFNWGLDESTROYPBUFFERARBPROC __wglewDestroyPbufferARB;
  646. WGLEW_EXPORT PFNWGLGETPBUFFERDCARBPROC __wglewGetPbufferDCARB;
  647. WGLEW_EXPORT PFNWGLQUERYPBUFFERARBPROC __wglewQueryPbufferARB;
  648. WGLEW_EXPORT PFNWGLRELEASEPBUFFERDCARBPROC __wglewReleasePbufferDCARB;
  649. WGLEW_EXPORT PFNWGLCHOOSEPIXELFORMATARBPROC __wglewChoosePixelFormatARB;
  650. WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBFVARBPROC __wglewGetPixelFormatAttribfvARB;
  651. WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBIVARBPROC __wglewGetPixelFormatAttribivARB;
  652. WGLEW_EXPORT PFNWGLBINDTEXIMAGEARBPROC __wglewBindTexImageARB;
  653. WGLEW_EXPORT PFNWGLRELEASETEXIMAGEARBPROC __wglewReleaseTexImageARB;
  654. WGLEW_EXPORT PFNWGLSETPBUFFERATTRIBARBPROC __wglewSetPbufferAttribARB;
  655. WGLEW_EXPORT PFNWGLBINDDISPLAYCOLORTABLEEXTPROC __wglewBindDisplayColorTableEXT;
  656. WGLEW_EXPORT PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC __wglewCreateDisplayColorTableEXT;
  657. WGLEW_EXPORT PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC __wglewDestroyDisplayColorTableEXT;
  658. WGLEW_EXPORT PFNWGLLOADDISPLAYCOLORTABLEEXTPROC __wglewLoadDisplayColorTableEXT;
  659. WGLEW_EXPORT PFNWGLGETEXTENSIONSSTRINGEXTPROC __wglewGetExtensionsStringEXT;
  660. WGLEW_EXPORT PFNWGLGETCURRENTREADDCEXTPROC __wglewGetCurrentReadDCEXT;
  661. WGLEW_EXPORT PFNWGLMAKECONTEXTCURRENTEXTPROC __wglewMakeContextCurrentEXT;
  662. WGLEW_EXPORT PFNWGLCREATEPBUFFEREXTPROC __wglewCreatePbufferEXT;
  663. WGLEW_EXPORT PFNWGLDESTROYPBUFFEREXTPROC __wglewDestroyPbufferEXT;
  664. WGLEW_EXPORT PFNWGLGETPBUFFERDCEXTPROC __wglewGetPbufferDCEXT;
  665. WGLEW_EXPORT PFNWGLQUERYPBUFFEREXTPROC __wglewQueryPbufferEXT;
  666. WGLEW_EXPORT PFNWGLRELEASEPBUFFERDCEXTPROC __wglewReleasePbufferDCEXT;
  667. WGLEW_EXPORT PFNWGLCHOOSEPIXELFORMATEXTPROC __wglewChoosePixelFormatEXT;
  668. WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBFVEXTPROC __wglewGetPixelFormatAttribfvEXT;
  669. WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBIVEXTPROC __wglewGetPixelFormatAttribivEXT;
  670. WGLEW_EXPORT PFNWGLGETSWAPINTERVALEXTPROC __wglewGetSwapIntervalEXT;
  671. WGLEW_EXPORT PFNWGLSWAPINTERVALEXTPROC __wglewSwapIntervalEXT;
  672. WGLEW_EXPORT PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC __wglewGetDigitalVideoParametersI3D;
  673. WGLEW_EXPORT PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC __wglewSetDigitalVideoParametersI3D;
  674. WGLEW_EXPORT PFNWGLGETGAMMATABLEI3DPROC __wglewGetGammaTableI3D;
  675. WGLEW_EXPORT PFNWGLGETGAMMATABLEPARAMETERSI3DPROC __wglewGetGammaTableParametersI3D;
  676. WGLEW_EXPORT PFNWGLSETGAMMATABLEI3DPROC __wglewSetGammaTableI3D;
  677. WGLEW_EXPORT PFNWGLSETGAMMATABLEPARAMETERSI3DPROC __wglewSetGammaTableParametersI3D;
  678. WGLEW_EXPORT PFNWGLDISABLEGENLOCKI3DPROC __wglewDisableGenlockI3D;
  679. WGLEW_EXPORT PFNWGLENABLEGENLOCKI3DPROC __wglewEnableGenlockI3D;
  680. WGLEW_EXPORT PFNWGLGENLOCKSAMPLERATEI3DPROC __wglewGenlockSampleRateI3D;
  681. WGLEW_EXPORT PFNWGLGENLOCKSOURCEDELAYI3DPROC __wglewGenlockSourceDelayI3D;
  682. WGLEW_EXPORT PFNWGLGENLOCKSOURCEEDGEI3DPROC __wglewGenlockSourceEdgeI3D;
  683. WGLEW_EXPORT PFNWGLGENLOCKSOURCEI3DPROC __wglewGenlockSourceI3D;
  684. WGLEW_EXPORT PFNWGLGETGENLOCKSAMPLERATEI3DPROC __wglewGetGenlockSampleRateI3D;
  685. WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEDELAYI3DPROC __wglewGetGenlockSourceDelayI3D;
  686. WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEEDGEI3DPROC __wglewGetGenlockSourceEdgeI3D;
  687. WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEI3DPROC __wglewGetGenlockSourceI3D;
  688. WGLEW_EXPORT PFNWGLISENABLEDGENLOCKI3DPROC __wglewIsEnabledGenlockI3D;
  689. WGLEW_EXPORT PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC __wglewQueryGenlockMaxSourceDelayI3D;
  690. WGLEW_EXPORT PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC __wglewAssociateImageBufferEventsI3D;
  691. WGLEW_EXPORT PFNWGLCREATEIMAGEBUFFERI3DPROC __wglewCreateImageBufferI3D;
  692. WGLEW_EXPORT PFNWGLDESTROYIMAGEBUFFERI3DPROC __wglewDestroyImageBufferI3D;
  693. WGLEW_EXPORT PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC __wglewReleaseImageBufferEventsI3D;
  694. WGLEW_EXPORT PFNWGLDISABLEFRAMELOCKI3DPROC __wglewDisableFrameLockI3D;
  695. WGLEW_EXPORT PFNWGLENABLEFRAMELOCKI3DPROC __wglewEnableFrameLockI3D;
  696. WGLEW_EXPORT PFNWGLISENABLEDFRAMELOCKI3DPROC __wglewIsEnabledFrameLockI3D;
  697. WGLEW_EXPORT PFNWGLQUERYFRAMELOCKMASTERI3DPROC __wglewQueryFrameLockMasterI3D;
  698. WGLEW_EXPORT PFNWGLBEGINFRAMETRACKINGI3DPROC __wglewBeginFrameTrackingI3D;
  699. WGLEW_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D;
  700. WGLEW_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D;
  701. WGLEW_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D;
  702. WGLEW_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV;
  703. WGLEW_EXPORT PFNWGLDELETEDCNVPROC __wglewDeleteDCNV;
  704. WGLEW_EXPORT PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV;
  705. WGLEW_EXPORT PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV;
  706. WGLEW_EXPORT PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV;
  707. WGLEW_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV;
  708. WGLEW_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV;
  709. WGLEW_EXPORT PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML;
  710. WGLEW_EXPORT PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML;
  711. WGLEW_EXPORT PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML;
  712. WGLEW_EXPORT PFNWGLSWAPLAYERBUFFERSMSCOMLPROC __wglewSwapLayerBuffersMscOML;
  713. WGLEW_EXPORT PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML;
  714. WGLEW_EXPORT PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML;
  715. WGLEW_EXPORT GLboolean __WGLEW_3DFX_multisample;
  716. WGLEW_EXPORT GLboolean __WGLEW_3DL_stereo_control;
  717. WGLEW_EXPORT GLboolean __WGLEW_ARB_buffer_region;
  718. WGLEW_EXPORT GLboolean __WGLEW_ARB_extensions_string;
  719. WGLEW_EXPORT GLboolean __WGLEW_ARB_make_current_read;
  720. WGLEW_EXPORT GLboolean __WGLEW_ARB_multisample;
  721. WGLEW_EXPORT GLboolean __WGLEW_ARB_pbuffer;
  722. WGLEW_EXPORT GLboolean __WGLEW_ARB_pixel_format;
  723. WGLEW_EXPORT GLboolean __WGLEW_ARB_pixel_format_float;
  724. WGLEW_EXPORT GLboolean __WGLEW_ARB_render_texture;
  725. WGLEW_EXPORT GLboolean __WGLEW_ATI_pixel_format_float;
  726. WGLEW_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle;
  727. WGLEW_EXPORT GLboolean __WGLEW_EXT_depth_float;
  728. WGLEW_EXPORT GLboolean __WGLEW_EXT_display_color_table;
  729. WGLEW_EXPORT GLboolean __WGLEW_EXT_extensions_string;
  730. WGLEW_EXPORT GLboolean __WGLEW_EXT_framebuffer_sRGB;
  731. WGLEW_EXPORT GLboolean __WGLEW_EXT_make_current_read;
  732. WGLEW_EXPORT GLboolean __WGLEW_EXT_multisample;
  733. WGLEW_EXPORT GLboolean __WGLEW_EXT_pbuffer;
  734. WGLEW_EXPORT GLboolean __WGLEW_EXT_pixel_format;
  735. WGLEW_EXPORT GLboolean __WGLEW_EXT_pixel_format_packed_float;
  736. WGLEW_EXPORT GLboolean __WGLEW_EXT_swap_control;
  737. WGLEW_EXPORT GLboolean __WGLEW_I3D_digital_video_control;
  738. WGLEW_EXPORT GLboolean __WGLEW_I3D_gamma;
  739. WGLEW_EXPORT GLboolean __WGLEW_I3D_genlock;
  740. WGLEW_EXPORT GLboolean __WGLEW_I3D_image_buffer;
  741. WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock;
  742. WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage;
  743. WGLEW_EXPORT GLboolean __WGLEW_NV_float_buffer;
  744. WGLEW_EXPORT GLboolean __WGLEW_NV_gpu_affinity;
  745. WGLEW_EXPORT GLboolean __WGLEW_NV_render_depth_texture;
  746. WGLEW_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle;
  747. WGLEW_EXPORT GLboolean __WGLEW_NV_vertex_array_range;
  748. WGLEW_EXPORT GLboolean __WGLEW_OML_sync_control;
  749. #ifdef GLEW_MX
  750. }; /* WGLEWContextStruct */
  751. #endif /* GLEW_MX */
  752. /* ------------------------------------------------------------------------- */
  753. #ifdef GLEW_MX
  754. typedef struct WGLEWContextStruct WGLEWContext;
  755. GLEWAPI GLenum wglewContextInit (WGLEWContext* ctx);
  756. GLEWAPI GLboolean wglewContextIsSupported (WGLEWContext* ctx, const char* name);
  757. #define wglewInit() wglewContextInit(wglewGetContext())
  758. #define wglewIsSupported(x) wglewContextIsSupported(wglewGetContext(), x)
  759. #define WGLEW_GET_VAR(x) (*(const GLboolean*)&(wglewGetContext()->x))
  760. #define WGLEW_GET_FUN(x) wglewGetContext()->x
  761. #else /* GLEW_MX */
  762. #define WGLEW_GET_VAR(x) (*(const GLboolean*)&x)
  763. #define WGLEW_GET_FUN(x) x
  764. GLEWAPI GLboolean wglewIsSupported (const char* name);
  765. #endif /* GLEW_MX */
  766. GLEWAPI GLboolean wglewGetExtension (const char* name);
  767. #ifdef __cplusplus
  768. }
  769. #endif
  770. #undef GLEWAPI
  771. #endif /* __wglew_h__ */