glxext.h revision 44a2e96729b730693f314b43e3d861b326968b5c
1#ifndef __glxext_h_ 2#define __glxext_h_ 3 4#ifdef __cplusplus 5extern "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-2004 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__) && !defined(__SCITECH_SNAP__) 38#define WIN32_LEAN_AND_MEAN 1 39#include <windows.h> 40#endif 41 42#ifndef APIENTRY 43#define APIENTRY 44#endif 45#ifndef APIENTRYP 46#define APIENTRYP APIENTRY * 47#endif 48#ifndef GLAPI 49#define GLAPI extern 50#endif 51 52/*************************************************************/ 53 54/* Header file version number, required by OpenGL ABI for Linux */ 55/* glxext.h last updated 2004/07/26 */ 56/* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */ 57#define GLX_GLXEXT_VERSION 6 58 59#ifndef GLX_VERSION_1_3 60#define GLX_WINDOW_BIT 0x00000001 61#define GLX_PIXMAP_BIT 0x00000002 62#define GLX_PBUFFER_BIT 0x00000004 63#define GLX_RGBA_BIT 0x00000001 64#define GLX_COLOR_INDEX_BIT 0x00000002 65#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 66#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 67#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 68#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 69#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 70#define GLX_AUX_BUFFERS_BIT 0x00000010 71#define GLX_DEPTH_BUFFER_BIT 0x00000020 72#define GLX_STENCIL_BUFFER_BIT 0x00000040 73#define GLX_ACCUM_BUFFER_BIT 0x00000080 74#define GLX_CONFIG_CAVEAT 0x20 75#define GLX_X_VISUAL_TYPE 0x22 76#define GLX_TRANSPARENT_TYPE 0x23 77#define GLX_TRANSPARENT_INDEX_VALUE 0x24 78#define GLX_TRANSPARENT_RED_VALUE 0x25 79#define GLX_TRANSPARENT_GREEN_VALUE 0x26 80#define GLX_TRANSPARENT_BLUE_VALUE 0x27 81#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 82#define GLX_DONT_CARE 0xFFFFFFFF 83#define GLX_NONE 0x8000 84#define GLX_SLOW_CONFIG 0x8001 85#define GLX_TRUE_COLOR 0x8002 86#define GLX_DIRECT_COLOR 0x8003 87#define GLX_PSEUDO_COLOR 0x8004 88#define GLX_STATIC_COLOR 0x8005 89#define GLX_GRAY_SCALE 0x8006 90#define GLX_STATIC_GRAY 0x8007 91#define GLX_TRANSPARENT_RGB 0x8008 92#define GLX_TRANSPARENT_INDEX 0x8009 93#define GLX_VISUAL_ID 0x800B 94#define GLX_SCREEN 0x800C 95#define GLX_NON_CONFORMANT_CONFIG 0x800D 96#define GLX_DRAWABLE_TYPE 0x8010 97#define GLX_RENDER_TYPE 0x8011 98#define GLX_X_RENDERABLE 0x8012 99#define GLX_FBCONFIG_ID 0x8013 100#define GLX_RGBA_TYPE 0x8014 101#define GLX_COLOR_INDEX_TYPE 0x8015 102#define GLX_MAX_PBUFFER_WIDTH 0x8016 103#define GLX_MAX_PBUFFER_HEIGHT 0x8017 104#define GLX_MAX_PBUFFER_PIXELS 0x8018 105#define GLX_PRESERVED_CONTENTS 0x801B 106#define GLX_LARGEST_PBUFFER 0x801C 107#define GLX_WIDTH 0x801D 108#define GLX_HEIGHT 0x801E 109#define GLX_EVENT_MASK 0x801F 110#define GLX_DAMAGED 0x8020 111#define GLX_SAVED 0x8021 112#define GLX_WINDOW 0x8022 113#define GLX_PBUFFER 0x8023 114#define GLX_PBUFFER_HEIGHT 0x8040 115#define GLX_PBUFFER_WIDTH 0x8041 116#endif 117 118#ifndef GLX_VERSION_1_4 119#define GLX_SAMPLE_BUFFERS 100000 120#define GLX_SAMPLES 100001 121#endif 122 123#ifndef GLX_ARB_get_proc_address 124#endif 125 126#ifndef GLX_ARB_multisample 127#define GLX_SAMPLE_BUFFERS_ARB 100000 128#define GLX_SAMPLES_ARB 100001 129#endif 130 131#ifndef GLX_SGIS_multisample 132#define GLX_SAMPLE_BUFFERS_SGIS 100000 133#define GLX_SAMPLES_SGIS 100001 134#endif 135 136#ifndef GLX_EXT_visual_info 137#define GLX_X_VISUAL_TYPE_EXT 0x22 138#define GLX_TRANSPARENT_TYPE_EXT 0x23 139#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 140#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 141#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 142#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 143#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 144#define GLX_NONE_EXT 0x8000 145#define GLX_TRUE_COLOR_EXT 0x8002 146#define GLX_DIRECT_COLOR_EXT 0x8003 147#define GLX_PSEUDO_COLOR_EXT 0x8004 148#define GLX_STATIC_COLOR_EXT 0x8005 149#define GLX_GRAY_SCALE_EXT 0x8006 150#define GLX_STATIC_GRAY_EXT 0x8007 151#define GLX_TRANSPARENT_RGB_EXT 0x8008 152#define GLX_TRANSPARENT_INDEX_EXT 0x8009 153#endif 154 155#ifndef GLX_SGI_swap_control 156#endif 157 158#ifndef GLX_SGI_video_sync 159#endif 160 161#ifndef GLX_SGI_make_current_read 162#endif 163 164#ifndef GLX_SGIX_video_source 165#endif 166 167#ifndef GLX_EXT_visual_rating 168#define GLX_VISUAL_CAVEAT_EXT 0x20 169#define GLX_SLOW_VISUAL_EXT 0x8001 170#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D 171/* reuse GLX_NONE_EXT */ 172#endif 173 174#ifndef GLX_EXT_import_context 175#define GLX_SHARE_CONTEXT_EXT 0x800A 176#define GLX_VISUAL_ID_EXT 0x800B 177#define GLX_SCREEN_EXT 0x800C 178#endif 179 180#ifndef GLX_SGIX_fbconfig 181#define GLX_WINDOW_BIT_SGIX 0x00000001 182#define GLX_PIXMAP_BIT_SGIX 0x00000002 183#define GLX_RGBA_BIT_SGIX 0x00000001 184#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 185#define GLX_DRAWABLE_TYPE_SGIX 0x8010 186#define GLX_RENDER_TYPE_SGIX 0x8011 187#define GLX_X_RENDERABLE_SGIX 0x8012 188#define GLX_FBCONFIG_ID_SGIX 0x8013 189#define GLX_RGBA_TYPE_SGIX 0x8014 190#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 191/* reuse GLX_SCREEN_EXT */ 192#endif 193 194#ifndef GLX_SGIX_pbuffer 195#define GLX_PBUFFER_BIT_SGIX 0x00000004 196#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 197#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 198#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 199#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 200#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 201#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 202#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 203#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 204#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 205#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 206#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 207#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 208#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 209#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 210#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A 211#define GLX_PRESERVED_CONTENTS_SGIX 0x801B 212#define GLX_LARGEST_PBUFFER_SGIX 0x801C 213#define GLX_WIDTH_SGIX 0x801D 214#define GLX_HEIGHT_SGIX 0x801E 215#define GLX_EVENT_MASK_SGIX 0x801F 216#define GLX_DAMAGED_SGIX 0x8020 217#define GLX_SAVED_SGIX 0x8021 218#define GLX_WINDOW_SGIX 0x8022 219#define GLX_PBUFFER_SGIX 0x8023 220#endif 221 222#ifndef GLX_SGI_cushion 223#endif 224 225#ifndef GLX_SGIX_video_resize 226#define GLX_SYNC_FRAME_SGIX 0x00000000 227#define GLX_SYNC_SWAP_SGIX 0x00000001 228#endif 229 230#ifndef GLX_SGIX_dmbuffer 231#define GLX_DIGITAL_MEDIA_PBUFFER_SGIX 0x8024 232#endif 233 234#ifndef GLX_SGIX_swap_group 235#endif 236 237#ifndef GLX_SGIX_swap_barrier 238#endif 239 240#ifndef GLX_SGIS_blended_overlay 241#define GLX_BLENDED_RGBA_SGIS 0x8025 242#endif 243 244#ifndef GLX_SGIS_shared_multisample 245#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 246#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 247#endif 248 249#ifndef GLX_SUN_get_transparent_index 250#endif 251 252#ifndef GLX_3DFX_multisample 253#define GLX_SAMPLE_BUFFERS_3DFX 0x8050 254#define GLX_SAMPLES_3DFX 0x8051 255#endif 256 257#ifndef GLX_MESA_copy_sub_buffer 258#endif 259 260#ifndef GLX_MESA_pixmap_colormap 261#endif 262 263#ifndef GLX_MESA_release_buffers 264#endif 265 266#ifndef GLX_MESA_set_3dfx_mode 267#define GLX_3DFX_WINDOW_MODE_MESA 0x1 268#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 269#endif 270 271#ifndef GLX_SGIX_visual_select_group 272#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 273#endif 274 275#ifndef GLX_OML_swap_method 276#define GLX_SWAP_METHOD_OML 0x8060 277#define GLX_SWAP_EXCHANGE_OML 0x8061 278#define GLX_SWAP_COPY_OML 0x8062 279#define GLX_SWAP_UNDEFINED_OML 0x8063 280#endif 281 282#ifndef GLX_OML_sync_control 283#endif 284 285#ifndef GLX_SGIX_hyperpipe_group 286#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 287#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 288#define GLX_BAD_HYPERPIPE_SGIX 92 289#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 290#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 291#define GLX_PIPE_RECT_SGIX 0x00000001 292#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 293#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 294#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 295#define GLX_HYPERPIPE_ID_SGIX 0x8030 296#endif 297 298#ifndef GLX_MESA_agp_offset 299#endif 300 301 302/*************************************************************/ 303 304#ifndef GLX_ARB_get_proc_address 305typedef void (*__GLXextFuncPtr)(void); 306#endif 307 308#ifndef GLX_SGIX_video_source 309typedef XID GLXVideoSourceSGIX; 310#endif 311 312#ifndef GLX_SGIX_fbconfig 313typedef XID GLXFBConfigIDSGIX; 314typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; 315#endif 316 317#ifndef GLX_SGIX_pbuffer 318typedef XID GLXPbufferSGIX; 319typedef struct { 320 int type; 321 unsigned long serial; /* # of last request processed by server */ 322 Bool send_event; /* true if this came for SendEvent request */ 323 Display *display; /* display the event was read from */ 324 GLXDrawable drawable; /* i.d. of Drawable */ 325 int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */ 326 int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */ 327 unsigned int mask; /* mask indicating which buffers are affected*/ 328 int x, y; 329 int width, height; 330 int count; /* if nonzero, at least this many more */ 331} GLXBufferClobberEventSGIX; 332#endif 333 334#if defined(__sun__) || defined(__osf__) 335#include <inttypes.h> 336#if defined(__STDC__) 337#if defined(__arch64__) 338typedef long int int64_t; 339#else 340typedef long long int int64_t; 341#endif /* __arch64__ */ 342#endif /* __STDC__ */ 343#elif defined(__UNIXOS2__) || defined(__SOL64__) 344typedef long int int32_t; 345typedef long long int int64_t; 346#elif defined( __VMS ) 347#include <inttypes.h> 348#elif defined(__SCO__) || defined(__USLC__) 349#include <stdint.h> 350#elif defined(WIN32) && defined(__GNUC__) 351#include <stdint.h> 352#endif 353 354#ifndef GLX_VERSION_1_3 355#define GLX_VERSION_1_3 1 356#ifdef GLX_GLXEXT_PROTOTYPES 357extern GLXFBConfig * glXGetFBConfigs (Display *, int, int *); 358extern GLXFBConfig * glXChooseFBConfig (Display *, int, const int *, int *); 359extern int glXGetFBConfigAttrib (Display *, GLXFBConfig, int, int *); 360extern XVisualInfo * glXGetVisualFromFBConfig (Display *, GLXFBConfig); 361extern GLXWindow glXCreateWindow (Display *, GLXFBConfig, Window, const int *); 362extern void glXDestroyWindow (Display *, GLXWindow); 363extern GLXPixmap glXCreatePixmap (Display *, GLXFBConfig, Pixmap, const int *); 364extern void glXDestroyPixmap (Display *, GLXPixmap); 365extern GLXPbuffer glXCreatePbuffer (Display *, GLXFBConfig, const int *); 366extern void glXDestroyPbuffer (Display *, GLXPbuffer); 367extern void glXQueryDrawable (Display *, GLXDrawable, int, unsigned int *); 368extern GLXContext glXCreateNewContext (Display *, GLXFBConfig, int, GLXContext, Bool); 369extern Bool glXMakeContextCurrent (Display *, GLXDrawable, GLXDrawable, GLXContext); 370extern GLXDrawable glXGetCurrentReadDrawable (void); 371extern Display * glXGetCurrentDisplay (void); 372extern int glXQueryContext (Display *, GLXContext, int, int *); 373extern void glXSelectEvent (Display *, GLXDrawable, unsigned long); 374extern void glXGetSelectedEvent (Display *, GLXDrawable, unsigned long *); 375#endif /* GLX_GLXEXT_PROTOTYPES */ 376typedef GLXFBConfig * ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); 377typedef GLXFBConfig * ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); 378typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); 379typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); 380typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); 381typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); 382typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); 383typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); 384typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); 385typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); 386typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); 387typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); 388typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); 389typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void); 390typedef Display * ( * PFNGLXGETCURRENTDISPLAYPROC) (void); 391typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); 392typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); 393typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); 394#endif 395 396#ifndef GLX_VERSION_1_4 397#define GLX_VERSION_1_4 1 398#ifdef GLX_GLXEXT_PROTOTYPES 399extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *); 400#endif /* GLX_GLXEXT_PROTOTYPES */ 401typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); 402#endif 403 404#ifndef GLX_ARB_get_proc_address 405#define GLX_ARB_get_proc_address 1 406#ifdef GLX_GLXEXT_PROTOTYPES 407extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *); 408#endif /* GLX_GLXEXT_PROTOTYPES */ 409typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName); 410#endif 411 412#ifndef GLX_ARB_multisample 413#define GLX_ARB_multisample 1 414#endif 415 416#ifndef GLX_SGIS_multisample 417#define GLX_SGIS_multisample 1 418#endif 419 420#ifndef GLX_EXT_visual_info 421#define GLX_EXT_visual_info 1 422#endif 423 424#ifndef GLX_SGI_swap_control 425#define GLX_SGI_swap_control 1 426#ifdef GLX_GLXEXT_PROTOTYPES 427extern int glXSwapIntervalSGI (int); 428#endif /* GLX_GLXEXT_PROTOTYPES */ 429typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); 430#endif 431 432#ifndef GLX_SGI_video_sync 433#define GLX_SGI_video_sync 1 434#ifdef GLX_GLXEXT_PROTOTYPES 435extern int glXGetVideoSyncSGI (unsigned int *); 436extern int glXWaitVideoSyncSGI (int, int, unsigned int *); 437#endif /* GLX_GLXEXT_PROTOTYPES */ 438typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count); 439typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count); 440#endif 441 442#ifndef GLX_SGI_make_current_read 443#define GLX_SGI_make_current_read 1 444#ifdef GLX_GLXEXT_PROTOTYPES 445extern Bool glXMakeCurrentReadSGI (Display *, GLXDrawable, GLXDrawable, GLXContext); 446extern GLXDrawable glXGetCurrentReadDrawableSGI (void); 447#endif /* GLX_GLXEXT_PROTOTYPES */ 448typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); 449typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); 450#endif 451 452#ifndef GLX_SGIX_video_source 453#define GLX_SGIX_video_source 1 454#ifdef _VL_H 455#ifdef GLX_GLXEXT_PROTOTYPES 456extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *, int, VLServer, VLPath, int, VLNode); 457extern void glXDestroyGLXVideoSourceSGIX (Display *, GLXVideoSourceSGIX); 458#endif /* GLX_GLXEXT_PROTOTYPES */ 459typedef GLXVideoSourceSGIX ( * PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode); 460typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource); 461#endif /* _VL_H */ 462#endif 463 464#ifndef GLX_EXT_visual_rating 465#define GLX_EXT_visual_rating 1 466#endif 467 468#ifndef GLX_EXT_import_context 469#define GLX_EXT_import_context 1 470#ifdef GLX_GLXEXT_PROTOTYPES 471extern Display * glXGetCurrentDisplayEXT (void); 472extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *); 473extern GLXContextID glXGetContextIDEXT (const GLXContext); 474extern GLXContext glXImportContextEXT (Display *, GLXContextID); 475extern void glXFreeContextEXT (Display *, GLXContext); 476#endif /* GLX_GLXEXT_PROTOTYPES */ 477typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void); 478typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value); 479typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); 480typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID); 481typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context); 482#endif 483 484#ifndef GLX_SGIX_fbconfig 485#define GLX_SGIX_fbconfig 1 486#ifdef GLX_GLXEXT_PROTOTYPES 487extern int glXGetFBConfigAttribSGIX (Display *, GLXFBConfigSGIX, int, int *); 488extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *, int, int *, int *); 489extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *, GLXFBConfigSGIX, Pixmap); 490extern GLXContext glXCreateContextWithConfigSGIX (Display *, GLXFBConfigSGIX, int, GLXContext, Bool); 491extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *, GLXFBConfigSGIX); 492extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *, XVisualInfo *); 493#endif /* GLX_GLXEXT_PROTOTYPES */ 494typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value); 495typedef GLXFBConfigSGIX * ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements); 496typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap); 497typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct); 498typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config); 499typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, XVisualInfo *vis); 500#endif 501 502#ifndef GLX_SGIX_pbuffer 503#define GLX_SGIX_pbuffer 1 504#ifdef GLX_GLXEXT_PROTOTYPES 505extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *); 506extern void glXDestroyGLXPbufferSGIX (Display *, GLXPbufferSGIX); 507extern int glXQueryGLXPbufferSGIX (Display *, GLXPbufferSGIX, int, unsigned int *); 508extern void glXSelectEventSGIX (Display *, GLXDrawable, unsigned long); 509extern void glXGetSelectedEventSGIX (Display *, GLXDrawable, unsigned long *); 510#endif /* GLX_GLXEXT_PROTOTYPES */ 511typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list); 512typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf); 513typedef int ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value); 514typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long mask); 515typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long *mask); 516#endif 517 518#ifndef GLX_SGI_cushion 519#define GLX_SGI_cushion 1 520#ifdef GLX_GLXEXT_PROTOTYPES 521extern void glXCushionSGI (Display *, Window, float); 522#endif /* GLX_GLXEXT_PROTOTYPES */ 523typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion); 524#endif 525 526#ifndef GLX_SGIX_video_resize 527#define GLX_SGIX_video_resize 1 528#ifdef GLX_GLXEXT_PROTOTYPES 529extern int glXBindChannelToWindowSGIX (Display *, int, int, Window); 530extern int glXChannelRectSGIX (Display *, int, int, int, int, int, int); 531extern int glXQueryChannelRectSGIX (Display *, int, int, int *, int *, int *, int *); 532extern int glXQueryChannelDeltasSGIX (Display *, int, int, int *, int *, int *, int *); 533extern int glXChannelRectSyncSGIX (Display *, int, int, GLenum); 534#endif /* GLX_GLXEXT_PROTOTYPES */ 535typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window); 536typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h); 537typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); 538typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h); 539typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, int channel, GLenum synctype); 540#endif 541 542#ifndef GLX_SGIX_dmbuffer 543#define GLX_SGIX_dmbuffer 1 544#ifdef _DM_BUFFER_H_ 545#ifdef GLX_GLXEXT_PROTOTYPES 546extern Bool glXAssociateDMPbufferSGIX (Display *, GLXPbufferSGIX, DMparams *, DMbuffer); 547#endif /* GLX_GLXEXT_PROTOTYPES */ 548typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer); 549#endif /* _DM_BUFFER_H_ */ 550#endif 551 552#ifndef GLX_SGIX_swap_group 553#define GLX_SGIX_swap_group 1 554#ifdef GLX_GLXEXT_PROTOTYPES 555extern void glXJoinSwapGroupSGIX (Display *, GLXDrawable, GLXDrawable); 556#endif /* GLX_GLXEXT_PROTOTYPES */ 557typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); 558#endif 559 560#ifndef GLX_SGIX_swap_barrier 561#define GLX_SGIX_swap_barrier 1 562#ifdef GLX_GLXEXT_PROTOTYPES 563extern void glXBindSwapBarrierSGIX (Display *, GLXDrawable, int); 564extern Bool glXQueryMaxSwapBarriersSGIX (Display *, int, int *); 565#endif /* GLX_GLXEXT_PROTOTYPES */ 566typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); 567typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); 568#endif 569 570#ifndef GLX_SUN_get_transparent_index 571#define GLX_SUN_get_transparent_index 1 572#ifdef GLX_GLXEXT_PROTOTYPES 573extern Status glXGetTransparentIndexSUN (Display *, Window, Window, long *); 574#endif /* GLX_GLXEXT_PROTOTYPES */ 575typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex); 576#endif 577 578#ifndef GLX_MESA_copy_sub_buffer 579#define GLX_MESA_copy_sub_buffer 1 580#ifdef GLX_GLXEXT_PROTOTYPES 581extern void glXCopySubBufferMESA (Display *, GLXDrawable, int, int, int, int); 582#endif /* GLX_GLXEXT_PROTOTYPES */ 583typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height); 584#endif 585 586#ifndef GLX_MESA_pixmap_colormap 587#define GLX_MESA_pixmap_colormap 1 588#ifdef GLX_GLXEXT_PROTOTYPES 589extern GLXPixmap glXCreateGLXPixmapMESA (Display *, XVisualInfo *, Pixmap, Colormap); 590#endif /* GLX_GLXEXT_PROTOTYPES */ 591typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); 592#endif 593 594#ifndef GLX_MESA_release_buffers 595#define GLX_MESA_release_buffers 1 596#ifdef GLX_GLXEXT_PROTOTYPES 597extern Bool glXReleaseBuffersMESA (Display *, GLXDrawable); 598#endif /* GLX_GLXEXT_PROTOTYPES */ 599typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable); 600#endif 601 602#ifndef GLX_MESA_set_3dfx_mode 603#define GLX_MESA_set_3dfx_mode 1 604#ifdef GLX_GLXEXT_PROTOTYPES 605extern Bool glXSet3DfxModeMESA (int); 606#endif /* GLX_GLXEXT_PROTOTYPES */ 607typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode); 608#endif 609 610#ifndef GLX_SGIX_visual_select_group 611#define GLX_SGIX_visual_select_group 1 612#endif 613 614#ifndef GLX_OML_swap_method 615#define GLX_OML_swap_method 1 616#endif 617 618#ifndef GLX_OML_sync_control 619#define GLX_OML_sync_control 1 620#ifdef GLX_GLXEXT_PROTOTYPES 621extern Bool glXGetSyncValuesOML (Display *, GLXDrawable, int64_t *, int64_t *, int64_t *); 622extern Bool glXGetMscRateOML (Display *, GLXDrawable, int32_t *, int32_t *); 623extern int64_t glXSwapBuffersMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t); 624extern Bool glXWaitForMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t, int64_t *, int64_t *, int64_t *); 625extern Bool glXWaitForSbcOML (Display *, GLXDrawable, int64_t, int64_t *, int64_t *, int64_t *); 626#endif /* GLX_GLXEXT_PROTOTYPES */ 627typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc); 628typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator); 629typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); 630typedef 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); 631typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc); 632#endif 633 634#ifndef GLX_SGIX_hyperpipe_group 635#define GLX_SGIX_hyperpipe_group 1 636 637typedef struct { 638 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; 639 int networkId; 640} GLXHyperpipeNetworkSGIX; 641 642typedef struct { 643 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; 644 int channel; 645 unsigned int 646 participationType; 647 int timeSlice; 648} GLXHyperpipeConfigSGIX; 649 650typedef struct { 651 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; 652 int srcXOrigin, srcYOrigin, srcWidth, srcHeight; 653 int destXOrigin, destYOrigin, destWidth, destHeight; 654} GLXPipeRect; 655 656typedef struct { 657 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; 658 int XOrigin, YOrigin, maxHeight, maxWidth; 659} GLXPipeRectLimits; 660 661#ifdef GLX_GLXEXT_PROTOTYPES 662extern GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *, int *); 663extern int glXHyperpipeConfigSGIX (Display *, int, int, GLXHyperpipeConfigSGIX *, int *); 664extern GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *, int, int *); 665extern int glXDestroyHyperpipeConfigSGIX (Display *, int); 666extern int glXBindHyperpipeSGIX (Display *, int); 667extern int glXQueryHyperpipeBestAttribSGIX (Display *, int, int, int, void *, void *); 668extern int glXHyperpipeAttribSGIX (Display *, int, int, int, void *); 669extern int glXQueryHyperpipeAttribSGIX (Display *, int, int, int, void *); 670#endif /* GLX_GLXEXT_PROTOTYPES */ 671typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); 672typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); 673typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes); 674typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId); 675typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId); 676typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); 677typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList); 678typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); 679#endif 680 681#ifndef GLX_MESA_agp_offset 682#define GLX_MESA_agp_offset 1 683#ifdef GLX_GLXEXT_PROTOTYPES 684extern unsigned int glXGetAGPOffsetMESA (const void *); 685#endif /* GLX_GLXEXT_PROTOTYPES */ 686typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void *pointer); 687#endif 688 689#ifdef __cplusplus 690} 691#endif 692 693#endif 694