1 #ifndef __glxext_h_ 2 #define __glxext_h_ 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 /* 9 ** License Applicability. Except to the extent portions of this file are 10 ** made subject to an alternative license as permitted in the SGI Free 11 ** Software License B, Version 1.1 (the "License"), the contents of this 12 ** file are subject only to the provisions of the License. You may not use 13 ** this file except in compliance with the License. You may obtain a copy 14 ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 15 ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: 16 ** 17 ** http://oss.sgi.com/projects/FreeB 18 ** 19 ** Note that, as provided in the License, the Software is distributed on an 20 ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS 21 ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND 22 ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A 23 ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. 24 ** 25 ** Original Code. The Original Code is: OpenGL Sample Implementation, 26 ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, 27 ** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. 28 ** Copyright in any portions created by third parties is as indicated 29 ** elsewhere herein. All Rights Reserved. 30 ** 31 ** Additional Notice Provisions: This software was created using the 32 ** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has 33 ** not been independently verified as being compliant with the OpenGL(R) 34 ** version 1.2.1 Specification. 35 */ 36 37 #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) 38 #define WIN32_LEAN_AND_MEAN 1 39 #include <windows.h> 40 #else 41 #include <GL/glx.h> 42 #endif 43 44 #ifndef APIENTRY 45 #define APIENTRY 46 #endif 47 48 49 /*************************************************************/ 50 51 /* Header file version number, required by OpenGL ABI for Linux */ 52 #define GLX_GLXEXT_VERSION 2 53 54 #ifndef GLX_VERSION_1_3 55 #define GLX_WINDOW_BIT 0x00000001 56 #define GLX_PIXMAP_BIT 0x00000002 57 #define GLX_PBUFFER_BIT 0x00000004 58 #define GLX_RGBA_BIT 0x00000001 59 #define GLX_COLOR_INDEX_BIT 0x00000002 60 #define GLX_PBUFFER_CLOBBER_MASK 0x08000000 61 #define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 62 #define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 63 #define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 64 #define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 65 #define GLX_AUX_BUFFERS_BIT 0x00000010 66 #define GLX_DEPTH_BUFFER_BIT 0x00000020 67 #define GLX_STENCIL_BUFFER_BIT 0x00000040 68 #define GLX_ACCUM_BUFFER_BIT 0x00000080 69 #define GLX_CONFIG_CAVEAT 0x20 70 #define GLX_X_VISUAL_TYPE 0x22 71 #define GLX_TRANSPARENT_TYPE 0x23 72 #define GLX_TRANSPARENT_INDEX_VALUE 0x24 73 #define GLX_TRANSPARENT_RED_VALUE 0x25 74 #define GLX_TRANSPARENT_GREEN_VALUE 0x26 75 #define GLX_TRANSPARENT_BLUE_VALUE 0x27 76 #define GLX_TRANSPARENT_ALPHA_VALUE 0x28 77 #define GLX_DONT_CARE 0xFFFFFFFF 78 #define GLX_NONE 0x8000 79 #define GLX_SLOW_CONFIG 0x8001 80 #define GLX_TRUE_COLOR 0x8002 81 #define GLX_DIRECT_COLOR 0x8003 82 #define GLX_PSEUDO_COLOR 0x8004 83 #define GLX_STATIC_COLOR 0x8005 84 #define GLX_GRAY_SCALE 0x8006 85 #define GLX_STATIC_GRAY 0x8007 86 #define GLX_TRANSPARENT_RGB 0x8008 87 #define GLX_TRANSPARENT_INDEX 0x8009 88 #define GLX_VISUAL_ID 0x800B 89 #define GLX_SCREEN 0x800C 90 #define GLX_NON_CONFORMANT_CONFIG 0x800D 91 #define GLX_DRAWABLE_TYPE 0x8010 92 #define GLX_RENDER_TYPE 0x8011 93 #define GLX_X_RENDERABLE 0x8012 94 #define GLX_FBCONFIG_ID 0x8013 95 #define GLX_RGBA_TYPE 0x8014 96 #define GLX_COLOR_INDEX_TYPE 0x8015 97 #define GLX_MAX_PBUFFER_WIDTH 0x8016 98 #define GLX_MAX_PBUFFER_HEIGHT 0x8017 99 #define GLX_MAX_PBUFFER_PIXELS 0x8018 100 #define GLX_PRESERVED_CONTENTS 0x801B 101 #define GLX_LARGEST_PBUFFER 0x801C 102 #define GLX_WIDTH 0x801D 103 #define GLX_HEIGHT 0x801E 104 #define GLX_EVENT_MASK 0x801F 105 #define GLX_DAMAGED 0x8020 106 #define GLX_SAVED 0x8021 107 #define GLX_WINDOW 0x8022 108 #define GLX_PBUFFER 0x8023 109 #define GLX_PBUFFER_HEIGHT 0x8040 110 #define GLX_PBUFFER_WIDTH 0x8041 111 #endif 112 113 #ifndef GLX_EXT_visual_info 114 #define GLX_X_VISUAL_TYPE_EXT 0x22 115 #define GLX_TRANSPARENT_TYPE_EXT 0x23 116 #define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 117 #define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 118 #define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 119 #define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 120 #define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 121 #define GLX_NONE_EXT 0x8000 122 #define GLX_TRUE_COLOR_EXT 0x8002 123 #define GLX_DIRECT_COLOR_EXT 0x8003 124 #define GLX_PSEUDO_COLOR_EXT 0x8004 125 #define GLX_STATIC_COLOR_EXT 0x8005 126 #define GLX_GRAY_SCALE_EXT 0x8006 127 #define GLX_STATIC_GRAY_EXT 0x8007 128 #define GLX_TRANSPARENT_RGB_EXT 0x8008 129 #define GLX_TRANSPARENT_INDEX_EXT 0x8009 130 #endif 131 132 #ifndef GLX_SGI_swap_control 133 #endif 134 135 #ifndef GLX_SGI_video_sync 136 #endif 137 138 #ifndef GLX_SGI_make_current_read 139 #endif 140 141 #ifndef GLX_SGIX_video_source 142 #endif 143 144 #ifndef GLX_EXT_visual_rating 145 #define GLX_VISUAL_CAVEAT_EXT 0x20 146 #define GLX_SLOW_VISUAL_EXT 0x8001 147 #define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D 148 /* reuse GLX_NONE_EXT */ 149 #endif 150 151 #ifndef GLX_EXT_import_context 152 #define GLX_SHARE_CONTEXT_EXT 0x800A 153 #define GLX_VISUAL_ID_EXT 0x800B 154 #define GLX_SCREEN_EXT 0x800C 155 #endif 156 157 #ifndef GLX_SGIX_fbconfig 158 #define GLX_WINDOW_BIT_SGIX 0x00000001 159 #define GLX_PIXMAP_BIT_SGIX 0x00000002 160 #define GLX_RGBA_BIT_SGIX 0x00000001 161 #define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 162 #define GLX_DRAWABLE_TYPE_SGIX 0x8010 163 #define GLX_RENDER_TYPE_SGIX 0x8011 164 #define GLX_X_RENDERABLE_SGIX 0x8012 165 #define GLX_FBCONFIG_ID_SGIX 0x8013 166 #define GLX_RGBA_TYPE_SGIX 0x8014 167 #define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 168 /* reuse GLX_SCREEN_EXT */ 169 #endif 170 171 #ifndef GLX_SGIX_pbuffer 172 #define GLX_PBUFFER_BIT_SGIX 0x00000004 173 #define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 174 #define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 175 #define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 176 #define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 177 #define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 178 #define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 179 #define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 180 #define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 181 #define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 182 #define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 183 #define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 184 #define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 185 #define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 186 #define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 187 #define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A 188 #define GLX_PRESERVED_CONTENTS_SGIX 0x801B 189 #define GLX_LARGEST_PBUFFER_SGIX 0x801C 190 #define GLX_WIDTH_SGIX 0x801D 191 #define GLX_HEIGHT_SGIX 0x801E 192 #define GLX_EVENT_MASK_SGIX 0x801F 193 #define GLX_DAMAGED_SGIX 0x8020 194 #define GLX_SAVED_SGIX 0x8021 195 #define GLX_WINDOW_SGIX 0x8022 196 #define GLX_PBUFFER_SGIX 0x8023 197 #endif 198 199 #ifndef GLX_SGI_cushion 200 #endif 201 202 #ifndef GLX_SGIX_video_resize 203 #define GLX_SYNC_FRAME_SGIX 0x00000000 204 #define GLX_SYNC_SWAP_SGIX 0x00000001 205 #endif 206 207 #ifndef GLX_SGIX_dmbuffer 208 #define GLX_DIGITAL_MEDIA_PBUFFER_SGIX 0x8024 209 #endif 210 211 #ifndef GLX_SGIX_swap_group 212 #endif 213 214 #ifndef GLX_SGIX_swap_barrier 215 #endif 216 217 #ifndef GLX_SGIS_blended_overlay 218 #define GLX_BLENDED_RGBA_SGIS 0x8025 219 #endif 220 221 #ifndef GLX_SGIS_shared_multisample 222 #define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 223 #define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 224 #endif 225 226 #ifndef GLX_SUN_get_transparent_index 227 #endif 228 229 #ifndef GLX_3DFX_multisample 230 #define GLX_SAMPLE_BUFFERS_3DFX 0x8050 231 #define GLX_SAMPLES_3DFX 0x8051 232 #endif 233 234 #ifndef GLX_MESA_copy_sub_buffer 235 #endif 236 237 #ifndef GLX_MESA_pixmap_colormap 238 #endif 239 240 #ifndef GLX_MESA_release_buffers 241 #endif 242 243 #ifndef GLX_MESA_set_3dfx_mode 244 #define GLX_3DFX_WINDOW_MODE_MESA 0x1 245 #define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 246 #endif 247 248 249 /*************************************************************/ 250 251 #ifndef GLX_ARB_get_proc_address 252 typedef void (*__GLXextFuncPtr)(); 253 #endif 254 255 #ifndef GLX_SGIX_video_source 256 typedef XID GLXVideoSourceSGIX; 257 #endif 258 259 #ifndef GLX_SGIX_fbconfig 260 typedef XID GLXFBConfigIDSGIX; 261 typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; 262 #endif 263 264 #ifndef GLX_SGIX_pbuffer 265 typedef XID GLXPbufferSGIX; 266 typedef struct { 267 int type; 268 unsigned long serial; /* # of last request processed by server */ 269 Bool send_event; /* true if this came for SendEvent request */ 270 Display *display; /* display the event was read from */ 271 GLXDrawable drawable; /* i.d. of Drawable */ 272 int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */ 273 int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */ 274 unsigned int mask; /* mask indicating which buffers are affected*/ 275 int x, y; 276 int width, height; 277 int count; /* if nonzero, at least this many more */ 278 } GLXBufferClobberEventSGIX; 279 #endif 280 281 #ifdef GL_NV_vertex_array_range 282 #ifndef PFNGLXALLOCATEMEMORYNVPROC 283 #ifdef GLX_GLXEXT_PROTOTYPES 284 extern void *glXAllocateMemoryNV (GLsizei, GLfloat, GLfloat, GLfloat); 285 #endif 286 typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei, GLfloat, GLfloat, GLfloat); 287 #endif 288 #ifndef PFNGLXFREEMEMORYNVPROC 289 #ifdef GLX_GLXEXT_PROTOTYPES 290 extern void glXFreeMemoryNV (void *); 291 #endif 292 typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *); 293 #endif 294 #endif 295 296 #ifndef GLX_VERSION_1_3 297 #define GLX_VERSION_1_3 1 298 #ifdef GLX_GLXEXT_PROTOTYPES 299 extern GLXFBConfig * glXGetFBConfigs (Display *, int, int *); 300 extern GLXFBConfig * glXChooseFBConfig (Display *, int, const int *, int *); 301 extern int glXGetFBConfigAttrib (Display *, GLXFBConfig, int, int *); 302 extern XVisualInfo * glXGetVisualFromFBConfig (Display *, GLXFBConfig); 303 extern GLXWindow glXCreateWindow (Display *, GLXFBConfig, Window, const int *); 304 extern void glXDestroyWindow (Display *, GLXWindow); 305 extern GLXPixmap glXCreatePixmap (Display *, GLXFBConfig, Pixmap, const int *); 306 extern void glXDestroyPixmap (Display *, GLXPixmap); 307 extern GLXPbuffer glXCreatePbuffer (Display *, GLXFBConfig, const int *); 308 extern void glXDestroyPbuffer (Display *, GLXPbuffer); 309 extern void glXQueryDrawable (Display *, GLXDrawable, int, unsigned int *); 310 extern GLXContext glXCreateNewContext (Display *, GLXFBConfig, int, GLXContext, Bool); 311 extern Bool glXMakeContextCurrent (Display *, GLXDrawable, GLXDrawable, GLXContext); 312 extern GLXDrawable glXGetCurrentReadDrawable (void); 313 extern Display * glXGetCurrentDisplay (void); 314 extern int glXQueryContext (Display *, GLXContext, int, int *); 315 extern void glXSelectEvent (Display *, GLXDrawable, unsigned long); 316 extern void glXGetSelectedEvent (Display *, GLXDrawable, unsigned long *); 317 #endif /* GLX_GLXEXT_PROTOTYPES */ 318 typedef GLXFBConfig * ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); 319 typedef GLXFBConfig * ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); 320 typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); 321 typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); 322 typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); 323 typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); 324 typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); 325 typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); 326 typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); 327 typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); 328 typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); 329 typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); 330 typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); 331 typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void); 332 typedef Display * ( * PFNGLXGETCURRENTDISPLAYPROC) (void); 333 typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); 334 typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); 335 typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); 336 #endif 337 338 #ifndef GLX_ARB_get_proc_address 339 #define GLX_ARB_get_proc_address 1 340 #ifdef GLX_GLXEXT_PROTOTYPES 341 extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *); 342 #endif /* GLX_GLXEXT_PROTOTYPES */ 343 typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName); 344 #endif 345 346 #ifndef GLX_SGIS_multisample 347 #define GLX_SGIS_multisample 1 348 #endif 349 350 #ifndef GLX_EXT_visual_info 351 #define GLX_EXT_visual_info 1 352 #endif 353 354 #ifndef GLX_SGI_swap_control 355 #define GLX_SGI_swap_control 1 356 #ifdef GLX_GLXEXT_PROTOTYPES 357 extern int glXSwapIntervalSGI (int); 358 #endif /* GLX_GLXEXT_PROTOTYPES */ 359 typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); 360 #endif 361 362 #ifndef GLX_SGI_video_sync 363 #define GLX_SGI_video_sync 1 364 #ifdef GLX_GLXEXT_PROTOTYPES 365 extern int glXGetVideoSyncSGI (unsigned int *); 366 extern int glXWaitVideoSyncSGI (int, int, unsigned int *); 367 #endif /* GLX_GLXEXT_PROTOTYPES */ 368 typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count); 369 typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count); 370 #endif 371 372 #ifndef GLX_SGI_make_current_read 373 #define GLX_SGI_make_current_read 1 374 #ifdef GLX_GLXEXT_PROTOTYPES 375 extern Bool glXMakeCurrentReadSGI (Display *, GLXDrawable, GLXDrawable, GLXContext); 376 extern GLXDrawable glXGetCurrentReadDrawableSGI (void); 377 #endif /* GLX_GLXEXT_PROTOTYPES */ 378 typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); 379 typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); 380 #endif 381 382 #ifdef _VL_H 383 #ifndef GLX_SGIX_video_source 384 #define GLX_SGIX_video_source 1 385 #ifdef GLX_GLXEXT_PROTOTYPES 386 extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *, int, VLServer, VLPath, int, VLNode); 387 extern void glXDestroyGLXVideoSourceSGIX (Display *, GLXVideoSourceSGIX); 388 #endif /* GLX_GLXEXT_PROTOTYPES */ 389 typedef GLXVideoSourceSGIX ( * PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode); 390 typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource); 391 #endif 392 393 #endif /* _VL_H */ 394 #ifndef GLX_EXT_visual_rating 395 #define GLX_EXT_visual_rating 1 396 #endif 397 398 #ifndef GLX_EXT_import_context 399 #define GLX_EXT_import_context 1 400 #ifdef GLX_GLXEXT_PROTOTYPES 401 extern Display * glXGetCurrentDisplayEXT (void); 402 extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *); 403 extern GLXContextID glXGetContextIDEXT (GLXContext); 404 extern GLXContext glXImportContextEXT (Display *, GLXContextID); 405 extern void glXFreeContextEXT (Display *, GLXContext); 406 #endif /* GLX_GLXEXT_PROTOTYPES */ 407 typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void); 408 typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value); 409 typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (GLXContext context); 410 typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID); 411 typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context); 412 #endif 413 414 #ifndef GLX_SGIX_fbconfig 415 #define GLX_SGIX_fbconfig 1 416 #ifdef GLX_GLXEXT_PROTOTYPES 417 extern int glXGetFBConfigAttribSGIX (Display *, GLXFBConfigSGIX, int, int *); 418 extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *, int, int *, int *); 419 extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *, GLXFBConfigSGIX, Pixmap); 420 extern GLXContext glXCreateContextWithConfigSGIX (Display *, GLXFBConfigSGIX, int, GLXContext, Bool); 421 extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *, GLXFBConfigSGIX); 422 extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *, XVisualInfo *); 423 #endif /* GLX_GLXEXT_PROTOTYPES */ 424 typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value); 425 typedef GLXFBConfigSGIX * ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements); 426 typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap); 427 typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct); 428 typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config); 429 typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, XVisualInfo *vis); 430 #endif 431 432 #ifndef GLX_SGIX_pbuffer 433 #define GLX_SGIX_pbuffer 1 434 #ifdef GLX_GLXEXT_PROTOTYPES 435 extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *); 436 extern void glXDestroyGLXPbufferSGIX (Display *, GLXPbufferSGIX); 437 extern int glXQueryGLXPbufferSGIX (Display *, GLXPbufferSGIX, int, unsigned int *); 438 extern void glXSelectEventSGIX (Display *, GLXDrawable, unsigned long); 439 extern void glXGetSelectedEventSGIX (Display *, GLXDrawable, unsigned long *); 440 #endif /* GLX_GLXEXT_PROTOTYPES */ 441 typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list); 442 typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf); 443 typedef int ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value); 444 typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long mask); 445 typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long *mask); 446 #endif 447 448 #ifndef GLX_SGI_cushion 449 #define GLX_SGI_cushion 1 450 #ifdef GLX_GLXEXT_PROTOTYPES 451 extern void glXCushionSGI (Display *, Window, float); 452 #endif /* GLX_GLXEXT_PROTOTYPES */ 453 typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion); 454 #endif 455 456 #ifndef GLX_SGIX_video_resize 457 #define GLX_SGIX_video_resize 1 458 #ifdef GLX_GLXEXT_PROTOTYPES 459 extern int glXBindChannelToWindowSGIX (Display *, int, int, Window); 460 extern int glXChannelRectSGIX (Display *, int, int, int, int, int, int); 461 extern int glXQueryChannelRectSGIX (Display *, int, int, int *, int *, int *, int *); 462 extern int glXQueryChannelDeltasSGIX (Display *, int, int, int *, int *, int *, int *); 463 extern int glXChannelRectSyncSGIX (Display *, int, int, GLenum); 464 #endif /* GLX_GLXEXT_PROTOTYPES */ 465 typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window); 466 typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h); 467 typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); 468 typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h); 469 typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, int channel, GLenum synctype); 470 #endif 471 472 #ifdef _DM_BUFFER_H_ 473 #ifndef GLX_SGIX_dmbuffer 474 #define GLX_SGIX_dmbuffer 1 475 #ifdef GLX_GLXEXT_PROTOTYPES 476 extern Bool glXAssociateDMPbufferSGIX (Display *, GLXPbufferSGIX, DMparams *, DMbuffer); 477 #endif /* GLX_GLXEXT_PROTOTYPES */ 478 typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer); 479 #endif 480 481 #endif /* _DM_BUFFER_H_ */ 482 #ifndef GLX_SGIX_swap_group 483 #define GLX_SGIX_swap_group 1 484 #ifdef GLX_GLXEXT_PROTOTYPES 485 extern void glXJoinSwapGroupSGIX (Display *, GLXDrawable, GLXDrawable); 486 #endif /* GLX_GLXEXT_PROTOTYPES */ 487 typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); 488 #endif 489 490 #ifndef GLX_SGIX_swap_barrier 491 #define GLX_SGIX_swap_barrier 1 492 #ifdef GLX_GLXEXT_PROTOTYPES 493 extern void glXBindSwapBarrierSGIX (Display *, GLXDrawable, int); 494 extern Bool glXQueryMaxSwapBarriersSGIX (Display *, int, int *); 495 #endif /* GLX_GLXEXT_PROTOTYPES */ 496 typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); 497 typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); 498 #endif 499 500 #ifndef GLX_SUN_get_transparent_index 501 #define GLX_SUN_get_transparent_index 1 502 #ifdef GLX_GLXEXT_PROTOTYPES 503 extern Status glXGetTransparentIndexSUN (Display *, Window, Window, long *); 504 #endif /* GLX_GLXEXT_PROTOTYPES */ 505 typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex); 506 #endif 507 508 #ifndef GLX_MESA_copy_sub_buffer 509 #define GLX_MESA_copy_sub_buffer 1 510 #ifdef GLX_GLXEXT_PROTOTYPES 511 extern void glXCopySubBufferMESA (Display *, GLXDrawable, int, int, int, int); 512 #endif /* GLX_GLXEXT_PROTOTYPES */ 513 typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height); 514 #endif 515 516 #ifndef GLX_MESA_pixmap_colormap 517 #define GLX_MESA_pixmap_colormap 1 518 #ifdef GLX_GLXEXT_PROTOTYPES 519 extern GLXPixmap glXCreateGLXPixmapMESA (Display *, XVisualInfo *, Pixmap, Colormap); 520 #endif /* GLX_GLXEXT_PROTOTYPES */ 521 typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); 522 #endif 523 524 #ifndef GLX_MESA_release_buffers 525 #define GLX_MESA_release_buffers 1 526 #ifdef GLX_GLXEXT_PROTOTYPES 527 extern Bool glXReleaseBuffersMESA (Display *, GLXDrawable); 528 #endif /* GLX_GLXEXT_PROTOTYPES */ 529 typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable); 530 #endif 531 532 #ifndef GLX_MESA_set_3dfx_mode 533 #define GLX_MESA_set_3dfx_mode 1 534 #ifdef GLX_GLXEXT_PROTOTYPES 535 extern Bool glXSet3DfxModeMESA (int); 536 #endif /* GLX_GLXEXT_PROTOTYPES */ 537 typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode); 538 #endif 539 540 541 #ifdef __cplusplus 542 } 543 #endif 544 545 #endif 546 547