added more GLX extension function stubs
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* $Id: fakeglx.c,v 1.41 2000/12/14 17:44:08 brianp Exp $ */
|
||||
/* $Id: fakeglx.c,v 1.42 2000/12/15 04:02:50 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -1778,6 +1778,379 @@ Fake_glXGetSelectedEvent( Display *dpy, GLXDrawable drawable,
|
||||
|
||||
|
||||
|
||||
#ifdef GLX_SGI_swap_control
|
||||
|
||||
static int
|
||||
Fake_glXSwapIntervalSGI(int interval)
|
||||
{
|
||||
(void) interval;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGI_video_sync
|
||||
|
||||
static int
|
||||
Fake_glXGetVideoSyncSGI(unsigned int *count)
|
||||
{
|
||||
(void) count;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
Fake_glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count)
|
||||
{
|
||||
(void) divisor;
|
||||
(void) remainder;
|
||||
(void) count;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGI_make_current_read
|
||||
|
||||
static Bool
|
||||
Fake_glXMakeCurrentReadSGI(Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) draw;
|
||||
(void) read;
|
||||
(void) ctx;
|
||||
return False;
|
||||
}
|
||||
|
||||
static GLXDrawable
|
||||
Fake_glXGetCurrentReadDrawableSGI(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(_VL_H) && defined(GLX_SGIX_video_source)
|
||||
|
||||
static GLXVideoSourceSGIX
|
||||
Fake_glXCreateGLXVideoSourceSGIX(Display *dpy, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) screen;
|
||||
(void) server;
|
||||
(void) path;
|
||||
(void) nodeClass;
|
||||
(void) drainNode;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
Fake_glXDestroyGLXVideoSourceSGIX(Display *dpy, GLXVideoSourceSGIX src)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) src;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_EXT_import_context
|
||||
|
||||
static void
|
||||
Fake_glXFreeContextEXT(Display *dpy, GLXContext context)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) context;
|
||||
}
|
||||
|
||||
static GLXContextID
|
||||
Fake_glXGetContextIDEXT(const GLXContext context)
|
||||
{
|
||||
(void) context;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static Display *
|
||||
Fake_glXGetCurrentDisplayEXT(void)
|
||||
{
|
||||
return glXGetCurrentDisplay();
|
||||
}
|
||||
|
||||
static GLXContext
|
||||
Fake_glXImportContextEXT(Display *dpy, GLXContextID contextID)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) contextID;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
Fake_glXQueryContextInfoEXT(Display *dpy, GLXContext context, int attribute, int *value)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) context;
|
||||
(void) attribute;
|
||||
(void) value;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGIX_fbconfig
|
||||
|
||||
static int
|
||||
Fake_glXGetFBConfigAttribSGIX(Display *dpy, GLXFBConfigSGIX config, int attribute, int *value)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) config;
|
||||
(void) attribute;
|
||||
(void) value;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static GLXFBConfigSGIX *
|
||||
Fake_glXChooseFBConfigSGIX(Display *dpy, int screen, int *attrib_list, int *nelements)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) screen;
|
||||
(void) attrib_list;
|
||||
(void) nelements;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static GLXPixmap
|
||||
Fake_glXCreateGLXPixmapWithConfigSGIX(Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) config;
|
||||
(void) pixmap;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static GLXContext
|
||||
Fake_glXCreateContextWithConfigSGIX(Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) config;
|
||||
(void) render_type;
|
||||
(void) share_list;
|
||||
(void) direct;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static XVisualInfo *
|
||||
Fake_glXGetVisualFromFBConfigSGIX(Display *dpy, GLXFBConfigSGIX config)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) config;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static GLXFBConfigSGIX
|
||||
Fake_glXGetFBConfigFromVisualSGIX(Display *dpy, XVisualInfo *vis)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) vis;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGIX_pbuffer
|
||||
|
||||
static GLXPbufferSGIX
|
||||
Fake_glXCreateGLXPbufferSGIX(Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) config;
|
||||
(void) width;
|
||||
(void) height;
|
||||
(void) attrib_list;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
Fake_glXDestroyGLXPbufferSGIX(Display *dpy, GLXPbufferSGIX pbuf)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) pbuf;
|
||||
}
|
||||
|
||||
static int
|
||||
Fake_glXQueryGLXPbufferSGIX(Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) pbuf;
|
||||
(void) attribute;
|
||||
(void) value;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
Fake_glXSelectEventSGIX(Display *dpy, GLXDrawable drawable, unsigned long mask)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) drawable;
|
||||
(void) mask;
|
||||
}
|
||||
|
||||
static void
|
||||
Fake_glXGetSelectedEventSGIX(Display *dpy, GLXDrawable drawable, unsigned long *mask)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) drawable;
|
||||
(void) mask;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGI_cushion
|
||||
|
||||
static void
|
||||
Fake_glXCushionSGI(Display *dpy, Window win, float cushion)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) win;
|
||||
(void) cushion;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGIX_video_resize
|
||||
|
||||
static int
|
||||
Fake_glXBindChannelToWindowSGIX(Display *dpy, int screen, int channel , Window window)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) screen;
|
||||
(void) channel;
|
||||
(void) window;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
Fake_glXChannelRectSGIX(Display *dpy, int screen, int channel, int x, int y, int w, int h)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) screen;
|
||||
(void) channel;
|
||||
(void) x;
|
||||
(void) y;
|
||||
(void) w;
|
||||
(void) h;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
Fake_glXQueryChannelRectSGIX(Display *dpy, int screen, int channel, int *x, int *y, int *w, int *h)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) screen;
|
||||
(void) channel;
|
||||
(void) x;
|
||||
(void) y;
|
||||
(void) w;
|
||||
(void) h;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
Fake_glXQueryChannelDeltasSGIX(Display *dpy, int screen, int channel, int *dx, int *dy, int *dw, int *dh)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) screen;
|
||||
(void) channel;
|
||||
(void) dx;
|
||||
(void) dy;
|
||||
(void) dw;
|
||||
(void) dh;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
Fake_glXChannelRectSyncSGIX(Display *dpy, int screen, int channel, GLenum synctype)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) screen;
|
||||
(void) channel;
|
||||
(void) synctype;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(_DM_BUFFER_H_) && defined(GLX_SGIX_dmbuffer)
|
||||
|
||||
static Bool
|
||||
Fake_glXAssociateDMPbufferSGIX(Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) pbuffer;
|
||||
(void) params;
|
||||
(void) dmbuffer;
|
||||
return False;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGIX_swap_group
|
||||
|
||||
static void
|
||||
Fake_glXJoinSwapGroupSGIX(Display *dpy, GLXDrawable drawable, GLXDrawable member)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) drawable;
|
||||
(void) member;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGIX_swap_barrier
|
||||
|
||||
static void
|
||||
Fake_glXBindSwapBarrierSGIX(Display *dpy, GLXDrawable drawable, int barrier)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) drawable;
|
||||
(void) barrier;
|
||||
}
|
||||
|
||||
static Bool
|
||||
Fake_glXQueryMaxSwapBarriersSGIX(Display *dpy, int screen, int *max)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) screen;
|
||||
(void) max;
|
||||
return False;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SUN_get_transparent_index
|
||||
|
||||
static Status
|
||||
Fake_glXGetTransparentIndexSUN(Display *dpy, Window overlay, Window underlay, long *pTransparent)
|
||||
{
|
||||
(void) dpy;
|
||||
(void) overlay;
|
||||
(void) underlay;
|
||||
(void) pTransparent;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_MESA_release_buffers
|
||||
/*
|
||||
* Release the depth, stencil, accum buffers attached to a GLXDrawable
|
||||
@@ -1807,28 +2180,6 @@ Fake_glXSet3DfxModeMESA( int mode )
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* GLX_SGI_video_sync
|
||||
*/
|
||||
|
||||
#ifdef GLX_SGI_video_sync
|
||||
|
||||
static int
|
||||
Fake_glXGetVideoSyncSGI(unsigned int *count)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
Fake_glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
extern struct _glxapi_table *_mesa_GetGLXDispatchTable(void);
|
||||
struct _glxapi_table *_mesa_GetGLXDispatchTable(void)
|
||||
@@ -1894,26 +2245,77 @@ struct _glxapi_table *_mesa_GetGLXDispatchTable(void)
|
||||
glx.SelectEvent = Fake_glXSelectEvent;
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGI_swap_control
|
||||
glx.SwapIntervalSGI = Fake_glXSwapIntervalSGI;
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGI_video_sync
|
||||
glx.GetVideoSyncSGI = Fake_glXGetVideoSyncSGI;
|
||||
glx.WaitVideoSyncSGI = Fake_glXWaitVideoSyncSGI;
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGIX_video_resize
|
||||
glx.BindChannelToWindowSGIX = NULL;
|
||||
glx.ChannelRectSGIX = NULL;
|
||||
glx.QueryChannelRectSGIX = NULL;
|
||||
glx.QueryChannelDeltasSGIX = NULL;
|
||||
glx.ChannelRectSyncSGIX = NULL;
|
||||
#ifdef GLX_SGI_make_current_read
|
||||
glx.MakeCurrentReadSGI = Fake_glXMakeCurrentReadSGI;
|
||||
glx.GetCurrentReadDrawableSGI = Fake_glXGetCurrentReadDrawableSGI;
|
||||
#endif
|
||||
|
||||
#if defined(_VL_H) && defined(GLX_SGIX_video_source)
|
||||
glx.CreateGLXVideoSourceSGIX = Fake_glXCreateGLXVideoSourceSGIX;
|
||||
glx.DestroyGLXVideoSourceSGIX = Fake_glXDestroyGLXVideoSourceSGIX;
|
||||
#endif
|
||||
|
||||
#ifdef GLX_EXT_import_context
|
||||
glx.FreeContextEXT = Fake_glXFreeContextEXT;
|
||||
glx.GetContextIDEXT = Fake_glXGetContextIDEXT;
|
||||
glx.GetCurrentDisplayEXT = Fake_glXGetCurrentDisplayEXT;
|
||||
glx.ImportContextEXT = Fake_glXImportContextEXT;
|
||||
glx.QueryContextInfoEXT = Fake_glXQueryContextInfoEXT;
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGIX_fbconfig
|
||||
glx.GetFBConfigAttribSGIX = NULL;
|
||||
glx.ChooseFBConfigSGIX = NULL;
|
||||
glx.CreateGLXPixmapWithConfigSGIX = NULL;
|
||||
glx.CreateContextWithConfigSGIX = NULL;
|
||||
glx.GetVisualFromFBConfigSGIX = NULL;
|
||||
glx.GetFBConfigFromVisualSGIX = NULL;
|
||||
glx.GetFBConfigAttribSGIX = Fake_glXGetFBConfigAttribSGIX;
|
||||
glx.ChooseFBConfigSGIX = Fake_glXChooseFBConfigSGIX;
|
||||
glx.CreateGLXPixmapWithConfigSGIX = Fake_glXCreateGLXPixmapWithConfigSGIX;
|
||||
glx.CreateContextWithConfigSGIX = Fake_glXCreateContextWithConfigSGIX;
|
||||
glx.GetVisualFromFBConfigSGIX = Fake_glXGetVisualFromFBConfigSGIX;
|
||||
glx.GetFBConfigFromVisualSGIX = Fake_glXGetFBConfigFromVisualSGIX;
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGIX_pbuffer
|
||||
glx.CreateGLXPbufferSGIX = Fake_glXCreateGLXPbufferSGIX;
|
||||
glx.DestroyGLXPbufferSGIX = Fake_glXDestroyGLXPbufferSGIX;
|
||||
glx.QueryGLXPbufferSGIX = Fake_glXQueryGLXPbufferSGIX;
|
||||
glx.SelectEventSGIX = Fake_glXSelectEventSGIX;
|
||||
glx.GetSelectedEventSGIX = Fake_glXGetSelectedEventSGIX;
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGI_cushion
|
||||
glx.CushionSGI = Fake_glXCushionSGI;
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGIX_video_resize
|
||||
glx.BindChannelToWindowSGIX = Fake_glXBindChannelToWindowSGIX;
|
||||
glx.ChannelRectSGIX = Fake_glXChannelRectSGIX;
|
||||
glx.QueryChannelRectSGIX = Fake_glXQueryChannelRectSGIX;
|
||||
glx.QueryChannelDeltasSGIX = Fake_glXQueryChannelDeltasSGIX;
|
||||
glx.ChannelRectSyncSGIX = Fake_glXChannelRectSyncSGIX;
|
||||
#endif
|
||||
|
||||
#if defined(_DM_BUFFER_H_) && defined(GLX_SGIX_dmbuffer)
|
||||
glx.AssociateDMPbufferSGIX = NULL;
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGIX_swap_group
|
||||
glx.JoinSwapGroupSGIX = Fake_glXJoinSwapGroupSGIX;
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGIX_swap_barrier
|
||||
glx.BindSwapBarrierSGIX = Fake_glXBindSwapBarrierSGIX;
|
||||
glx.QueryMaxSwapBarriersSGIX = Fake_glXQueryMaxSwapBarriersSGIX;
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SUN_get_transparent_index
|
||||
glx.GetTransparentIndexSUN = Fake_glXGetTransparentIndexSUN;
|
||||
#endif
|
||||
|
||||
#ifdef GLX_MESA_copy_sub_buffer
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $Id: glxapi.c,v 1.19 2000/12/14 17:44:08 brianp Exp $ */
|
||||
/* $Id: glxapi.c,v 1.20 2000/12/15 04:02:50 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -520,6 +520,82 @@ void glXSelectEvent(Display *dpy, GLXDrawable drawable, unsigned long mask)
|
||||
#endif /* GLX_VERSION_1_3 */
|
||||
|
||||
|
||||
#ifdef GLX_SGI_swap_control
|
||||
|
||||
int glXSwapIntervalSGI(int interval)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->SwapIntervalSGI)(interval);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGI_video_sync
|
||||
|
||||
int glXGetVideoSyncSGI(unsigned int *count)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->GetVideoSyncSGI)(count);
|
||||
}
|
||||
|
||||
int glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->WaitVideoSyncSGI)(divisor, remainder, count);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGI_make_current_read
|
||||
|
||||
Bool glXMakeCurrentReadSGI(Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->MakeCurrentReadSGI)(dpy, draw, read, ctx);
|
||||
}
|
||||
|
||||
GLXDrawable glXGetCurrentReadDrawableSGI(void)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->GetCurrentReadDrawableSGI)();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(_VL_H) && defined(GLX_SGIX_video_source)
|
||||
|
||||
GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX(Display *dpy, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->CreateGLXVideoSourceSGIX)(dpy, screen, server, path, nodeClass, drainNode);
|
||||
}
|
||||
|
||||
void glXDestroyGLXVideoSourceSGIX(Display *dpy, GLXVideoSourceSGIX src)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->DestroyGLXVideoSourceSGIX)(dpy, src);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_EXT_import_context
|
||||
|
||||
void glXFreeContextEXT(Display *dpy, GLXContext context)
|
||||
@@ -530,7 +606,6 @@ void glXFreeContextEXT(Display *dpy, GLXContext context)
|
||||
(t->FreeContextEXT)(dpy, context);
|
||||
}
|
||||
|
||||
|
||||
GLXContextID glXGetContextIDEXT(const GLXContext context)
|
||||
{
|
||||
/* XXX is this function right? */
|
||||
@@ -540,13 +615,11 @@ GLXContextID glXGetContextIDEXT(const GLXContext context)
|
||||
return (t->GetContextIDEXT)(context);
|
||||
}
|
||||
|
||||
|
||||
Display *glXGetCurrentDisplayEXT(void)
|
||||
{
|
||||
return CurrentDisplay;
|
||||
}
|
||||
|
||||
|
||||
GLXContext glXImportContextEXT(Display *dpy, GLXContextID contextID)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
@@ -566,23 +639,112 @@ int glXQueryContextInfoEXT(Display *dpy, GLXContext context, int attribute,int *
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGI_video_sync
|
||||
#ifdef GLX_SGIX_fbconfig
|
||||
|
||||
int glXGetVideoSyncSGI(unsigned int *count)
|
||||
int glXGetFBConfigAttribSGIX(Display *dpy, GLXFBConfigSGIX config, int attribute, int *value)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->GetVideoSyncSGI)(count);
|
||||
return (t->GetFBConfigAttribSGIX)(dpy, config, attribute, value);
|
||||
}
|
||||
|
||||
|
||||
int glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count)
|
||||
GLXFBConfigSGIX *glXChooseFBConfigSGIX(Display *dpy, int screen, int *attrib_list, int *nelements)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->WaitVideoSyncSGI)(divisor, remainder, count);
|
||||
return (t->ChooseFBConfigSGIX)(dpy, screen, attrib_list, nelements);
|
||||
}
|
||||
|
||||
GLXPixmap glXCreateGLXPixmapWithConfigSGIX(Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->CreateGLXPixmapWithConfigSGIX)(dpy, config, pixmap);
|
||||
}
|
||||
|
||||
GLXContext glXCreateContextWithConfigSGIX(Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->CreateContextWithConfigSGIX)(dpy, config, render_type, share_list, direct);
|
||||
}
|
||||
|
||||
XVisualInfo * glXGetVisualFromFBConfigSGIX(Display *dpy, GLXFBConfigSGIX config)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->GetVisualFromFBConfigSGIX)(dpy, config);
|
||||
}
|
||||
|
||||
GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX(Display *dpy, XVisualInfo *vis)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->GetFBConfigFromVisualSGIX)(dpy, vis);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGIX_pbuffer
|
||||
|
||||
GLXPbufferSGIX glXCreateGLXPbufferSGIX(Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->CreateGLXPbufferSGIX)(dpy, config, width, height, attrib_list);
|
||||
}
|
||||
|
||||
void glXDestroyGLXPbufferSGIX(Display *dpy, GLXPbufferSGIX pbuf)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return;
|
||||
(t->DestroyGLXPbufferSGIX)(dpy, pbuf);
|
||||
}
|
||||
|
||||
int glXQueryGLXPbufferSGIX(Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->QueryGLXPbufferSGIX)(dpy, pbuf, attribute, value);
|
||||
}
|
||||
|
||||
void glXSelectEventSGIX(Display *dpy, GLXDrawable drawable, unsigned long mask)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return;
|
||||
(t->SelectEventSGIX)(dpy, drawable, mask);
|
||||
}
|
||||
|
||||
void glXGetSelectedEventSGIX(Display *dpy, GLXDrawable drawable, unsigned long *mask)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return;
|
||||
(t->GetSelectedEventSGIX)(dpy, drawable, mask);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGI_cushion
|
||||
|
||||
void glXCushionSGI(Display *dpy, Window win, float cushion)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return;
|
||||
(t->CushionSGI)(dpy, win, cushion);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -592,7 +754,7 @@ int glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count)
|
||||
|
||||
int glXBindChannelToWindowSGIX(Display *dpy, int screen, int channel , Window window)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->BindChannelToWindowSGIX)(dpy, screen, channel, window);
|
||||
@@ -600,7 +762,7 @@ int glXBindChannelToWindowSGIX(Display *dpy, int screen, int channel , Window wi
|
||||
|
||||
int glXChannelRectSGIX(Display *dpy, int screen, int channel, int x, int y, int w, int h)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->ChannelRectSGIX)(dpy, screen, channel, x, y, w, h);
|
||||
@@ -608,7 +770,7 @@ int glXChannelRectSGIX(Display *dpy, int screen, int channel, int x, int y, int
|
||||
|
||||
int glXQueryChannelRectSGIX(Display *dpy, int screen, int channel, int *x, int *y, int *w, int *h)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->QueryChannelRectSGIX)(dpy, screen, channel, x, y, w, h);
|
||||
@@ -616,7 +778,7 @@ int glXQueryChannelRectSGIX(Display *dpy, int screen, int channel, int *x, int *
|
||||
|
||||
int glXQueryChannelDeltasSGIX(Display *dpy, int screen, int channel, int *dx, int *dy, int *dw, int *dh)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->QueryChannelDeltasSGIX)(dpy, screen, channel, dx, dy, dw, dh);
|
||||
@@ -624,7 +786,7 @@ int glXQueryChannelDeltasSGIX(Display *dpy, int screen, int channel, int *dx, in
|
||||
|
||||
int glXChannelRectSyncSGIX(Display *dpy, int screen, int channel, GLenum synctype)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->ChannelRectSyncSGIX)(dpy, screen, channel, synctype);
|
||||
@@ -633,61 +795,65 @@ int glXChannelRectSyncSGIX(Display *dpy, int screen, int channel, GLenum synctyp
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGIX_fbconfig
|
||||
#if defined(_DM_BUFFER_H_) && defined(GLX_SGIX_dmbuffer)
|
||||
|
||||
int glXGetFBConfigAttribSGIX(Display *dpy, GLXFBConfigSGIX config, int attribute, int *value)
|
||||
Bool glXAssociateDMPbufferSGIX(Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->GetFBConfigAttribSGIX)(dpy, config, attribute, value);
|
||||
}
|
||||
|
||||
GLXFBConfigSGIX * glXChooseFBConfigSGIX(Display *dpy, int screen, int *attrib_list, int *nelements)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->ChooseFBConfigSGIX)(dpy, screen, attrib_list, nelements);
|
||||
}
|
||||
|
||||
|
||||
GLXPixmap glXCreateGLXPixmapWithConfigSGIX(Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->CreateGLXPixmapWithConfigSGIX)(dpy, config, pixmap);
|
||||
}
|
||||
|
||||
|
||||
GLXContext glXCreateContextWithConfigSGIX(Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->CreateContextWithConfigSGIX)(dpy, config, render_type, share_list, direct);
|
||||
}
|
||||
|
||||
XVisualInfo * glXGetVisualFromFBConfigSGIX(Display *dpy, GLXFBConfigSGIX config)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->GetVisualFromFBConfigSGIX)(dpy, config);
|
||||
}
|
||||
|
||||
GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX(Display *dpy, XVisualInfo *vis)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(CurrentDisplay);
|
||||
if (!t)
|
||||
return 0;
|
||||
return (t->GetFBConfigFromVisualSGIX)(dpy, vis);
|
||||
return False;
|
||||
return (t->AssociateDMPbufferSGIX)(dpy, pbuffer, params, dmbuffer);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGIX_swap_group
|
||||
|
||||
void glXJoinSwapGroupSGIX(Display *dpy, GLXDrawable drawable, GLXDrawable member)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return;
|
||||
(*t->JoinSwapGroupSGIX)(dpy, drawable, member);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SGIX_swap_barrier
|
||||
|
||||
void glXBindSwapBarrierSGIX(Display *dpy, GLXDrawable drawable, int barrier)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return;
|
||||
(*t->BindSwapBarrierSGIX)(dpy, drawable, barrier);
|
||||
}
|
||||
|
||||
Bool glXQueryMaxSwapBarriersSGIX(Display *dpy, int screen, int *max)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return False;
|
||||
return (*t->QueryMaxSwapBarriersSGIX)(dpy, screen, max);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_SUN_get_transparent_index
|
||||
|
||||
Status glXGetTransparentIndexSUN(Display *dpy, Window overlay, Window underlay, long *pTransparent)
|
||||
{
|
||||
struct _glxapi_table *t = get_dispatch(dpy);
|
||||
if (!t)
|
||||
return False;
|
||||
return (*t->GetTransparentIndexSUN)(dpy, overlay, underlay, pTransparent);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GLX_MESA_copy_sub_buffer
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $Id: glxapi.h,v 1.7 2000/12/14 17:44:08 brianp Exp $ */
|
||||
/* $Id: glxapi.h,v 1.8 2000/12/15 04:02:50 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -41,6 +41,9 @@
|
||||
* Specifically, a real GLX library (like SGI's or the Utah GLX) and Mesa's
|
||||
* pseudo-GLX can be present at the same time. The former being used on
|
||||
* GLX-enabled X servers and the later on non-GLX X servers.
|
||||
*
|
||||
* XXX Note that this hasn't actually been fully used yet in either Mesa or
|
||||
* the DRI. Red Hat, however, has used it for their custom libGL.
|
||||
*/
|
||||
struct _glxapi_table {
|
||||
/* GLX 1.0 functions */
|
||||
@@ -92,12 +95,8 @@ struct _glxapi_table {
|
||||
void (*SelectEvent)(Display *dpy, GLXDrawable drawable, unsigned long mask);
|
||||
#endif
|
||||
|
||||
#ifdef GLX_EXT_import_context
|
||||
void (*FreeContextEXT)(Display *dpy, GLXContext context);
|
||||
GLXContextID (*GetContextIDEXT)(const GLXContext context);
|
||||
Display *(*GetCurrentDisplayEXT)(void);
|
||||
GLXContext (*ImportContextEXT)(Display *dpy, GLXContextID contextID);
|
||||
int (*QueryContextInfoEXT)(Display *dpy, GLXContext context, int attribute,int *value);
|
||||
#ifdef GLX_SGI_swap_control
|
||||
int (*SwapIntervalSGI)(int);
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGI_video_sync
|
||||
@@ -105,12 +104,22 @@ struct _glxapi_table {
|
||||
int (*WaitVideoSyncSGI)(int divisor, int remainder, unsigned int *count);
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGIX_video_resize
|
||||
int (*BindChannelToWindowSGIX)(Display *, int, int, Window);
|
||||
int (*ChannelRectSGIX)(Display *, int, int, int, int, int, int);
|
||||
int (*QueryChannelRectSGIX)(Display *, int, int, int *, int *, int *, int *);
|
||||
int (*QueryChannelDeltasSGIX)(Display *, int, int, int *, int *, int *, int *);
|
||||
int (*ChannelRectSyncSGIX)(Display *, int, int, GLenum);
|
||||
#ifdef GLX_SGI_make_current_read
|
||||
Bool (*MakeCurrentReadSGI)(Display *, GLXDrawable, GLXDrawable, GLXContext);
|
||||
GLXDrawable (*GetCurrentReadDrawableSGI)(void);
|
||||
#endif
|
||||
|
||||
#if defined(_VL_H) && defined(GLX_SGIX_video_source)
|
||||
GLXVideoSourceSGIX (*CreateGLXVideoSourceSGIX)(Display *, int, VLServer, VLPath, int, VLNode);
|
||||
void (*DestroyGLXVideoSourceSGIX)(Display *, GLXVideoSourceSGIX);
|
||||
#endif
|
||||
|
||||
#ifdef GLX_EXT_import_context
|
||||
void (*FreeContextEXT)(Display *dpy, GLXContext context);
|
||||
GLXContextID (*GetContextIDEXT)(const GLXContext context);
|
||||
Display *(*GetCurrentDisplayEXT)(void);
|
||||
GLXContext (*ImportContextEXT)(Display *dpy, GLXContextID contextID);
|
||||
int (*QueryContextInfoEXT)(Display *dpy, GLXContext context, int attribute,int *value);
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGIX_fbconfig
|
||||
@@ -122,11 +131,42 @@ struct _glxapi_table {
|
||||
GLXFBConfigSGIX (*GetFBConfigFromVisualSGIX)(Display *, XVisualInfo *);
|
||||
#endif
|
||||
|
||||
/* XXX more glx extensions to add here */
|
||||
#ifdef GLX_SGIX_pbuffer
|
||||
GLXPbufferSGIX (*CreateGLXPbufferSGIX)(Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *);
|
||||
void (*DestroyGLXPbufferSGIX)(Display *, GLXPbufferSGIX);
|
||||
int (*QueryGLXPbufferSGIX)(Display *, GLXPbufferSGIX, int, unsigned int *);
|
||||
void (*SelectEventSGIX)(Display *, GLXDrawable, unsigned long);
|
||||
void (*GetSelectedEventSGIX)(Display *, GLXDrawable, unsigned long *);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* XXX thesa Mesa-specific functions might not belong here
|
||||
*/
|
||||
#ifdef GLX_SGI_cushion
|
||||
void (*CushionSGI)(Display *, Window, float);
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGIX_video_resize
|
||||
int (*BindChannelToWindowSGIX)(Display *, int, int, Window);
|
||||
int (*ChannelRectSGIX)(Display *, int, int, int, int, int, int);
|
||||
int (*QueryChannelRectSGIX)(Display *, int, int, int *, int *, int *, int *);
|
||||
int (*QueryChannelDeltasSGIX)(Display *, int, int, int *, int *, int *, int *);
|
||||
int (*ChannelRectSyncSGIX)(Display *, int, int, GLenum);
|
||||
#endif
|
||||
|
||||
#if defined (_DM_BUFFER_H_) && defined(GLX_SGIX_dmbuffer)
|
||||
Bool (*AssociateDMPbufferSGIX)(Display *, GLXPbufferSGIX, DMparams *, DMbuffer);
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGIX_swap_group
|
||||
void (*JoinSwapGroupSGIX)(Display *, GLXDrawable, GLXDrawable);
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SGIX_swap_barrier
|
||||
void (*BindSwapBarrierSGIX)(Display *, GLXDrawable, int);
|
||||
Bool (*QueryMaxSwapBarriersSGIX)(Display *, int, int *);
|
||||
#endif
|
||||
|
||||
#ifdef GLX_SUN_get_transparent_index
|
||||
Status (*GetTransparentIndexSUN)(Display *, Window, Window, long *);
|
||||
#endif
|
||||
|
||||
#ifdef GLX_MESA_copy_sub_buffer
|
||||
void (*CopySubBufferMESA)(Display *dpy, GLXDrawable drawable, int x, int y, int width, int height);
|
||||
|
||||
Reference in New Issue
Block a user