Clone of mesa.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

glxew.h 54KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397
  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. * Mesa 3-D graphics library
  33. * Version: 7.0
  34. *
  35. * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
  36. *
  37. * Permission is hereby granted, free of charge, to any person obtaining a
  38. * copy of this software and associated documentation files (the "Software"),
  39. * to deal in the Software without restriction, including without limitation
  40. * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  41. * and/or sell copies of the Software, and to permit persons to whom the
  42. * Software is furnished to do so, subject to the following conditions:
  43. *
  44. * The above copyright notice and this permission notice shall be included
  45. * in all copies or substantial portions of the Software.
  46. *
  47. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  48. * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  49. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  50. * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  51. * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  52. * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  53. */
  54. /*
  55. ** Copyright (c) 2007 The Khronos Group Inc.
  56. **
  57. ** Permission is hereby granted, free of charge, to any person obtaining a
  58. ** copy of this software and/or associated documentation files (the
  59. ** "Materials"), to deal in the Materials without restriction, including
  60. ** without limitation the rights to use, copy, modify, merge, publish,
  61. ** distribute, sublicense, and/or sell copies of the Materials, and to
  62. ** permit persons to whom the Materials are furnished to do so, subject to
  63. ** the following conditions:
  64. **
  65. ** The above copyright notice and this permission notice shall be included
  66. ** in all copies or substantial portions of the Materials.
  67. **
  68. ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  69. ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  70. ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  71. ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  72. ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  73. ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  74. ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
  75. */
  76. #ifndef __glxew_h__
  77. #define __glxew_h__
  78. #define __GLXEW_H__
  79. #ifdef __glxext_h_
  80. #error glxext.h included before glxew.h
  81. #endif
  82. #ifdef GLX_H
  83. #error glx.h included before glxew.h
  84. #endif
  85. #define __glxext_h_
  86. #define __GLX_glx_h__
  87. #define GLX_H
  88. #include <X11/Xlib.h>
  89. #include <X11/Xutil.h>
  90. #include <X11/Xmd.h>
  91. #include <GL/glew.h>
  92. #ifdef __cplusplus
  93. extern "C" {
  94. #endif
  95. /* ---------------------------- GLX_VERSION_1_0 --------------------------- */
  96. #ifndef GLX_VERSION_1_0
  97. #define GLX_VERSION_1_0 1
  98. #define GLX_USE_GL 1
  99. #define GLX_BUFFER_SIZE 2
  100. #define GLX_LEVEL 3
  101. #define GLX_RGBA 4
  102. #define GLX_DOUBLEBUFFER 5
  103. #define GLX_STEREO 6
  104. #define GLX_AUX_BUFFERS 7
  105. #define GLX_RED_SIZE 8
  106. #define GLX_GREEN_SIZE 9
  107. #define GLX_BLUE_SIZE 10
  108. #define GLX_ALPHA_SIZE 11
  109. #define GLX_DEPTH_SIZE 12
  110. #define GLX_STENCIL_SIZE 13
  111. #define GLX_ACCUM_RED_SIZE 14
  112. #define GLX_ACCUM_GREEN_SIZE 15
  113. #define GLX_ACCUM_BLUE_SIZE 16
  114. #define GLX_ACCUM_ALPHA_SIZE 17
  115. #define GLX_BAD_SCREEN 1
  116. #define GLX_BAD_ATTRIBUTE 2
  117. #define GLX_NO_EXTENSION 3
  118. #define GLX_BAD_VISUAL 4
  119. #define GLX_BAD_CONTEXT 5
  120. #define GLX_BAD_VALUE 6
  121. #define GLX_BAD_ENUM 7
  122. typedef XID GLXDrawable;
  123. typedef XID GLXPixmap;
  124. #ifdef __sun
  125. typedef struct __glXContextRec *GLXContext;
  126. #else
  127. typedef struct __GLXcontextRec *GLXContext;
  128. #endif
  129. typedef unsigned int GLXVideoDeviceNV;
  130. extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase);
  131. extern Bool glXQueryVersion (Display *dpy, int *major, int *minor);
  132. extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value);
  133. extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList);
  134. extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap);
  135. extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix);
  136. extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
  137. extern void glXDestroyContext (Display *dpy, GLXContext ctx);
  138. extern Bool glXIsDirect (Display *dpy, GLXContext ctx);
  139. extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask);
  140. extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx);
  141. extern GLXContext glXGetCurrentContext (void);
  142. extern GLXDrawable glXGetCurrentDrawable (void);
  143. extern void glXWaitGL (void);
  144. extern void glXWaitX (void);
  145. extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable);
  146. extern void glXUseXFont (Font font, int first, int count, int listBase);
  147. #define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0)
  148. #endif /* GLX_VERSION_1_0 */
  149. /* ---------------------------- GLX_VERSION_1_1 --------------------------- */
  150. #ifndef GLX_VERSION_1_1
  151. #define GLX_VERSION_1_1
  152. #define GLX_VENDOR 0x1
  153. #define GLX_VERSION 0x2
  154. #define GLX_EXTENSIONS 0x3
  155. extern const char* glXQueryExtensionsString (Display *dpy, int screen);
  156. extern const char* glXGetClientString (Display *dpy, int name);
  157. extern const char* glXQueryServerString (Display *dpy, int screen, int name);
  158. #define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1)
  159. #endif /* GLX_VERSION_1_1 */
  160. /* ---------------------------- GLX_VERSION_1_2 ---------------------------- */
  161. #ifndef GLX_VERSION_1_2
  162. #define GLX_VERSION_1_2 1
  163. typedef Display* ( * PFNGLXGETCURRENTDISPLAYPROC) (void);
  164. #define glXGetCurrentDisplay GLXEW_GET_FUN(__glewXGetCurrentDisplay)
  165. #define GLXEW_VERSION_1_2 GLXEW_GET_VAR(__GLXEW_VERSION_1_2)
  166. #endif /* GLX_VERSION_1_2 */
  167. /* ---------------------------- GLX_VERSION_1_3 ---------------------------- */
  168. #ifndef GLX_VERSION_1_3
  169. #define GLX_VERSION_1_3 1
  170. #define GLX_RGBA_BIT 0x00000001
  171. #define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
  172. #define GLX_WINDOW_BIT 0x00000001
  173. #define GLX_COLOR_INDEX_BIT 0x00000002
  174. #define GLX_PIXMAP_BIT 0x00000002
  175. #define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
  176. #define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
  177. #define GLX_PBUFFER_BIT 0x00000004
  178. #define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
  179. #define GLX_AUX_BUFFERS_BIT 0x00000010
  180. #define GLX_CONFIG_CAVEAT 0x20
  181. #define GLX_DEPTH_BUFFER_BIT 0x00000020
  182. #define GLX_X_VISUAL_TYPE 0x22
  183. #define GLX_TRANSPARENT_TYPE 0x23
  184. #define GLX_TRANSPARENT_INDEX_VALUE 0x24
  185. #define GLX_TRANSPARENT_RED_VALUE 0x25
  186. #define GLX_TRANSPARENT_GREEN_VALUE 0x26
  187. #define GLX_TRANSPARENT_BLUE_VALUE 0x27
  188. #define GLX_TRANSPARENT_ALPHA_VALUE 0x28
  189. #define GLX_STENCIL_BUFFER_BIT 0x00000040
  190. #define GLX_ACCUM_BUFFER_BIT 0x00000080
  191. #define GLX_NONE 0x8000
  192. #define GLX_SLOW_CONFIG 0x8001
  193. #define GLX_TRUE_COLOR 0x8002
  194. #define GLX_DIRECT_COLOR 0x8003
  195. #define GLX_PSEUDO_COLOR 0x8004
  196. #define GLX_STATIC_COLOR 0x8005
  197. #define GLX_GRAY_SCALE 0x8006
  198. #define GLX_STATIC_GRAY 0x8007
  199. #define GLX_TRANSPARENT_RGB 0x8008
  200. #define GLX_TRANSPARENT_INDEX 0x8009
  201. #define GLX_VISUAL_ID 0x800B
  202. #define GLX_SCREEN 0x800C
  203. #define GLX_NON_CONFORMANT_CONFIG 0x800D
  204. #define GLX_DRAWABLE_TYPE 0x8010
  205. #define GLX_RENDER_TYPE 0x8011
  206. #define GLX_X_RENDERABLE 0x8012
  207. #define GLX_FBCONFIG_ID 0x8013
  208. #define GLX_RGBA_TYPE 0x8014
  209. #define GLX_COLOR_INDEX_TYPE 0x8015
  210. #define GLX_MAX_PBUFFER_WIDTH 0x8016
  211. #define GLX_MAX_PBUFFER_HEIGHT 0x8017
  212. #define GLX_MAX_PBUFFER_PIXELS 0x8018
  213. #define GLX_PRESERVED_CONTENTS 0x801B
  214. #define GLX_LARGEST_PBUFFER 0x801C
  215. #define GLX_WIDTH 0x801D
  216. #define GLX_HEIGHT 0x801E
  217. #define GLX_EVENT_MASK 0x801F
  218. #define GLX_DAMAGED 0x8020
  219. #define GLX_SAVED 0x8021
  220. #define GLX_WINDOW 0x8022
  221. #define GLX_PBUFFER 0x8023
  222. #define GLX_PBUFFER_HEIGHT 0x8040
  223. #define GLX_PBUFFER_WIDTH 0x8041
  224. #define GLX_PBUFFER_CLOBBER_MASK 0x08000000
  225. #define GLX_DONT_CARE 0xFFFFFFFF
  226. typedef XID GLXFBConfigID;
  227. typedef XID GLXWindow;
  228. typedef XID GLXPbuffer;
  229. typedef struct __GLXFBConfigRec *GLXFBConfig;
  230. typedef struct {
  231. int event_type;
  232. int draw_type;
  233. unsigned long serial;
  234. Bool send_event;
  235. Display *display;
  236. GLXDrawable drawable;
  237. unsigned int buffer_mask;
  238. unsigned int aux_buffer;
  239. int x, y;
  240. int width, height;
  241. int count;
  242. } GLXPbufferClobberEvent;
  243. typedef union __GLXEvent {
  244. GLXPbufferClobberEvent glxpbufferclobber;
  245. long pad[24];
  246. } GLXEvent;
  247. typedef GLXFBConfig* ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
  248. typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
  249. typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list);
  250. typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
  251. typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
  252. typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf);
  253. typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap);
  254. typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win);
  255. typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
  256. typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value);
  257. typedef GLXFBConfig* ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements);
  258. typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
  259. typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config);
  260. typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
  261. typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value);
  262. typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
  263. typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask);
  264. #define glXChooseFBConfig GLXEW_GET_FUN(__glewXChooseFBConfig)
  265. #define glXCreateNewContext GLXEW_GET_FUN(__glewXCreateNewContext)
  266. #define glXCreatePbuffer GLXEW_GET_FUN(__glewXCreatePbuffer)
  267. #define glXCreatePixmap GLXEW_GET_FUN(__glewXCreatePixmap)
  268. #define glXCreateWindow GLXEW_GET_FUN(__glewXCreateWindow)
  269. #define glXDestroyPbuffer GLXEW_GET_FUN(__glewXDestroyPbuffer)
  270. #define glXDestroyPixmap GLXEW_GET_FUN(__glewXDestroyPixmap)
  271. #define glXDestroyWindow GLXEW_GET_FUN(__glewXDestroyWindow)
  272. #define glXGetCurrentReadDrawable GLXEW_GET_FUN(__glewXGetCurrentReadDrawable)
  273. #define glXGetFBConfigAttrib GLXEW_GET_FUN(__glewXGetFBConfigAttrib)
  274. #define glXGetFBConfigs GLXEW_GET_FUN(__glewXGetFBConfigs)
  275. #define glXGetSelectedEvent GLXEW_GET_FUN(__glewXGetSelectedEvent)
  276. #define glXGetVisualFromFBConfig GLXEW_GET_FUN(__glewXGetVisualFromFBConfig)
  277. #define glXMakeContextCurrent GLXEW_GET_FUN(__glewXMakeContextCurrent)
  278. #define glXQueryContext GLXEW_GET_FUN(__glewXQueryContext)
  279. #define glXQueryDrawable GLXEW_GET_FUN(__glewXQueryDrawable)
  280. #define glXSelectEvent GLXEW_GET_FUN(__glewXSelectEvent)
  281. #define GLXEW_VERSION_1_3 GLXEW_GET_VAR(__GLXEW_VERSION_1_3)
  282. #endif /* GLX_VERSION_1_3 */
  283. /* ---------------------------- GLX_VERSION_1_4 ---------------------------- */
  284. #ifndef GLX_VERSION_1_4
  285. #define GLX_VERSION_1_4 1
  286. #define GLX_SAMPLE_BUFFERS 100000
  287. #define GLX_SAMPLES 100001
  288. extern void ( * glXGetProcAddress (const GLubyte *procName)) (void);
  289. #define GLXEW_VERSION_1_4 GLXEW_GET_VAR(__GLXEW_VERSION_1_4)
  290. #endif /* GLX_VERSION_1_4 */
  291. /* -------------------------- GLX_3DFX_multisample ------------------------- */
  292. #ifndef GLX_3DFX_multisample
  293. #define GLX_3DFX_multisample 1
  294. #define GLX_SAMPLE_BUFFERS_3DFX 0x8050
  295. #define GLX_SAMPLES_3DFX 0x8051
  296. #define GLXEW_3DFX_multisample GLXEW_GET_VAR(__GLXEW_3DFX_multisample)
  297. #endif /* GLX_3DFX_multisample */
  298. /* ------------------------- GLX_ARB_create_context ------------------------ */
  299. #ifndef GLX_ARB_create_context
  300. #define GLX_ARB_create_context 1
  301. #define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001
  302. #define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
  303. #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
  304. #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
  305. #define GLX_CONTEXT_FLAGS_ARB 0x2094
  306. typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list);
  307. #define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB)
  308. #define GLXEW_ARB_create_context GLXEW_GET_VAR(__GLXEW_ARB_create_context)
  309. #endif /* GLX_ARB_create_context */
  310. /* ------------------------- GLX_ARB_fbconfig_float ------------------------ */
  311. #ifndef GLX_ARB_fbconfig_float
  312. #define GLX_ARB_fbconfig_float 1
  313. #define GLX_RGBA_FLOAT_BIT 0x00000004
  314. #define GLX_RGBA_FLOAT_TYPE 0x20B9
  315. #define GLXEW_ARB_fbconfig_float GLXEW_GET_VAR(__GLXEW_ARB_fbconfig_float)
  316. #endif /* GLX_ARB_fbconfig_float */
  317. /* ------------------------ GLX_ARB_framebuffer_sRGB ----------------------- */
  318. #ifndef GLX_ARB_framebuffer_sRGB
  319. #define GLX_ARB_framebuffer_sRGB 1
  320. #define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2
  321. #define GLXEW_ARB_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_ARB_framebuffer_sRGB)
  322. #endif /* GLX_ARB_framebuffer_sRGB */
  323. /* ------------------------ GLX_ARB_get_proc_address ----------------------- */
  324. #ifndef GLX_ARB_get_proc_address
  325. #define GLX_ARB_get_proc_address 1
  326. extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void);
  327. #define GLXEW_ARB_get_proc_address GLXEW_GET_VAR(__GLXEW_ARB_get_proc_address)
  328. #endif /* GLX_ARB_get_proc_address */
  329. /* -------------------------- GLX_ARB_multisample -------------------------- */
  330. #ifndef GLX_ARB_multisample
  331. #define GLX_ARB_multisample 1
  332. #define GLX_SAMPLE_BUFFERS_ARB 100000
  333. #define GLX_SAMPLES_ARB 100001
  334. #define GLXEW_ARB_multisample GLXEW_GET_VAR(__GLXEW_ARB_multisample)
  335. #endif /* GLX_ARB_multisample */
  336. /* ----------------------- GLX_ATI_pixel_format_float ---------------------- */
  337. #ifndef GLX_ATI_pixel_format_float
  338. #define GLX_ATI_pixel_format_float 1
  339. #define GLX_RGBA_FLOAT_ATI_BIT 0x00000100
  340. #define GLXEW_ATI_pixel_format_float GLXEW_GET_VAR(__GLXEW_ATI_pixel_format_float)
  341. #endif /* GLX_ATI_pixel_format_float */
  342. /* ------------------------- GLX_ATI_render_texture ------------------------ */
  343. #ifndef GLX_ATI_render_texture
  344. #define GLX_ATI_render_texture 1
  345. #define GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800
  346. #define GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801
  347. #define GLX_TEXTURE_FORMAT_ATI 0x9802
  348. #define GLX_TEXTURE_TARGET_ATI 0x9803
  349. #define GLX_MIPMAP_TEXTURE_ATI 0x9804
  350. #define GLX_TEXTURE_RGB_ATI 0x9805
  351. #define GLX_TEXTURE_RGBA_ATI 0x9806
  352. #define GLX_NO_TEXTURE_ATI 0x9807
  353. #define GLX_TEXTURE_CUBE_MAP_ATI 0x9808
  354. #define GLX_TEXTURE_1D_ATI 0x9809
  355. #define GLX_TEXTURE_2D_ATI 0x980A
  356. #define GLX_MIPMAP_LEVEL_ATI 0x980B
  357. #define GLX_CUBE_MAP_FACE_ATI 0x980C
  358. #define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D
  359. #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E
  360. #define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F
  361. #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810
  362. #define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811
  363. #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812
  364. #define GLX_FRONT_LEFT_ATI 0x9813
  365. #define GLX_FRONT_RIGHT_ATI 0x9814
  366. #define GLX_BACK_LEFT_ATI 0x9815
  367. #define GLX_BACK_RIGHT_ATI 0x9816
  368. #define GLX_AUX0_ATI 0x9817
  369. #define GLX_AUX1_ATI 0x9818
  370. #define GLX_AUX2_ATI 0x9819
  371. #define GLX_AUX3_ATI 0x981A
  372. #define GLX_AUX4_ATI 0x981B
  373. #define GLX_AUX5_ATI 0x981C
  374. #define GLX_AUX6_ATI 0x981D
  375. #define GLX_AUX7_ATI 0x981E
  376. #define GLX_AUX8_ATI 0x981F
  377. #define GLX_AUX9_ATI 0x9820
  378. #define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821
  379. #define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822
  380. typedef void ( * PFNGLXBINDTEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer);
  381. typedef void ( * PFNGLXDRAWABLEATTRIBATIPROC) (Display *dpy, GLXDrawable draw, const int *attrib_list);
  382. typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer);
  383. #define glXBindTexImageATI GLXEW_GET_FUN(__glewXBindTexImageATI)
  384. #define glXDrawableAttribATI GLXEW_GET_FUN(__glewXDrawableAttribATI)
  385. #define glXReleaseTexImageATI GLXEW_GET_FUN(__glewXReleaseTexImageATI)
  386. #define GLXEW_ATI_render_texture GLXEW_GET_VAR(__GLXEW_ATI_render_texture)
  387. #endif /* GLX_ATI_render_texture */
  388. /* --------------------- GLX_EXT_fbconfig_packed_float --------------------- */
  389. #ifndef GLX_EXT_fbconfig_packed_float
  390. #define GLX_EXT_fbconfig_packed_float 1
  391. #define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
  392. #define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
  393. #define GLXEW_EXT_fbconfig_packed_float GLXEW_GET_VAR(__GLXEW_EXT_fbconfig_packed_float)
  394. #endif /* GLX_EXT_fbconfig_packed_float */
  395. /* ------------------------ GLX_EXT_framebuffer_sRGB ----------------------- */
  396. #ifndef GLX_EXT_framebuffer_sRGB
  397. #define GLX_EXT_framebuffer_sRGB 1
  398. #define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
  399. #define GLXEW_EXT_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_EXT_framebuffer_sRGB)
  400. #endif /* GLX_EXT_framebuffer_sRGB */
  401. /* ------------------------- GLX_EXT_import_context ------------------------ */
  402. #ifndef GLX_EXT_import_context
  403. #define GLX_EXT_import_context 1
  404. #define GLX_SHARE_CONTEXT_EXT 0x800A
  405. #define GLX_VISUAL_ID_EXT 0x800B
  406. #define GLX_SCREEN_EXT 0x800C
  407. typedef XID GLXContextID;
  408. typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display* dpy, GLXContext context);
  409. typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context);
  410. typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display* dpy, GLXContextID contextID);
  411. typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute,int *value);
  412. #define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT)
  413. #define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT)
  414. #define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT)
  415. #define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT)
  416. #define GLXEW_EXT_import_context GLXEW_GET_VAR(__GLXEW_EXT_import_context)
  417. #endif /* GLX_EXT_import_context */
  418. /* -------------------------- GLX_EXT_scene_marker ------------------------- */
  419. #ifndef GLX_EXT_scene_marker
  420. #define GLX_EXT_scene_marker 1
  421. #define GLXEW_EXT_scene_marker GLXEW_GET_VAR(__GLXEW_EXT_scene_marker)
  422. #endif /* GLX_EXT_scene_marker */
  423. /* ---------------------- GLX_EXT_texture_from_pixmap ---------------------- */
  424. #ifndef GLX_EXT_texture_from_pixmap
  425. #define GLX_EXT_texture_from_pixmap 1
  426. #define GLX_TEXTURE_1D_BIT_EXT 0x00000001
  427. #define GLX_TEXTURE_2D_BIT_EXT 0x00000002
  428. #define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
  429. #define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
  430. #define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
  431. #define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
  432. #define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
  433. #define GLX_Y_INVERTED_EXT 0x20D4
  434. #define GLX_TEXTURE_FORMAT_EXT 0x20D5
  435. #define GLX_TEXTURE_TARGET_EXT 0x20D6
  436. #define GLX_MIPMAP_TEXTURE_EXT 0x20D7
  437. #define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
  438. #define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
  439. #define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
  440. #define GLX_TEXTURE_1D_EXT 0x20DB
  441. #define GLX_TEXTURE_2D_EXT 0x20DC
  442. #define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
  443. #define GLX_FRONT_LEFT_EXT 0x20DE
  444. #define GLX_FRONT_RIGHT_EXT 0x20DF
  445. #define GLX_BACK_LEFT_EXT 0x20E0
  446. #define GLX_BACK_RIGHT_EXT 0x20E1
  447. #define GLX_AUX0_EXT 0x20E2
  448. #define GLX_AUX1_EXT 0x20E3
  449. #define GLX_AUX2_EXT 0x20E4
  450. #define GLX_AUX3_EXT 0x20E5
  451. #define GLX_AUX4_EXT 0x20E6
  452. #define GLX_AUX5_EXT 0x20E7
  453. #define GLX_AUX6_EXT 0x20E8
  454. #define GLX_AUX7_EXT 0x20E9
  455. #define GLX_AUX8_EXT 0x20EA
  456. #define GLX_AUX9_EXT 0x20EB
  457. typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer, const int *attrib_list);
  458. typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer);
  459. #define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT)
  460. #define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT)
  461. #define GLXEW_EXT_texture_from_pixmap GLXEW_GET_VAR(__GLXEW_EXT_texture_from_pixmap)
  462. #endif /* GLX_EXT_texture_from_pixmap */
  463. /* -------------------------- GLX_EXT_visual_info -------------------------- */
  464. #ifndef GLX_EXT_visual_info
  465. #define GLX_EXT_visual_info 1
  466. #define GLX_X_VISUAL_TYPE_EXT 0x22
  467. #define GLX_TRANSPARENT_TYPE_EXT 0x23
  468. #define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
  469. #define GLX_TRANSPARENT_RED_VALUE_EXT 0x25
  470. #define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
  471. #define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
  472. #define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
  473. #define GLX_NONE_EXT 0x8000
  474. #define GLX_TRUE_COLOR_EXT 0x8002
  475. #define GLX_DIRECT_COLOR_EXT 0x8003
  476. #define GLX_PSEUDO_COLOR_EXT 0x8004
  477. #define GLX_STATIC_COLOR_EXT 0x8005
  478. #define GLX_GRAY_SCALE_EXT 0x8006
  479. #define GLX_STATIC_GRAY_EXT 0x8007
  480. #define GLX_TRANSPARENT_RGB_EXT 0x8008
  481. #define GLX_TRANSPARENT_INDEX_EXT 0x8009
  482. #define GLXEW_EXT_visual_info GLXEW_GET_VAR(__GLXEW_EXT_visual_info)
  483. #endif /* GLX_EXT_visual_info */
  484. /* ------------------------- GLX_EXT_visual_rating ------------------------- */
  485. #ifndef GLX_EXT_visual_rating
  486. #define GLX_EXT_visual_rating 1
  487. #define GLX_VISUAL_CAVEAT_EXT 0x20
  488. #define GLX_SLOW_VISUAL_EXT 0x8001
  489. #define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
  490. #define GLXEW_EXT_visual_rating GLXEW_GET_VAR(__GLXEW_EXT_visual_rating)
  491. #endif /* GLX_EXT_visual_rating */
  492. /* -------------------------- GLX_MESA_agp_offset -------------------------- */
  493. #ifndef GLX_MESA_agp_offset
  494. #define GLX_MESA_agp_offset 1
  495. typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void* pointer);
  496. #define glXGetAGPOffsetMESA GLXEW_GET_FUN(__glewXGetAGPOffsetMESA)
  497. #define GLXEW_MESA_agp_offset GLXEW_GET_VAR(__GLXEW_MESA_agp_offset)
  498. #endif /* GLX_MESA_agp_offset */
  499. /* ------------------------ GLX_MESA_copy_sub_buffer ----------------------- */
  500. #ifndef GLX_MESA_copy_sub_buffer
  501. #define GLX_MESA_copy_sub_buffer 1
  502. typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display* dpy, GLXDrawable drawable, int x, int y, int width, int height);
  503. #define glXCopySubBufferMESA GLXEW_GET_FUN(__glewXCopySubBufferMESA)
  504. #define GLXEW_MESA_copy_sub_buffer GLXEW_GET_VAR(__GLXEW_MESA_copy_sub_buffer)
  505. #endif /* GLX_MESA_copy_sub_buffer */
  506. /* ------------------------ GLX_MESA_pixmap_colormap ----------------------- */
  507. #ifndef GLX_MESA_pixmap_colormap
  508. #define GLX_MESA_pixmap_colormap 1
  509. typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
  510. #define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA)
  511. #define GLXEW_MESA_pixmap_colormap GLXEW_GET_VAR(__GLXEW_MESA_pixmap_colormap)
  512. #endif /* GLX_MESA_pixmap_colormap */
  513. /* ------------------------ GLX_MESA_release_buffers ----------------------- */
  514. #ifndef GLX_MESA_release_buffers
  515. #define GLX_MESA_release_buffers 1
  516. typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable d);
  517. #define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA)
  518. #define GLXEW_MESA_release_buffers GLXEW_GET_VAR(__GLXEW_MESA_release_buffers)
  519. #endif /* GLX_MESA_release_buffers */
  520. /* ------------------------- GLX_MESA_set_3dfx_mode ------------------------ */
  521. #ifndef GLX_MESA_set_3dfx_mode
  522. #define GLX_MESA_set_3dfx_mode 1
  523. #define GLX_3DFX_WINDOW_MODE_MESA 0x1
  524. #define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
  525. typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode);
  526. #define glXSet3DfxModeMESA GLXEW_GET_FUN(__glewXSet3DfxModeMESA)
  527. #define GLXEW_MESA_set_3dfx_mode GLXEW_GET_VAR(__GLXEW_MESA_set_3dfx_mode)
  528. #endif /* GLX_MESA_set_3dfx_mode */
  529. /* -------------------------- GLX_NV_float_buffer -------------------------- */
  530. #ifndef GLX_NV_float_buffer
  531. #define GLX_NV_float_buffer 1
  532. #define GLX_FLOAT_COMPONENTS_NV 0x20B0
  533. #define GLXEW_NV_float_buffer GLXEW_GET_VAR(__GLXEW_NV_float_buffer)
  534. #endif /* GLX_NV_float_buffer */
  535. /* -------------------------- GLX_NV_present_video ------------------------- */
  536. #ifndef GLX_NV_present_video
  537. #define GLX_NV_present_video 1
  538. #define GLX_NUM_VIDEO_SLOTS_NV 0x20F0
  539. typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list);
  540. typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements);
  541. #define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV)
  542. #define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV)
  543. #define GLXEW_NV_present_video GLXEW_GET_VAR(__GLXEW_NV_present_video)
  544. #endif /* GLX_NV_present_video */
  545. /* --------------------------- GLX_NV_swap_group --------------------------- */
  546. #ifndef GLX_NV_swap_group
  547. #define GLX_NV_swap_group 1
  548. typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier);
  549. typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group);
  550. typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint *count);
  551. typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers);
  552. typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier);
  553. typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen);
  554. #define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV)
  555. #define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV)
  556. #define glXQueryFrameCountNV GLXEW_GET_FUN(__glewXQueryFrameCountNV)
  557. #define glXQueryMaxSwapGroupsNV GLXEW_GET_FUN(__glewXQueryMaxSwapGroupsNV)
  558. #define glXQuerySwapGroupNV GLXEW_GET_FUN(__glewXQuerySwapGroupNV)
  559. #define glXResetFrameCountNV GLXEW_GET_FUN(__glewXResetFrameCountNV)
  560. #define GLXEW_NV_swap_group GLXEW_GET_VAR(__GLXEW_NV_swap_group)
  561. #endif /* GLX_NV_swap_group */
  562. /* ----------------------- GLX_NV_vertex_array_range ----------------------- */
  563. #ifndef GLX_NV_vertex_array_range
  564. #define GLX_NV_vertex_array_range 1
  565. typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);
  566. typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer);
  567. #define glXAllocateMemoryNV GLXEW_GET_FUN(__glewXAllocateMemoryNV)
  568. #define glXFreeMemoryNV GLXEW_GET_FUN(__glewXFreeMemoryNV)
  569. #define GLXEW_NV_vertex_array_range GLXEW_GET_VAR(__GLXEW_NV_vertex_array_range)
  570. #endif /* GLX_NV_vertex_array_range */
  571. /* -------------------------- GLX_NV_video_output -------------------------- */
  572. #ifndef GLX_NV_video_output
  573. #define GLX_NV_video_output 1
  574. #define GLX_VIDEO_OUT_COLOR_NV 0x20C3
  575. #define GLX_VIDEO_OUT_ALPHA_NV 0x20C4
  576. #define GLX_VIDEO_OUT_DEPTH_NV 0x20C5
  577. #define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
  578. #define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
  579. #define GLX_VIDEO_OUT_FRAME_NV 0x20C8
  580. #define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9
  581. #define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA
  582. #define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB
  583. #define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC
  584. typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer);
  585. typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice);
  586. typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
  587. typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice);
  588. typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf);
  589. typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock);
  590. #define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV)
  591. #define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV)
  592. #define glXGetVideoInfoNV GLXEW_GET_FUN(__glewXGetVideoInfoNV)
  593. #define glXReleaseVideoDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoDeviceNV)
  594. #define glXReleaseVideoImageNV GLXEW_GET_FUN(__glewXReleaseVideoImageNV)
  595. #define glXSendPbufferToVideoNV GLXEW_GET_FUN(__glewXSendPbufferToVideoNV)
  596. #define GLXEW_NV_video_output GLXEW_GET_VAR(__GLXEW_NV_video_output)
  597. #endif /* GLX_NV_video_output */
  598. /* -------------------------- GLX_OML_swap_method -------------------------- */
  599. #ifndef GLX_OML_swap_method
  600. #define GLX_OML_swap_method 1
  601. #define GLX_SWAP_METHOD_OML 0x8060
  602. #define GLX_SWAP_EXCHANGE_OML 0x8061
  603. #define GLX_SWAP_COPY_OML 0x8062
  604. #define GLX_SWAP_UNDEFINED_OML 0x8063
  605. #define GLXEW_OML_swap_method GLXEW_GET_VAR(__GLXEW_OML_swap_method)
  606. #endif /* GLX_OML_swap_method */
  607. /* -------------------------- GLX_OML_sync_control ------------------------- */
  608. #if !defined(GLX_OML_sync_control) && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
  609. #include <inttypes.h>
  610. #define GLX_OML_sync_control 1
  611. typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator);
  612. typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc);
  613. typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
  614. typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc);
  615. typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc);
  616. #define glXGetMscRateOML GLXEW_GET_FUN(__glewXGetMscRateOML)
  617. #define glXGetSyncValuesOML GLXEW_GET_FUN(__glewXGetSyncValuesOML)
  618. #define glXSwapBuffersMscOML GLXEW_GET_FUN(__glewXSwapBuffersMscOML)
  619. #define glXWaitForMscOML GLXEW_GET_FUN(__glewXWaitForMscOML)
  620. #define glXWaitForSbcOML GLXEW_GET_FUN(__glewXWaitForSbcOML)
  621. #define GLXEW_OML_sync_control GLXEW_GET_VAR(__GLXEW_OML_sync_control)
  622. #endif /* GLX_OML_sync_control */
  623. /* ------------------------ GLX_SGIS_blended_overlay ----------------------- */
  624. #ifndef GLX_SGIS_blended_overlay
  625. #define GLX_SGIS_blended_overlay 1
  626. #define GLX_BLENDED_RGBA_SGIS 0x8025
  627. #define GLXEW_SGIS_blended_overlay GLXEW_GET_VAR(__GLXEW_SGIS_blended_overlay)
  628. #endif /* GLX_SGIS_blended_overlay */
  629. /* -------------------------- GLX_SGIS_color_range ------------------------- */
  630. #ifndef GLX_SGIS_color_range
  631. #define GLX_SGIS_color_range 1
  632. #define GLX_MIN_RED_SGIS 0
  633. #define GLX_MAX_GREEN_SGIS 0
  634. #define GLX_MIN_BLUE_SGIS 0
  635. #define GLX_MAX_ALPHA_SGIS 0
  636. #define GLX_MIN_GREEN_SGIS 0
  637. #define GLX_MIN_ALPHA_SGIS 0
  638. #define GLX_MAX_RED_SGIS 0
  639. #define GLX_EXTENDED_RANGE_SGIS 0
  640. #define GLX_MAX_BLUE_SGIS 0
  641. #define GLXEW_SGIS_color_range GLXEW_GET_VAR(__GLXEW_SGIS_color_range)
  642. #endif /* GLX_SGIS_color_range */
  643. /* -------------------------- GLX_SGIS_multisample ------------------------- */
  644. #ifndef GLX_SGIS_multisample
  645. #define GLX_SGIS_multisample 1
  646. #define GLX_SAMPLE_BUFFERS_SGIS 100000
  647. #define GLX_SAMPLES_SGIS 100001
  648. #define GLXEW_SGIS_multisample GLXEW_GET_VAR(__GLXEW_SGIS_multisample)
  649. #endif /* GLX_SGIS_multisample */
  650. /* ---------------------- GLX_SGIS_shared_multisample ---------------------- */
  651. #ifndef GLX_SGIS_shared_multisample
  652. #define GLX_SGIS_shared_multisample 1
  653. #define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
  654. #define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027
  655. #define GLXEW_SGIS_shared_multisample GLXEW_GET_VAR(__GLXEW_SGIS_shared_multisample)
  656. #endif /* GLX_SGIS_shared_multisample */
  657. /* --------------------------- GLX_SGIX_fbconfig --------------------------- */
  658. #ifndef GLX_SGIX_fbconfig
  659. #define GLX_SGIX_fbconfig 1
  660. #define GLX_WINDOW_BIT_SGIX 0x00000001
  661. #define GLX_RGBA_BIT_SGIX 0x00000001
  662. #define GLX_PIXMAP_BIT_SGIX 0x00000002
  663. #define GLX_COLOR_INDEX_BIT_SGIX 0x00000002
  664. #define GLX_SCREEN_EXT 0x800C
  665. #define GLX_DRAWABLE_TYPE_SGIX 0x8010
  666. #define GLX_RENDER_TYPE_SGIX 0x8011
  667. #define GLX_X_RENDERABLE_SGIX 0x8012
  668. #define GLX_FBCONFIG_ID_SGIX 0x8013
  669. #define GLX_RGBA_TYPE_SGIX 0x8014
  670. #define GLX_COLOR_INDEX_TYPE_SGIX 0x8015
  671. typedef XID GLXFBConfigIDSGIX;
  672. typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
  673. typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
  674. typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
  675. typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, Pixmap pixmap);
  676. typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int *value);
  677. typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo *vis);
  678. typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfig config);
  679. #define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX)
  680. #define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX)
  681. #define glXCreateGLXPixmapWithConfigSGIX GLXEW_GET_FUN(__glewXCreateGLXPixmapWithConfigSGIX)
  682. #define glXGetFBConfigAttribSGIX GLXEW_GET_FUN(__glewXGetFBConfigAttribSGIX)
  683. #define glXGetFBConfigFromVisualSGIX GLXEW_GET_FUN(__glewXGetFBConfigFromVisualSGIX)
  684. #define glXGetVisualFromFBConfigSGIX GLXEW_GET_FUN(__glewXGetVisualFromFBConfigSGIX)
  685. #define GLXEW_SGIX_fbconfig GLXEW_GET_VAR(__GLXEW_SGIX_fbconfig)
  686. #endif /* GLX_SGIX_fbconfig */
  687. /* --------------------------- GLX_SGIX_hyperpipe -------------------------- */
  688. #ifndef GLX_SGIX_hyperpipe
  689. #define GLX_SGIX_hyperpipe 1
  690. #define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001
  691. #define GLX_PIPE_RECT_SGIX 0x00000001
  692. #define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002
  693. #define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002
  694. #define GLX_HYPERPIPE_STEREO_SGIX 0x00000003
  695. #define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004
  696. #define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80
  697. #define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91
  698. #define GLX_BAD_HYPERPIPE_SGIX 92
  699. #define GLX_HYPERPIPE_ID_SGIX 0x8030
  700. typedef struct {
  701. char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
  702. int networkId;
  703. } GLXHyperpipeNetworkSGIX;
  704. typedef struct {
  705. char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
  706. int XOrigin;
  707. int YOrigin;
  708. int maxHeight;
  709. int maxWidth;
  710. } GLXPipeRectLimits;
  711. typedef struct {
  712. char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
  713. int channel;
  714. unsigned int participationType;
  715. int timeSlice;
  716. } GLXHyperpipeConfigSGIX;
  717. typedef struct {
  718. char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
  719. int srcXOrigin;
  720. int srcYOrigin;
  721. int srcWidth;
  722. int srcHeight;
  723. int destXOrigin;
  724. int destYOrigin;
  725. int destWidth;
  726. int destHeight;
  727. } GLXPipeRect;
  728. typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId);
  729. typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId);
  730. typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList);
  731. typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId);
  732. typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList);
  733. typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList);
  734. typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes);
  735. typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes);
  736. #define glXBindHyperpipeSGIX GLXEW_GET_FUN(__glewXBindHyperpipeSGIX)
  737. #define glXDestroyHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXDestroyHyperpipeConfigSGIX)
  738. #define glXHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXHyperpipeAttribSGIX)
  739. #define glXHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXHyperpipeConfigSGIX)
  740. #define glXQueryHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeAttribSGIX)
  741. #define glXQueryHyperpipeBestAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeBestAttribSGIX)
  742. #define glXQueryHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeConfigSGIX)
  743. #define glXQueryHyperpipeNetworkSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeNetworkSGIX)
  744. #define GLXEW_SGIX_hyperpipe GLXEW_GET_VAR(__GLXEW_SGIX_hyperpipe)
  745. #endif /* GLX_SGIX_hyperpipe */
  746. /* ---------------------------- GLX_SGIX_pbuffer --------------------------- */
  747. #ifndef GLX_SGIX_pbuffer
  748. #define GLX_SGIX_pbuffer 1
  749. #define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001
  750. #define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002
  751. #define GLX_PBUFFER_BIT_SGIX 0x00000004
  752. #define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004
  753. #define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008
  754. #define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010
  755. #define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020
  756. #define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040
  757. #define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080
  758. #define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100
  759. #define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016
  760. #define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017
  761. #define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018
  762. #define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
  763. #define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
  764. #define GLX_PRESERVED_CONTENTS_SGIX 0x801B
  765. #define GLX_LARGEST_PBUFFER_SGIX 0x801C
  766. #define GLX_WIDTH_SGIX 0x801D
  767. #define GLX_HEIGHT_SGIX 0x801E
  768. #define GLX_EVENT_MASK_SGIX 0x801F
  769. #define GLX_DAMAGED_SGIX 0x8020
  770. #define GLX_SAVED_SGIX 0x8021
  771. #define GLX_WINDOW_SGIX 0x8022
  772. #define GLX_PBUFFER_SGIX 0x8023
  773. #define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000
  774. typedef XID GLXPbufferSGIX;
  775. typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX;
  776. typedef GLXPbuffer ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list);
  777. typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf);
  778. typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long *mask);
  779. typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf, int attribute, unsigned int *value);
  780. typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long mask);
  781. #define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX)
  782. #define glXDestroyGLXPbufferSGIX GLXEW_GET_FUN(__glewXDestroyGLXPbufferSGIX)
  783. #define glXGetSelectedEventSGIX GLXEW_GET_FUN(__glewXGetSelectedEventSGIX)
  784. #define glXQueryGLXPbufferSGIX GLXEW_GET_FUN(__glewXQueryGLXPbufferSGIX)
  785. #define glXSelectEventSGIX GLXEW_GET_FUN(__glewXSelectEventSGIX)
  786. #define GLXEW_SGIX_pbuffer GLXEW_GET_VAR(__GLXEW_SGIX_pbuffer)
  787. #endif /* GLX_SGIX_pbuffer */
  788. /* ------------------------- GLX_SGIX_swap_barrier ------------------------- */
  789. #ifndef GLX_SGIX_swap_barrier
  790. #define GLX_SGIX_swap_barrier 1
  791. typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier);
  792. typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max);
  793. #define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX)
  794. #define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX)
  795. #define GLXEW_SGIX_swap_barrier GLXEW_GET_VAR(__GLXEW_SGIX_swap_barrier)
  796. #endif /* GLX_SGIX_swap_barrier */
  797. /* -------------------------- GLX_SGIX_swap_group -------------------------- */
  798. #ifndef GLX_SGIX_swap_group
  799. #define GLX_SGIX_swap_group 1
  800. typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member);
  801. #define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX)
  802. #define GLXEW_SGIX_swap_group GLXEW_GET_VAR(__GLXEW_SGIX_swap_group)
  803. #endif /* GLX_SGIX_swap_group */
  804. /* ------------------------- GLX_SGIX_video_resize ------------------------- */
  805. #ifndef GLX_SGIX_video_resize
  806. #define GLX_SGIX_video_resize 1
  807. #define GLX_SYNC_FRAME_SGIX 0x00000000
  808. #define GLX_SYNC_SWAP_SGIX 0x00000001
  809. typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display* display, int screen, int channel, Window window);
  810. typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int x, int y, int w, int h);
  811. typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display* display, int screen, int channel, GLenum synctype);
  812. typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int *x, int *y, int *w, int *h);
  813. typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
  814. #define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX)
  815. #define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX)
  816. #define glXChannelRectSyncSGIX GLXEW_GET_FUN(__glewXChannelRectSyncSGIX)
  817. #define glXQueryChannelDeltasSGIX GLXEW_GET_FUN(__glewXQueryChannelDeltasSGIX)
  818. #define glXQueryChannelRectSGIX GLXEW_GET_FUN(__glewXQueryChannelRectSGIX)
  819. #define GLXEW_SGIX_video_resize GLXEW_GET_VAR(__GLXEW_SGIX_video_resize)
  820. #endif /* GLX_SGIX_video_resize */
  821. /* ---------------------- GLX_SGIX_visual_select_group --------------------- */
  822. #ifndef GLX_SGIX_visual_select_group
  823. #define GLX_SGIX_visual_select_group 1
  824. #define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028
  825. #define GLXEW_SGIX_visual_select_group GLXEW_GET_VAR(__GLXEW_SGIX_visual_select_group)
  826. #endif /* GLX_SGIX_visual_select_group */
  827. /* ---------------------------- GLX_SGI_cushion ---------------------------- */
  828. #ifndef GLX_SGI_cushion
  829. #define GLX_SGI_cushion 1
  830. typedef void ( * PFNGLXCUSHIONSGIPROC) (Display* dpy, Window window, float cushion);
  831. #define glXCushionSGI GLXEW_GET_FUN(__glewXCushionSGI)
  832. #define GLXEW_SGI_cushion GLXEW_GET_VAR(__GLXEW_SGI_cushion)
  833. #endif /* GLX_SGI_cushion */
  834. /* ----------------------- GLX_SGI_make_current_read ----------------------- */
  835. #ifndef GLX_SGI_make_current_read
  836. #define GLX_SGI_make_current_read 1
  837. typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void);
  838. typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display* dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
  839. #define glXGetCurrentReadDrawableSGI GLXEW_GET_FUN(__glewXGetCurrentReadDrawableSGI)
  840. #define glXMakeCurrentReadSGI GLXEW_GET_FUN(__glewXMakeCurrentReadSGI)
  841. #define GLXEW_SGI_make_current_read GLXEW_GET_VAR(__GLXEW_SGI_make_current_read)
  842. #endif /* GLX_SGI_make_current_read */
  843. /* -------------------------- GLX_SGI_swap_control ------------------------- */
  844. #ifndef GLX_SGI_swap_control
  845. #define GLX_SGI_swap_control 1
  846. typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval);
  847. #define glXSwapIntervalSGI GLXEW_GET_FUN(__glewXSwapIntervalSGI)
  848. #define GLXEW_SGI_swap_control GLXEW_GET_VAR(__GLXEW_SGI_swap_control)
  849. #endif /* GLX_SGI_swap_control */
  850. /* --------------------------- GLX_SGI_video_sync -------------------------- */
  851. #ifndef GLX_SGI_video_sync
  852. #define GLX_SGI_video_sync 1
  853. typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (uint* count);
  854. typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int* count);
  855. #define glXGetVideoSyncSGI GLXEW_GET_FUN(__glewXGetVideoSyncSGI)
  856. #define glXWaitVideoSyncSGI GLXEW_GET_FUN(__glewXWaitVideoSyncSGI)
  857. #define GLXEW_SGI_video_sync GLXEW_GET_VAR(__GLXEW_SGI_video_sync)
  858. #endif /* GLX_SGI_video_sync */
  859. /* --------------------- GLX_SUN_get_transparent_index --------------------- */
  860. #ifndef GLX_SUN_get_transparent_index
  861. #define GLX_SUN_get_transparent_index 1
  862. typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex);
  863. #define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN)
  864. #define GLXEW_SUN_get_transparent_index GLXEW_GET_VAR(__GLXEW_SUN_get_transparent_index)
  865. #endif /* GLX_SUN_get_transparent_index */
  866. /* -------------------------- GLX_SUN_video_resize ------------------------- */
  867. #ifndef GLX_SUN_video_resize
  868. #define GLX_SUN_video_resize 1
  869. #define GLX_VIDEO_RESIZE_SUN 0x8171
  870. #define GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD
  871. typedef int ( * PFNGLXGETVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float* factor);
  872. typedef int ( * PFNGLXVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float factor);
  873. #define glXGetVideoResizeSUN GLXEW_GET_FUN(__glewXGetVideoResizeSUN)
  874. #define glXVideoResizeSUN GLXEW_GET_FUN(__glewXVideoResizeSUN)
  875. #define GLXEW_SUN_video_resize GLXEW_GET_VAR(__GLXEW_SUN_video_resize)
  876. #endif /* GLX_SUN_video_resize */
  877. /* ------------------------------------------------------------------------- */
  878. #ifdef GLEW_MX
  879. #define GLXEW_EXPORT
  880. #else
  881. #define GLXEW_EXPORT extern
  882. #endif /* GLEW_MX */
  883. extern PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay;
  884. extern PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig;
  885. extern PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext;
  886. extern PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer;
  887. extern PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap;
  888. extern PFNGLXCREATEWINDOWPROC __glewXCreateWindow;
  889. extern PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer;
  890. extern PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap;
  891. extern PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow;
  892. extern PFNGLXGETCURRENTREADDRAWABLEPROC __glewXGetCurrentReadDrawable;
  893. extern PFNGLXGETFBCONFIGATTRIBPROC __glewXGetFBConfigAttrib;
  894. extern PFNGLXGETFBCONFIGSPROC __glewXGetFBConfigs;
  895. extern PFNGLXGETSELECTEDEVENTPROC __glewXGetSelectedEvent;
  896. extern PFNGLXGETVISUALFROMFBCONFIGPROC __glewXGetVisualFromFBConfig;
  897. extern PFNGLXMAKECONTEXTCURRENTPROC __glewXMakeContextCurrent;
  898. extern PFNGLXQUERYCONTEXTPROC __glewXQueryContext;
  899. extern PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable;
  900. extern PFNGLXSELECTEVENTPROC __glewXSelectEvent;
  901. extern PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB;
  902. extern PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI;
  903. extern PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI;
  904. extern PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI;
  905. extern PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT;
  906. extern PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT;
  907. extern PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT;
  908. extern PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT;
  909. extern PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT;
  910. extern PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT;
  911. extern PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA;
  912. extern PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA;
  913. extern PFNGLXCREATEGLXPIXMAPMESAPROC __glewXCreateGLXPixmapMESA;
  914. extern PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA;
  915. extern PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA;
  916. extern PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV;
  917. extern PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV;
  918. extern PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV;
  919. extern PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV;
  920. extern PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV;
  921. extern PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV;
  922. extern PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV;
  923. extern PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV;
  924. extern PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV;
  925. extern PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV;
  926. extern PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV;
  927. extern PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV;
  928. extern PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV;
  929. extern PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV;
  930. extern PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV;
  931. extern PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV;
  932. #ifdef GLX_OML_sync_control
  933. extern PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML;
  934. extern PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML;
  935. extern PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML;
  936. extern PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML;
  937. extern PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML;
  938. #endif
  939. extern PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX;
  940. extern PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX;
  941. extern PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC __glewXCreateGLXPixmapWithConfigSGIX;
  942. extern PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX;
  943. extern PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX;
  944. extern PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX;
  945. extern PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX;
  946. extern PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX;
  947. extern PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX;
  948. extern PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX;
  949. extern PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX;
  950. extern PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX;
  951. extern PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX;
  952. extern PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX;
  953. extern PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX;
  954. extern PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX;
  955. extern PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX;
  956. extern PFNGLXQUERYGLXPBUFFERSGIXPROC __glewXQueryGLXPbufferSGIX;
  957. extern PFNGLXSELECTEVENTSGIXPROC __glewXSelectEventSGIX;
  958. extern PFNGLXBINDSWAPBARRIERSGIXPROC __glewXBindSwapBarrierSGIX;
  959. extern PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC __glewXQueryMaxSwapBarriersSGIX;
  960. extern PFNGLXJOINSWAPGROUPSGIXPROC __glewXJoinSwapGroupSGIX;
  961. extern PFNGLXBINDCHANNELTOWINDOWSGIXPROC __glewXBindChannelToWindowSGIX;
  962. extern PFNGLXCHANNELRECTSGIXPROC __glewXChannelRectSGIX;
  963. extern PFNGLXCHANNELRECTSYNCSGIXPROC __glewXChannelRectSyncSGIX;
  964. extern PFNGLXQUERYCHANNELDELTASSGIXPROC __glewXQueryChannelDeltasSGIX;
  965. extern PFNGLXQUERYCHANNELRECTSGIXPROC __glewXQueryChannelRectSGIX;
  966. extern PFNGLXCUSHIONSGIPROC __glewXCushionSGI;
  967. extern PFNGLXGETCURRENTREADDRAWABLESGIPROC __glewXGetCurrentReadDrawableSGI;
  968. extern PFNGLXMAKECURRENTREADSGIPROC __glewXMakeCurrentReadSGI;
  969. extern PFNGLXSWAPINTERVALSGIPROC __glewXSwapIntervalSGI;
  970. extern PFNGLXGETVIDEOSYNCSGIPROC __glewXGetVideoSyncSGI;
  971. extern PFNGLXWAITVIDEOSYNCSGIPROC __glewXWaitVideoSyncSGI;
  972. extern PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN;
  973. extern PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN;
  974. extern PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN;
  975. #if defined(GLEW_MX)
  976. struct GLXEWContextStruct
  977. {
  978. #endif /* GLEW_MX */
  979. GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_0;
  980. GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_1;
  981. GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_2;
  982. GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_3;
  983. GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_4;
  984. GLXEW_EXPORT GLboolean __GLXEW_3DFX_multisample;
  985. GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context;
  986. GLXEW_EXPORT GLboolean __GLXEW_ARB_fbconfig_float;
  987. GLXEW_EXPORT GLboolean __GLXEW_ARB_framebuffer_sRGB;
  988. GLXEW_EXPORT GLboolean __GLXEW_ARB_get_proc_address;
  989. GLXEW_EXPORT GLboolean __GLXEW_ARB_multisample;
  990. GLXEW_EXPORT GLboolean __GLXEW_ATI_pixel_format_float;
  991. GLXEW_EXPORT GLboolean __GLXEW_ATI_render_texture;
  992. GLXEW_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float;
  993. GLXEW_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB;
  994. GLXEW_EXPORT GLboolean __GLXEW_EXT_import_context;
  995. GLXEW_EXPORT GLboolean __GLXEW_EXT_scene_marker;
  996. GLXEW_EXPORT GLboolean __GLXEW_EXT_texture_from_pixmap;
  997. GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_info;
  998. GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_rating;
  999. GLXEW_EXPORT GLboolean __GLXEW_MESA_agp_offset;
  1000. GLXEW_EXPORT GLboolean __GLXEW_MESA_copy_sub_buffer;
  1001. GLXEW_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap;
  1002. GLXEW_EXPORT GLboolean __GLXEW_MESA_release_buffers;
  1003. GLXEW_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode;
  1004. GLXEW_EXPORT GLboolean __GLXEW_NV_float_buffer;
  1005. GLXEW_EXPORT GLboolean __GLXEW_NV_present_video;
  1006. GLXEW_EXPORT GLboolean __GLXEW_NV_swap_group;
  1007. GLXEW_EXPORT GLboolean __GLXEW_NV_vertex_array_range;
  1008. GLXEW_EXPORT GLboolean __GLXEW_NV_video_output;
  1009. GLXEW_EXPORT GLboolean __GLXEW_OML_swap_method;
  1010. GLXEW_EXPORT GLboolean __GLXEW_OML_sync_control;
  1011. GLXEW_EXPORT GLboolean __GLXEW_SGIS_blended_overlay;
  1012. GLXEW_EXPORT GLboolean __GLXEW_SGIS_color_range;
  1013. GLXEW_EXPORT GLboolean __GLXEW_SGIS_multisample;
  1014. GLXEW_EXPORT GLboolean __GLXEW_SGIS_shared_multisample;
  1015. GLXEW_EXPORT GLboolean __GLXEW_SGIX_fbconfig;
  1016. GLXEW_EXPORT GLboolean __GLXEW_SGIX_hyperpipe;
  1017. GLXEW_EXPORT GLboolean __GLXEW_SGIX_pbuffer;
  1018. GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_barrier;
  1019. GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_group;
  1020. GLXEW_EXPORT GLboolean __GLXEW_SGIX_video_resize;
  1021. GLXEW_EXPORT GLboolean __GLXEW_SGIX_visual_select_group;
  1022. GLXEW_EXPORT GLboolean __GLXEW_SGI_cushion;
  1023. GLXEW_EXPORT GLboolean __GLXEW_SGI_make_current_read;
  1024. GLXEW_EXPORT GLboolean __GLXEW_SGI_swap_control;
  1025. GLXEW_EXPORT GLboolean __GLXEW_SGI_video_sync;
  1026. GLXEW_EXPORT GLboolean __GLXEW_SUN_get_transparent_index;
  1027. GLXEW_EXPORT GLboolean __GLXEW_SUN_video_resize;
  1028. #ifdef GLEW_MX
  1029. }; /* GLXEWContextStruct */
  1030. #endif /* GLEW_MX */
  1031. /* ------------------------------------------------------------------------ */
  1032. #ifdef GLEW_MX
  1033. typedef struct GLXEWContextStruct GLXEWContext;
  1034. extern GLenum glxewContextInit (GLXEWContext* ctx);
  1035. extern GLboolean glxewContextIsSupported (GLXEWContext* ctx, const char* name);
  1036. #define glxewInit() glxewContextInit(glxewGetContext())
  1037. #define glxewIsSupported(x) glxewContextIsSupported(glxewGetContext(), x)
  1038. #define GLXEW_GET_VAR(x) (*(const GLboolean*)&(glxewGetContext()->x))
  1039. #define GLXEW_GET_FUN(x) x
  1040. #else /* GLEW_MX */
  1041. #define GLXEW_GET_VAR(x) (*(const GLboolean*)&x)
  1042. #define GLXEW_GET_FUN(x) x
  1043. extern GLboolean glxewIsSupported (const char* name);
  1044. #endif /* GLEW_MX */
  1045. extern GLboolean glxewGetExtension (const char* name);
  1046. #ifdef __cplusplus
  1047. }
  1048. #endif
  1049. #endif /* __glxew_h__ */