Panda3D

panda_glxext.h

00001 #ifndef panda__glxext_h_
00002 #define panda__glxext_h_
00003 
00004 #ifdef __cplusplus
00005 extern "C" {
00006 #endif
00007 
00008 /*
00009 ** License Applicability. Except to the extent portions of this file are
00010 ** made subject to an alternative license as permitted in the SGI Free
00011 ** Software License B, Version 1.1 (the "License"), the contents of this
00012 ** file are subject only to the provisions of the License. You may not use
00013 ** this file except in compliance with the License. You may obtain a copy
00014 ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
00015 ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
00016 ** 
00017 ** http://oss.sgi.com/projects/FreeB
00018 ** 
00019 ** Note that, as provided in the License, the Software is distributed on an
00020 ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
00021 ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
00022 ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
00023 ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
00024 ** 
00025 ** Original Code. The Original Code is: OpenGL Sample Implementation,
00026 ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
00027 ** Inc. The Original Code is Copyright (c) 1991-2002 Silicon Graphics, Inc.
00028 ** Copyright in any portions created by third parties is as indicated
00029 ** elsewhere herein. All Rights Reserved.
00030 ** 
00031 ** Additional Notice Provisions: This software was created using the
00032 ** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
00033 ** not been independently verified as being compliant with the OpenGL(R)
00034 ** version 1.2.1 Specification.
00035 */
00036 
00037 #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
00038 #define WIN32_LEAN_AND_MEAN 1
00039 #include <windows.h>
00040 #endif
00041 
00042 #ifndef APIENTRY
00043 #define APIENTRY
00044 #endif
00045 #ifndef APIENTRYP
00046 #define APIENTRYP APIENTRY *
00047 #endif
00048 #ifndef GLAPI
00049 #define GLAPI extern
00050 #endif
00051 
00052 /*************************************************************/
00053 
00054 /* Header file version number, required by OpenGL ABI for Linux */
00055 /* glxext.h last updated 2002/03/22 */
00056 /* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */
00057 #define GLX_GLXEXT_VERSION 5
00058 
00059 #ifndef GLX_VERSION_1_3
00060 #define GLX_WINDOW_BIT                     0x00000001
00061 #define GLX_PIXMAP_BIT                     0x00000002
00062 #define GLX_PBUFFER_BIT                    0x00000004
00063 #define GLX_RGBA_BIT                       0x00000001
00064 #define GLX_COLOR_INDEX_BIT                0x00000002
00065 #define GLX_PBUFFER_CLOBBER_MASK           0x08000000
00066 #define GLX_FRONT_LEFT_BUFFER_BIT          0x00000001
00067 #define GLX_FRONT_RIGHT_BUFFER_BIT         0x00000002
00068 #define GLX_BACK_LEFT_BUFFER_BIT           0x00000004
00069 #define GLX_BACK_RIGHT_BUFFER_BIT          0x00000008
00070 #define GLX_AUX_BUFFERS_BIT                0x00000010
00071 #define GLX_DEPTH_BUFFER_BIT               0x00000020
00072 #define GLX_STENCIL_BUFFER_BIT             0x00000040
00073 #define GLX_ACCUM_BUFFER_BIT               0x00000080
00074 #define GLX_CONFIG_CAVEAT                  0x20
00075 #define GLX_X_VISUAL_TYPE                  0x22
00076 #define GLX_TRANSPARENT_TYPE               0x23
00077 #define GLX_TRANSPARENT_INDEX_VALUE        0x24
00078 #define GLX_TRANSPARENT_RED_VALUE          0x25
00079 #define GLX_TRANSPARENT_GREEN_VALUE        0x26
00080 #define GLX_TRANSPARENT_BLUE_VALUE         0x27
00081 #define GLX_TRANSPARENT_ALPHA_VALUE        0x28
00082 #define GLX_DONT_CARE                      0xFFFFFFFF
00083 #define GLX_NONE                           0x8000
00084 #define GLX_SLOW_CONFIG                    0x8001
00085 #define GLX_TRUE_COLOR                     0x8002
00086 #define GLX_DIRECT_COLOR                   0x8003
00087 #define GLX_PSEUDO_COLOR                   0x8004
00088 #define GLX_STATIC_COLOR                   0x8005
00089 #define GLX_GRAY_SCALE                     0x8006
00090 #define GLX_STATIC_GRAY                    0x8007
00091 #define GLX_TRANSPARENT_RGB                0x8008
00092 #define GLX_TRANSPARENT_INDEX              0x8009
00093 #define GLX_VISUAL_ID                      0x800B
00094 #define GLX_SCREEN                         0x800C
00095 #define GLX_NON_CONFORMANT_CONFIG          0x800D
00096 #define GLX_DRAWABLE_TYPE                  0x8010
00097 #define GLX_RENDER_TYPE                    0x8011
00098 #define GLX_X_RENDERABLE                   0x8012
00099 #define GLX_FBCONFIG_ID                    0x8013
00100 #define GLX_RGBA_TYPE                      0x8014
00101 #define GLX_COLOR_INDEX_TYPE               0x8015
00102 #define GLX_MAX_PBUFFER_WIDTH              0x8016
00103 #define GLX_MAX_PBUFFER_HEIGHT             0x8017
00104 #define GLX_MAX_PBUFFER_PIXELS             0x8018
00105 #define GLX_PRESERVED_CONTENTS             0x801B
00106 #define GLX_LARGEST_PBUFFER                0x801C
00107 #define GLX_WIDTH                          0x801D
00108 #define GLX_HEIGHT                         0x801E
00109 #define GLX_EVENT_MASK                     0x801F
00110 #define GLX_DAMAGED                        0x8020
00111 #define GLX_SAVED                          0x8021
00112 #define GLX_WINDOW                         0x8022
00113 #define GLX_PBUFFER                        0x8023
00114 #define GLX_PBUFFER_HEIGHT                 0x8040
00115 #define GLX_PBUFFER_WIDTH                  0x8041
00116 #endif
00117 
00118 #ifndef GLX_VERSION_1_4
00119 #define GLX_SAMPLE_BUFFERS                 100000
00120 #define GLX_SAMPLES                        100001
00121 #endif
00122 
00123 /* drose: the version of GL/glx.h that ships with Fedora Core 2 seems
00124    to define GLX_VERSION_1_4, but for some reason does not define
00125    GLX_SAMPLE_BUFFERS or GLX_SAMPLES.  We work around that here. */
00126 #ifndef GLX_SAMPLE_BUFFERS
00127 #define GLX_SAMPLE_BUFFERS                 100000
00128 #endif
00129 #ifndef GLX_SAMPLES
00130 #define GLX_SAMPLES                        100001
00131 #endif
00132 
00133 #ifndef GLX_ARB_get_proc_address
00134 #endif
00135 
00136 #ifndef GLX_ARB_multisample
00137 #define GLX_SAMPLE_BUFFERS_ARB             100000
00138 #define GLX_SAMPLES_ARB                    100001
00139 #endif
00140 
00141 #ifndef GLX_SGIS_multisample
00142 #define GLX_SAMPLE_BUFFERS_SGIS            100000
00143 #define GLX_SAMPLES_SGIS                   100001
00144 #endif
00145 
00146 #ifndef GLX_EXT_visual_info
00147 #define GLX_X_VISUAL_TYPE_EXT              0x22
00148 #define GLX_TRANSPARENT_TYPE_EXT           0x23
00149 #define GLX_TRANSPARENT_INDEX_VALUE_EXT    0x24
00150 #define GLX_TRANSPARENT_RED_VALUE_EXT      0x25
00151 #define GLX_TRANSPARENT_GREEN_VALUE_EXT    0x26
00152 #define GLX_TRANSPARENT_BLUE_VALUE_EXT     0x27
00153 #define GLX_TRANSPARENT_ALPHA_VALUE_EXT    0x28
00154 #define GLX_NONE_EXT                       0x8000
00155 #define GLX_TRUE_COLOR_EXT                 0x8002
00156 #define GLX_DIRECT_COLOR_EXT               0x8003
00157 #define GLX_PSEUDO_COLOR_EXT               0x8004
00158 #define GLX_STATIC_COLOR_EXT               0x8005
00159 #define GLX_GRAY_SCALE_EXT                 0x8006
00160 #define GLX_STATIC_GRAY_EXT                0x8007
00161 #define GLX_TRANSPARENT_RGB_EXT            0x8008
00162 #define GLX_TRANSPARENT_INDEX_EXT          0x8009
00163 #endif
00164 
00165 #ifndef GLX_SGI_swap_control
00166 #endif
00167 
00168 #ifndef GLX_SGI_video_sync
00169 #endif
00170 
00171 #ifndef GLX_SGI_make_current_read
00172 #endif
00173 
00174 #ifndef GLX_SGIX_video_source
00175 #endif
00176 
00177 #ifndef GLX_EXT_visual_rating
00178 #define GLX_VISUAL_CAVEAT_EXT              0x20
00179 #define GLX_SLOW_VISUAL_EXT                0x8001
00180 #define GLX_NON_CONFORMANT_VISUAL_EXT      0x800D
00181 /* reuse GLX_NONE_EXT */
00182 #endif
00183 
00184 #ifndef GLX_EXT_import_context
00185 #define GLX_SHARE_CONTEXT_EXT              0x800A
00186 #define GLX_VISUAL_ID_EXT                  0x800B
00187 #define GLX_SCREEN_EXT                     0x800C
00188 #endif
00189 
00190 #ifndef GLX_SGIX_fbconfig
00191 #define GLX_WINDOW_BIT_SGIX                0x00000001
00192 #define GLX_PIXMAP_BIT_SGIX                0x00000002
00193 #define GLX_RGBA_BIT_SGIX                  0x00000001
00194 #define GLX_COLOR_INDEX_BIT_SGIX           0x00000002
00195 #define GLX_DRAWABLE_TYPE_SGIX             0x8010
00196 #define GLX_RENDER_TYPE_SGIX               0x8011
00197 #define GLX_X_RENDERABLE_SGIX              0x8012
00198 #define GLX_FBCONFIG_ID_SGIX               0x8013
00199 #define GLX_RGBA_TYPE_SGIX                 0x8014
00200 #define GLX_COLOR_INDEX_TYPE_SGIX          0x8015
00201 /* reuse GLX_SCREEN_EXT */
00202 #endif
00203 
00204 #ifndef GLX_SGIX_pbuffer
00205 #define GLX_PBUFFER_BIT_SGIX               0x00000004
00206 #define GLX_BUFFER_CLOBBER_MASK_SGIX       0x08000000
00207 #define GLX_FRONT_LEFT_BUFFER_BIT_SGIX     0x00000001
00208 #define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX    0x00000002
00209 #define GLX_BACK_LEFT_BUFFER_BIT_SGIX      0x00000004
00210 #define GLX_BACK_RIGHT_BUFFER_BIT_SGIX     0x00000008
00211 #define GLX_AUX_BUFFERS_BIT_SGIX           0x00000010
00212 #define GLX_DEPTH_BUFFER_BIT_SGIX          0x00000020
00213 #define GLX_STENCIL_BUFFER_BIT_SGIX        0x00000040
00214 #define GLX_ACCUM_BUFFER_BIT_SGIX          0x00000080
00215 #define GLX_SAMPLE_BUFFERS_BIT_SGIX        0x00000100
00216 #define GLX_MAX_PBUFFER_WIDTH_SGIX         0x8016
00217 #define GLX_MAX_PBUFFER_HEIGHT_SGIX        0x8017
00218 #define GLX_MAX_PBUFFER_PIXELS_SGIX        0x8018
00219 #define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX     0x8019
00220 #define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX    0x801A
00221 #define GLX_PRESERVED_CONTENTS_SGIX        0x801B
00222 #define GLX_LARGEST_PBUFFER_SGIX           0x801C
00223 #define GLX_WIDTH_SGIX                     0x801D
00224 #define GLX_HEIGHT_SGIX                    0x801E
00225 #define GLX_EVENT_MASK_SGIX                0x801F
00226 #define GLX_DAMAGED_SGIX                   0x8020
00227 #define GLX_SAVED_SGIX                     0x8021
00228 #define GLX_WINDOW_SGIX                    0x8022
00229 #define GLX_PBUFFER_SGIX                   0x8023
00230 #endif
00231 
00232 #ifndef GLX_SGI_cushion
00233 #endif
00234 
00235 #ifndef GLX_SGIX_video_resize
00236 #define GLX_SYNC_FRAME_SGIX                0x00000000
00237 #define GLX_SYNC_SWAP_SGIX                 0x00000001
00238 #endif
00239 
00240 #ifndef GLX_SGIX_dmbuffer
00241 #define GLX_DIGITAL_MEDIA_PBUFFER_SGIX     0x8024
00242 #endif
00243 
00244 #ifndef GLX_SGIX_swap_group
00245 #endif
00246 
00247 #ifndef GLX_SGIX_swap_barrier
00248 #endif
00249 
00250 #ifndef GLX_SGIS_blended_overlay
00251 #define GLX_BLENDED_RGBA_SGIS              0x8025
00252 #endif
00253 
00254 #ifndef GLX_SGIS_shared_multisample
00255 #define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
00256 #define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027
00257 #endif
00258 
00259 #ifndef GLX_SUN_get_transparent_index
00260 #endif
00261 
00262 #ifndef GLX_3DFX_multisample
00263 #define GLX_SAMPLE_BUFFERS_3DFX            0x8050
00264 #define GLX_SAMPLES_3DFX                   0x8051
00265 #endif
00266 
00267 #ifndef GLX_MESA_copy_sub_buffer
00268 #endif
00269 
00270 #ifndef GLX_MESA_pixmap_colormap
00271 #endif
00272 
00273 #ifndef GLX_MESA_release_buffers
00274 #endif
00275 
00276 #ifndef GLX_MESA_set_3dfx_mode
00277 #define GLX_3DFX_WINDOW_MODE_MESA          0x1
00278 #define GLX_3DFX_FULLSCREEN_MODE_MESA      0x2
00279 #endif
00280 
00281 #ifndef GLX_SGIX_visual_select_group
00282 #define GLX_VISUAL_SELECT_GROUP_SGIX       0x8028
00283 #endif
00284 
00285 #ifndef GLX_OML_swap_method
00286 #define GLX_SWAP_METHOD_OML                0x8060
00287 #define GLX_SWAP_EXCHANGE_OML              0x8061
00288 #define GLX_SWAP_COPY_OML                  0x8062
00289 #define GLX_SWAP_UNDEFINED_OML             0x8063
00290 #endif
00291 
00292 #ifndef GLX_OML_sync_control
00293 #endif
00294 
00295 
00296 /*************************************************************/
00297 
00298 /* drose: glxext.h seems to have an error in that it assumes
00299    __GLXextFuncPtr will be typedeffed if GLX_ARB_get_proc_address is
00300    defined, which does not seem to be the case (at least it is not so
00301    on my redhat 8.0 box).  So we work around this by typedeffing it
00302    explicitly; and we use #define in case it is already typedeffed. */
00303 #define __GLXextFuncPtr panda__GLXextFuncPtr
00304 typedef void (*__GLXextFuncPtr)();
00305 
00306   /*
00307 #ifndef GLX_ARB_get_proc_address
00308 typedef void (*__GLXextFuncPtr)();
00309 #endif
00310   */
00311 
00312 #ifndef GLX_SGIX_video_source
00313 typedef XID GLXVideoSourceSGIX;
00314 #endif
00315 
00316 #ifndef GLX_SGIX_fbconfig
00317 typedef XID GLXFBConfigIDSGIX;
00318 typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
00319 #endif
00320 
00321 #ifndef GLX_SGIX_pbuffer
00322 typedef XID GLXPbufferSGIX;
00323 typedef struct {
00324     int type;
00325     unsigned long serial;         /* # of last request processed by server */
00326     Bool send_event;              /* true if this came for SendEvent request */
00327     X11_Display *display;             /* display the event was read from */
00328     GLXDrawable drawable;         /* i.d. of Drawable */
00329     int event_type;               /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */
00330     int draw_type;                /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */
00331     unsigned int mask;    /* mask indicating which buffers are affected*/
00332     int x, y;
00333     int width, height;
00334     int count;            /* if nonzero, at least this many more */
00335 } GLXBufferClobberEventSGIX;
00336 #endif
00337 
00338 #ifndef GLX_VERSION_1_3
00339 #define GLX_VERSION_1_3 1
00340   /* drose: If the system glx.h isn't at least version 1.3, it won't
00341      have defined these types, so we need to do so here in order for
00342      the following to compile. */
00343 typedef struct __GLXFBConfigRec *GLXFBConfig;    
00344 typedef XID GLXPbuffer;
00345 typedef XID GLXWindow;
00346 
00347 #ifdef GLX_GLXEXT_PROTOTYPES
00348 extern GLXFBConfig * glXGetFBConfigs (X11_Display *, int, int *);
00349 extern GLXFBConfig * glXChooseFBConfig (X11_Display *, int, const int *, int *);
00350 extern int glXGetFBConfigAttrib (X11_Display *, GLXFBConfig, int, int *);
00351 extern XVisualInfo * glXGetVisualFromFBConfig (X11_Display *, GLXFBConfig);
00352 extern GLXWindow glXCreateWindow (X11_Display *, GLXFBConfig, X11_Window, const int *);
00353 extern void glXDestroyWindow (X11_Display *, GLXWindow);
00354 extern GLXPixmap glXCreatePixmap (X11_Display *, GLXFBConfig, Pixmap, const int *);
00355 extern void glXDestroyPixmap (X11_Display *, GLXPixmap);
00356 extern GLXPbuffer glXCreatePbuffer (X11_Display *, GLXFBConfig, const int *);
00357 extern void glXDestroyPbuffer (X11_Display *, GLXPbuffer);
00358 extern void glXQueryDrawable (X11_Display *, GLXDrawable, int, unsigned int *);
00359 extern GLXContext glXCreateNewContext (X11_Display *, GLXFBConfig, int, GLXContext, Bool);
00360 extern Bool glXMakeContextCurrent (X11_Display *, GLXDrawable, GLXDrawable, GLXContext);
00361 extern GLXDrawable glXGetCurrentReadDrawable ();
00362 extern X11_Display * glXGetCurrentDisplay ();
00363 extern int glXQueryContext (X11_Display *, GLXContext, int, int *);
00364 extern void glXSelectEvent (X11_Display *, GLXDrawable, unsigned long);
00365 extern void glXGetSelectedEvent (X11_Display *, GLXDrawable, unsigned long *);
00366 #endif /* GLX_GLXEXT_PROTOTYPES */
00367   /* drose: all of the following PFN... typedefs seemed to be
00368      incorrect.  I put a * just inside the leading parenthesis. */
00369 typedef GLXFBConfig * (* PFNGLXGETFBCONFIGSPROC) (X11_Display *dpy, int screen, int *nelements);
00370 typedef GLXFBConfig * (* PFNGLXCHOOSEFBCONFIGPROC) (X11_Display *dpy, int screen, const int *attrib_list, int *nelements);
00371 typedef int (* PFNGLXGETFBCONFIGATTRIBPROC) (X11_Display *dpy, GLXFBConfig config, int attribute, int *value);
00372 typedef XVisualInfo * (* PFNGLXGETVISUALFROMFBCONFIGPROC) (X11_Display *dpy, GLXFBConfig config);
00373 typedef GLXWindow (* PFNGLXCREATEWINDOWPROC) (X11_Display *dpy, GLXFBConfig config, X11_Window win, const int *attrib_list);
00374 typedef void (* PFNGLXDESTROYWINDOWPROC) (X11_Display *dpy, GLXWindow win);
00375 typedef GLXPixmap (* PFNGLXCREATEPIXMAPPROC) (X11_Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
00376 typedef void (* PFNGLXDESTROYPIXMAPPROC) (X11_Display *dpy, GLXPixmap pixmap);
00377 typedef GLXPbuffer (* PFNGLXCREATEPBUFFERPROC) (X11_Display *dpy, GLXFBConfig config, const int *attrib_list);
00378 typedef void (* PFNGLXDESTROYPBUFFERPROC) (X11_Display *dpy, GLXPbuffer pbuf);
00379 typedef void (* PFNGLXQUERYDRAWABLEPROC) (X11_Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
00380 typedef GLXContext (* PFNGLXCREATENEWCONTEXTPROC) (X11_Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
00381 typedef Bool (* PFNGLXMAKECONTEXTCURRENTPROC) (X11_Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
00382 typedef GLXDrawable (* PFNGLXGETCURRENTREADDRAWABLEPROC) ();
00383 typedef X11_Display * (* PFNGLXGETCURRENTDISPLAYPROC) ();
00384 typedef int (* PFNGLXQUERYCONTEXTPROC) (X11_Display *dpy, GLXContext ctx, int attribute, int *value);
00385 typedef void (* PFNGLXSELECTEVENTPROC) (X11_Display *dpy, GLXDrawable draw, unsigned long event_mask);
00386 typedef void (* PFNGLXGETSELECTEDEVENTPROC) (X11_Display *dpy, GLXDrawable draw, unsigned long *event_mask);
00387 #endif
00388 
00389 #ifndef GLX_VERSION_1_4
00390 #define GLX_VERSION_1_4 1
00391 #ifdef GLX_GLXEXT_PROTOTYPES
00392 extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *);
00393 #endif /* GLX_GLXEXT_PROTOTYPES */
00394 typedef __GLXextFuncPtr (* PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName);
00395 #endif
00396 
00397 #ifndef GLX_ARB_get_proc_address
00398 #define GLX_ARB_get_proc_address 1
00399 #ifdef GLX_GLXEXT_PROTOTYPES
00400 extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *);
00401 #endif /* GLX_GLXEXT_PROTOTYPES */
00402 typedef __GLXextFuncPtr (* PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName);
00403 #endif
00404 
00405 #ifndef GLX_ARB_multisample
00406 #define GLX_ARB_multisample 1
00407 #endif
00408 
00409 #ifndef GLX_SGIS_multisample
00410 #define GLX_SGIS_multisample 1
00411 #endif
00412 
00413 #ifndef GLX_EXT_visual_info
00414 #define GLX_EXT_visual_info 1
00415 #endif
00416 
00417 #ifndef GLX_SGI_swap_control
00418 #define GLX_SGI_swap_control 1
00419 #ifdef GLX_GLXEXT_PROTOTYPES
00420 extern int glXSwapIntervalSGI (int);
00421 #endif /* GLX_GLXEXT_PROTOTYPES */
00422 typedef int (* PFNGLXSWAPINTERVALSGIPROC) (int interval);
00423 #endif
00424 
00425 #ifndef GLX_SGI_video_sync
00426 #define GLX_SGI_video_sync 1
00427 #ifdef GLX_GLXEXT_PROTOTYPES
00428 extern int glXGetVideoSyncSGI (unsigned int *);
00429 extern int glXWaitVideoSyncSGI (int, int, unsigned int *);
00430 #endif /* GLX_GLXEXT_PROTOTYPES */
00431 typedef int (* PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count);
00432 typedef int (* PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count);
00433 #endif
00434 
00435 #ifndef GLX_SGI_make_current_read
00436 #define GLX_SGI_make_current_read 1
00437 #ifdef GLX_GLXEXT_PROTOTYPES
00438 extern Bool glXMakeCurrentReadSGI (X11_Display *, GLXDrawable, GLXDrawable, GLXContext);
00439 extern GLXDrawable glXGetCurrentReadDrawableSGI ();
00440 #endif /* GLX_GLXEXT_PROTOTYPES */
00441 typedef Bool (* PFNGLXMAKECURRENTREADSGIPROC) (X11_Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
00442 typedef GLXDrawable (* PFNGLXGETCURRENTREADDRAWABLESGIPROC) ();
00443 #endif
00444 
00445 #ifndef GLX_SGIX_video_source
00446 #define GLX_SGIX_video_source 1
00447 #ifdef _VL_H
00448 #ifdef GLX_GLXEXT_PROTOTYPES
00449 extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (X11_Display *, int, VLServer, VLPath, int, VLNode);
00450 extern void glXDestroyGLXVideoSourceSGIX (X11_Display *, GLXVideoSourceSGIX);
00451 #endif /* GLX_GLXEXT_PROTOTYPES */
00452 typedef GLXVideoSourceSGIX (* PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (X11_Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode);
00453 typedef void (* PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (X11_Display *dpy, GLXVideoSourceSGIX glxvideosource);
00454 #endif
00455 
00456 #endif /* _VL_H */
00457 #ifndef GLX_EXT_visual_rating
00458 #define GLX_EXT_visual_rating 1
00459 #endif
00460 
00461 #ifndef GLX_EXT_import_context
00462 #define GLX_EXT_import_context 1
00463 #ifdef GLX_GLXEXT_PROTOTYPES
00464 extern X11_Display * glXGetCurrentDisplayEXT ();
00465 extern int glXQueryContextInfoEXT (X11_Display *, GLXContext, int, int *);
00466 extern GLXContextID glXGetContextIDEXT (const GLXContext);
00467 extern GLXContext glXImportContextEXT (X11_Display *, GLXContextID);
00468 extern void glXFreeContextEXT (X11_Display *, GLXContext);
00469 #endif /* GLX_GLXEXT_PROTOTYPES */
00470 typedef X11_Display * (* PFNGLXGETCURRENTDISPLAYEXTPROC) ();
00471 typedef int (* PFNGLXQUERYCONTEXTINFOEXTPROC) (X11_Display *dpy, GLXContext context, int attribute, int *value);
00472 typedef GLXContextID (* PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context);
00473 typedef GLXContext (* PFNGLXIMPORTCONTEXTEXTPROC) (X11_Display *dpy, GLXContextID contextID);
00474 typedef void (* PFNGLXFREECONTEXTEXTPROC) (X11_Display *dpy, GLXContext context);
00475 #endif
00476 
00477 #ifndef GLX_SGIX_fbconfig
00478 #define GLX_SGIX_fbconfig 1
00479 #ifdef GLX_GLXEXT_PROTOTYPES
00480 extern int glXGetFBConfigAttribSGIX (X11_Display *, GLXFBConfigSGIX, int, int *);
00481 extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (X11_Display *, int, int *, int *);
00482 extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (X11_Display *, GLXFBConfigSGIX, Pixmap);
00483 extern GLXContext glXCreateContextWithConfigSGIX (X11_Display *, GLXFBConfigSGIX, int, GLXContext, Bool);
00484 extern XVisualInfo * glXGetVisualFromFBConfigSGIX (X11_Display *, GLXFBConfigSGIX);
00485 extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (X11_Display *, XVisualInfo *);
00486 #endif /* GLX_GLXEXT_PROTOTYPES */
00487 typedef int (* PFNGLXGETFBCONFIGATTRIBSGIXPROC) (X11_Display *dpy, GLXFBConfigSGIX config, int attribute, int *value);
00488 typedef GLXFBConfigSGIX * (* PFNGLXCHOOSEFBCONFIGSGIXPROC) (X11_Display *dpy, int screen, int *attrib_list, int *nelements);
00489 typedef GLXPixmap (* PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (X11_Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap);
00490 typedef GLXContext (* PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (X11_Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct);
00491 typedef XVisualInfo * (* PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (X11_Display *dpy, GLXFBConfigSGIX config);
00492 typedef GLXFBConfigSGIX (* PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (X11_Display *dpy, XVisualInfo *vis);
00493 #endif
00494 
00495 #ifndef GLX_SGIX_pbuffer
00496 #define GLX_SGIX_pbuffer 1
00497 #ifdef GLX_GLXEXT_PROTOTYPES
00498 extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (X11_Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *);
00499 extern void glXDestroyGLXPbufferSGIX (X11_Display *, GLXPbufferSGIX);
00500 extern int glXQueryGLXPbufferSGIX (X11_Display *, GLXPbufferSGIX, int, unsigned int *);
00501 extern void glXSelectEventSGIX (X11_Display *, GLXDrawable, unsigned long);
00502 extern void glXGetSelectedEventSGIX (X11_Display *, GLXDrawable, unsigned long *);
00503 #endif /* GLX_GLXEXT_PROTOTYPES */
00504 typedef GLXPbufferSGIX (* PFNGLXCREATEGLXPBUFFERSGIXPROC) (X11_Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list);
00505 typedef void (* PFNGLXDESTROYGLXPBUFFERSGIXPROC) (X11_Display *dpy, GLXPbufferSGIX pbuf);
00506 typedef int (* PFNGLXQUERYGLXPBUFFERSGIXPROC) (X11_Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value);
00507 typedef void (* PFNGLXSELECTEVENTSGIXPROC) (X11_Display *dpy, GLXDrawable drawable, unsigned long mask);
00508 typedef void (* PFNGLXGETSELECTEDEVENTSGIXPROC) (X11_Display *dpy, GLXDrawable drawable, unsigned long *mask);
00509 #endif
00510 
00511 #ifndef GLX_SGI_cushion
00512 #define GLX_SGI_cushion 1
00513 #ifdef GLX_GLXEXT_PROTOTYPES
00514 extern void glXCushionSGI (X11_Display *, X11_Window, float);
00515 #endif /* GLX_GLXEXT_PROTOTYPES */
00516 typedef void (* PFNGLXCUSHIONSGIPROC) (X11_Display *dpy, X11_Window window, float cushion);
00517 #endif
00518 
00519 #ifndef GLX_SGIX_video_resize
00520 #define GLX_SGIX_video_resize 1
00521 #ifdef GLX_GLXEXT_PROTOTYPES
00522 extern int glXBindChannelToWindowSGIX (X11_Display *, int, int, X11_Window);
00523 extern int glXChannelRectSGIX (X11_Display *, int, int, int, int, int, int);
00524 extern int glXQueryChannelRectSGIX (X11_Display *, int, int, int *, int *, int *, int *);
00525 extern int glXQueryChannelDeltasSGIX (X11_Display *, int, int, int *, int *, int *, int *);
00526 extern int glXChannelRectSyncSGIX (X11_Display *, int, int, GLenum);
00527 #endif /* GLX_GLXEXT_PROTOTYPES */
00528 typedef int (* PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (X11_Display *display, int screen, int channel, X11_Window window);
00529 typedef int (* PFNGLXCHANNELRECTSGIXPROC) (X11_Display *display, int screen, int channel, int x, int y, int w, int h);
00530 typedef int (* PFNGLXQUERYCHANNELRECTSGIXPROC) (X11_Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
00531 typedef int (* PFNGLXQUERYCHANNELDELTASSGIXPROC) (X11_Display *display, int screen, int channel, int *x, int *y, int *w, int *h);
00532 typedef int (* PFNGLXCHANNELRECTSYNCSGIXPROC) (X11_Display *display, int screen, int channel, GLenum synctype);
00533 #endif
00534 
00535 #ifndef GLX_SGIX_dmbuffer
00536 #define GLX_SGIX_dmbuffer 1
00537 #ifdef _DM_BUFFER_H_
00538 #ifdef GLX_GLXEXT_PROTOTYPES
00539 extern Bool glXAssociateDMPbufferSGIX (X11_Display *, GLXPbufferSGIX, DMparams *, DMbuffer);
00540 #endif /* GLX_GLXEXT_PROTOTYPES */
00541 typedef Bool (* PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (X11_Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer);
00542 #endif
00543 
00544 #endif /* _DM_BUFFER_H_ */
00545 #ifndef GLX_SGIX_swap_group
00546 #define GLX_SGIX_swap_group 1
00547 #ifdef GLX_GLXEXT_PROTOTYPES
00548 extern void glXJoinSwapGroupSGIX (X11_Display *, GLXDrawable, GLXDrawable);
00549 #endif /* GLX_GLXEXT_PROTOTYPES */
00550 typedef void (* PFNGLXJOINSWAPGROUPSGIXPROC) (X11_Display *dpy, GLXDrawable drawable, GLXDrawable member);
00551 #endif
00552 
00553 #ifndef GLX_SGIX_swap_barrier
00554 #define GLX_SGIX_swap_barrier 1
00555 #ifdef GLX_GLXEXT_PROTOTYPES
00556 extern void glXBindSwapBarrierSGIX (X11_Display *, GLXDrawable, int);
00557 extern Bool glXQueryMaxSwapBarriersSGIX (X11_Display *, int, int *);
00558 #endif /* GLX_GLXEXT_PROTOTYPES */
00559 typedef void (* PFNGLXBINDSWAPBARRIERSGIXPROC) (X11_Display *dpy, GLXDrawable drawable, int barrier);
00560 typedef Bool (* PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (X11_Display *dpy, int screen, int *max);
00561 #endif
00562 
00563 #ifndef GLX_SUN_get_transparent_index
00564 #define GLX_SUN_get_transparent_index 1
00565 #ifdef GLX_GLXEXT_PROTOTYPES
00566 extern Status glXGetTransparentIndexSUN (X11_Display *, X11_Window, X11_Window, long *);
00567 #endif /* GLX_GLXEXT_PROTOTYPES */
00568 typedef Status (* PFNGLXGETTRANSPARENTINDEXSUNPROC) (X11_Display *dpy, X11_Window overlay, X11_Window underlay, long *pTransparentIndex);
00569 #endif
00570 
00571 #ifndef GLX_MESA_copy_sub_buffer
00572 #define GLX_MESA_copy_sub_buffer 1
00573 #ifdef GLX_GLXEXT_PROTOTYPES
00574 extern void glXCopySubBufferMESA (X11_Display *, GLXDrawable, int, int, int, int);
00575 #endif /* GLX_GLXEXT_PROTOTYPES */
00576 typedef void (* PFNGLXCOPYSUBBUFFERMESAPROC) (X11_Display *dpy, GLXDrawable drawable, int x, int y, int width, int height);
00577 #endif
00578 
00579 #ifndef GLX_MESA_pixmap_colormap
00580 #define GLX_MESA_pixmap_colormap 1
00581 #ifdef GLX_GLXEXT_PROTOTYPES
00582 extern GLXPixmap glXCreateGLXPixmapMESA (X11_Display *, XVisualInfo *, Pixmap, Colormap);
00583 #endif /* GLX_GLXEXT_PROTOTYPES */
00584 typedef GLXPixmap (* PFNGLXCREATEGLXPIXMAPMESAPROC) (X11_Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
00585 #endif
00586 
00587 #ifndef GLX_MESA_release_buffers
00588 #define GLX_MESA_release_buffers 1
00589 #ifdef GLX_GLXEXT_PROTOTYPES
00590 extern Bool glXReleaseBuffersMESA (X11_Display *, GLXDrawable);
00591 #endif /* GLX_GLXEXT_PROTOTYPES */
00592 typedef Bool (* PFNGLXRELEASEBUFFERSMESAPROC) (X11_Display *dpy, GLXDrawable drawable);
00593 #endif
00594 
00595 #ifndef GLX_MESA_set_3dfx_mode
00596 #define GLX_MESA_set_3dfx_mode 1
00597 #ifdef GLX_GLXEXT_PROTOTYPES
00598 extern Bool glXSet3DfxModeMESA (int);
00599 #endif /* GLX_GLXEXT_PROTOTYPES */
00600 typedef Bool (* PFNGLXSET3DFXMODEMESAPROC) (int mode);
00601 #endif
00602 
00603 #ifndef GLX_SGIX_visual_select_group
00604 #define GLX_SGIX_visual_select_group 1
00605 #endif
00606 
00607 #ifndef GLX_OML_swap_method
00608 #define GLX_OML_swap_method 1
00609 #endif
00610 
00611 #ifndef GLX_OML_sync_control
00612 #define GLX_OML_sync_control 1
00613 #if defined(__STDC_VERSION__)
00614 #if __STDC_VERSION__ >= 199901L
00615 /* Include ISO C99 integer types for OML_sync_control; need a better test */
00616 #include <inttypes.h>
00617 
00618 #ifdef GLX_GLXEXT_PROTOTYPES
00619 extern Bool glXGetSyncValuesOML (X11_Display *, GLXDrawable, int64_t *, int64_t *, int64_t *);
00620 extern Bool glXGetMscRateOML (X11_Display *, GLXDrawable, int32_t *, int32_t *);
00621 extern int64_t glXSwapBuffersMscOML (X11_Display *, GLXDrawable, int64_t, int64_t, int64_t);
00622 extern Bool glXWaitForMscOML (X11_Display *, GLXDrawable, int64_t, int64_t, int64_t, int64_t *, int64_t *, int64_t *);
00623 extern Bool glXWaitForSbcOML (X11_Display *, GLXDrawable, int64_t, int64_t *, int64_t *, int64_t *);
00624 #endif /* GLX_GLXEXT_PROTOTYPES */
00625 typedef Bool (* PFNGLXGETSYNCVALUESOMLPROC) (X11_Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc);
00626 typedef Bool (* PFNGLXGETMSCRATEOMLPROC) (X11_Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator);
00627 typedef int64_t (* PFNGLXSWAPBUFFERSMSCOMLPROC) (X11_Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
00628 typedef Bool (* PFNGLXWAITFORMSCOMLPROC) (X11_Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc);
00629 typedef Bool (* PFNGLXWAITFORSBCOMLPROC) (X11_Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc);
00630 #endif
00631 
00632 #endif /* C99 version test */
00633 #endif /* STDC test */
00634 
00635 #ifdef __cplusplus
00636 }
00637 #endif
00638 
00639 #endif
 All Classes Functions Variables Enumerations