summaryrefslogtreecommitdiff
path: root/xc/lib/GL
diff options
context:
space:
mode:
authorbrianp <brianp>2000-02-12 23:09:21 +0000
committerbrianp <brianp>2000-02-12 23:09:21 +0000
commit9232e84c16da284b2ce68e441004df381cec7e91 (patch)
tree34d9b5a50f95d08bbb27a542bd659dd002d88ad3 /xc/lib/GL
parent40bd68454309639eebe1c2cee60a61f7fcff0520 (diff)
Merged dispatch-0-0-2
Diffstat (limited to 'xc/lib/GL')
-rw-r--r--xc/lib/GL/Imakefile7
-rw-r--r--xc/lib/GL/dri/Imakefile3
-rw-r--r--xc/lib/GL/dri/dri_glx.c20
-rw-r--r--xc/lib/GL/glx/Imakefile2
-rw-r--r--xc/lib/GL/glx/glxclient.h5
-rw-r--r--xc/lib/GL/glx/glxcmds.c96
-rw-r--r--xc/lib/GL/glx/glxext.c62
-rw-r--r--xc/lib/GL/glx/indirect_init.c26
-rw-r--r--xc/lib/GL/mesa/src/Imakefile25
-rw-r--r--xc/lib/GL/mesa/src/drv/tdfx/Imakefile11
-rw-r--r--xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c16
11 files changed, 226 insertions, 47 deletions
diff --git a/xc/lib/GL/Imakefile b/xc/lib/GL/Imakefile
index 2c154b2a1..21e0e559a 100644
--- a/xc/lib/GL/Imakefile
+++ b/xc/lib/GL/Imakefile
@@ -1,5 +1,6 @@
XCOMM $XFree86: xc/lib/GL/Imakefile,v 1.10 1999/12/14 01:32:21 robin Exp $
-XCOMM $PI: xc/lib/GL/Imakefile,v 1.11 1999/06/14 21:10:34 faith Exp $
+
+#include <Threads.tmpl>
#define IHaveSubdirs
#define PassCDebugFlags
@@ -104,6 +105,10 @@ DRIMESADONES = mesa/dri/DONE
POBJS = $(GLXPOBJS) $(DRIPOBJS) $(DRVPOBJS)
DONES = $(GLXDONES) $(DRIDONES) $(DRVDONES)
+#if LocalThreads
+ OBJS += $(THREADS_LIBS)
+#endif
+
#include <Library.tmpl>
#undef _LinkBuildLibrary
diff --git a/xc/lib/GL/dri/Imakefile b/xc/lib/GL/dri/Imakefile
index c5a216896..f5bde177a 100644
--- a/xc/lib/GL/dri/Imakefile
+++ b/xc/lib/GL/dri/Imakefile
@@ -1,5 +1,6 @@
XCOMM $XFree86: xc/lib/GL/dri/Imakefile,v 1.3 1999/12/14 01:32:22 robin Exp $
-XCOMM $PI: xc/lib/GL/dri/Imakefile,v 1.11 1999/05/16 14:00:45 faith Exp $
+
+#include <Threads.tmpl>
#define DoNormalLib NormalLibGlx
#define DoSharedLib SharedLibGlx
diff --git a/xc/lib/GL/dri/dri_glx.c b/xc/lib/GL/dri/dri_glx.c
index 83a0c4f48..ac12eb368 100644
--- a/xc/lib/GL/dri/dri_glx.c
+++ b/xc/lib/GL/dri/dri_glx.c
@@ -97,6 +97,10 @@ static void *DummyCreateScreen(Display *dpy, int scrn, __DRIscreen *psc,
* screen number.
* We use the DRI in order to find the driCreateScreen function
* exported by each screen on a display.
+ *
+ * Also, this function calls the driver's _register_gl_extensions()
+ * function in order to let the driver hook new extension functions
+ * into the libGL dispatcher.
*/
static void Find_CreateScreenFuncs(Display *dpy,
CreateScreenFunc *createFuncs,
@@ -136,7 +140,8 @@ static void Find_CreateScreenFuncs(Display *dpy,
/*
- * dlopen the driver module and call its driCreateScreen function.
+ * dlopen the driver module and save the pointer to its
+ * driCreateScreen function.
*/
{
char realDriverName[100];
@@ -173,6 +178,19 @@ static void Find_CreateScreenFuncs(Display *dpy,
ErrorMessage(message);
dlclose(handle);
}
+
+ /* Find the driver's _register_gl_extensions() function and
+ * call it if present. This will let the driver tell libGL.so
+ * about any extension functions it wants to export.
+ */
+ {
+ typedef void *(*RegisterExtFunc)(void);
+ RegisterExtFunc registerExtFunc = (RegisterExtFunc) dlsym(handle, "_register_gl_extensions");
+ if (registerExtFunc) {
+ (*registerExtFunc)();
+ }
+ }
+
}
}
}
diff --git a/xc/lib/GL/glx/Imakefile b/xc/lib/GL/glx/Imakefile
index 21c837814..78c64de4d 100644
--- a/xc/lib/GL/glx/Imakefile
+++ b/xc/lib/GL/glx/Imakefile
@@ -16,6 +16,8 @@ XCOMM 1999. The developer of the Original Software is Silicon Graphics, Inc.
XCOMM Those portions of the Subject Software created by Silicon Graphics, Inc.
XCOMM are Copyright (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved.
+#include <Threads.tmpl>
+
#define DoNormalLib NormalLibGlx
#define DoSharedLib SharedLibGlx
#define DoExtraLib SharedLibGlx
diff --git a/xc/lib/GL/glx/glxclient.h b/xc/lib/GL/glx/glxclient.h
index 810570b90..6673e5cf9 100644
--- a/xc/lib/GL/glx/glxclient.h
+++ b/xc/lib/GL/glx/glxclient.h
@@ -544,9 +544,14 @@ extern __GLXdisplayPrivate *__glXInitialize(Display*);
extern int __glXDebug;
/* This is per-thread storage in an MT environment */
+#if defined(GLX_DIRECT_RENDERING) && defined(XTHREADS)
+extern __GLXcontext *__glXGetCurrentContext(void);
+extern void __glXSetCurrentContext(__GLXcontext *c);
+#else
extern __GLXcontext *__glXcurrentContext;
#define __glXGetCurrentContext() __glXcurrentContext
#define __glXSetCurrentContext(gc) __glXcurrentContext = gc
+#endif
/*
diff --git a/xc/lib/GL/glx/glxcmds.c b/xc/lib/GL/glx/glxcmds.c
index 51bd9b9e2..7ad820bf1 100644
--- a/xc/lib/GL/glx/glxcmds.c
+++ b/xc/lib/GL/glx/glxcmds.c
@@ -25,8 +25,7 @@
*
* Authors:
* Kevin E. Martin <kevin@precisioninsight.com>
- *
- * $PI: xc/lib/GL/glx/glxcmds.c,v 1.8 1999/06/10 04:39:13 martin Exp $
+ * Brian Paul <brian@precisioninsight.com>
*/
#include "packsingle.h"
@@ -34,6 +33,7 @@
#include <extutil.h>
#include <Xext.h>
#include <string.h>
+#include "glapi.h"
#ifdef GLX_DIRECT_RENDERING
#include "indirect_init.h"
#endif
@@ -1487,3 +1487,95 @@ void glXFreeContextEXT(Display *dpy, GLXContext ctx)
DestroyContext(dpy, ctx);
}
+
+/*
+** glXGetProcAddress support
+*/
+
+
+struct name_address_pair {
+ const char *Name;
+ GLvoid *Address;
+};
+
+static struct name_address_pair GLX_functions[] = {
+ { "glXChooseVisual", (GLvoid *) glXChooseVisual },
+ { "glXCopyContext", (GLvoid *) glXCopyContext },
+ { "glXCreateContext", (GLvoid *) glXCreateContext },
+ { "glXCreateGLXPixmap", (GLvoid *) glXCreateGLXPixmap },
+ { "glXDestroyContext", (GLvoid *) glXDestroyContext },
+ { "glXDestroyGLXPixmap", (GLvoid *) glXDestroyGLXPixmap },
+ { "glXGetConfig", (GLvoid *) glXGetConfig },
+ { "glXGetCurrentContext", (GLvoid *) glXGetCurrentContext },
+ { "glXGetCurrentDrawable", (GLvoid *) glXGetCurrentDrawable },
+ { "glXIsDirect", (GLvoid *) glXIsDirect },
+ { "glXMakeCurrent", (GLvoid *) glXMakeCurrent },
+ { "glXQueryExtension", (GLvoid *) glXQueryExtension },
+ { "glXQueryVersion", (GLvoid *) glXQueryVersion },
+ { "glXSwapBuffers", (GLvoid *) glXSwapBuffers },
+ { "glXUseXFont", (GLvoid *) glXUseXFont },
+ { "glXWaitGL", (GLvoid *) glXWaitGL },
+ { "glXWaitX", (GLvoid *) glXWaitX },
+
+ { "glXGetClientString", (GLvoid *) glXGetClientString },
+ { "glXQueryExtensionsString", (GLvoid *) glXQueryExtensionsString },
+ { "glXQueryServerString", (GLvoid *) glXQueryServerString },
+
+ { "glXGetCurrentDisplay", (GLvoid *) glXGetCurrentDisplay },
+
+#if 0 /* enable this when GLX 1.3 is implemented */
+ { "glXChooseFBConfig", (GLvoid *) glXChooseFBConfig },
+ { "glXCreateNewContext", (GLvoid *) glXCreateNewContext },
+ { "glXCreatePbuffer", (GLvoid *) glXCreatePbuffer },
+ { "glXCreatePixmap", (GLvoid *) glXCreatePixmap },
+ { "glXCreateWindow", (GLvoid *) glXCreateWindow },
+ { "glXDestroyPbuffer", (GLvoid *) glXDestroyPbuffer },
+ { "glXDestroyPixmap", (GLvoid *) glXDestroyPixmap },
+ { "glXDestroyWindow", (GLvoid *) glXDestroyWindow },
+ { "glXGetCurrentReadDrawable", (GLvoid *) glXGetCurrentReadDrawable },
+ { "glXGetFBConfigAttrib", (GLvoid *) glXGetFBConfigAttrib },
+ { "glXGetSelectedEvent", (GLvoid *) glXGetSelectedEvent },
+ { "glXGetVisualFromFBConfig", (GLvoid *) glXGetVisualFromFBConfig },
+ { "glXMakeContextCurrent", (GLvoid *) glXMakeContextCurrent },
+ { "glXQueryContext", (GLvoid *) glXQueryContext },
+ { "glXQueryDrawable", (GLvoid *) glXQueryDrawable },
+ { "glXSelectEvent", (GLvoid *) glXSelectEvent },
+#endif
+
+ /* extension functions */
+ { "glXGetContextIDEXT", (GLvoid *) glXGetContextIDEXT },
+ { "glXGetCurrentDrawableEXT", (GLvoid *) glXGetCurrentDrawableEXT },
+ { "glXImportContextEXT", (GLvoid *) glXImportContextEXT },
+ { "glXFreeContextEXT", (GLvoid *) glXFreeContextEXT },
+ { "glXQueryContextInfoEXT", (GLvoid *) glXQueryContextInfoEXT },
+ { "glXGetProcAddressARB", (GLvoid *) glXGetProcAddressARB },
+
+ { NULL, NULL } /* end of list */
+};
+
+
+static const GLvoid *
+get_glx_proc_address(const char *funcName)
+{
+ GLuint i;
+ for (i = 0; GLX_functions[i].Name; i++) {
+ if (strcmp(GLX_functions[i].Name, funcName) == 0)
+ return GLX_functions[i].Address;
+ }
+ return NULL;
+}
+
+
+void (*glXGetProcAddressARB(const GLubyte *procName))()
+{
+ typedef void (*gl_function)();
+ gl_function f;
+
+ f = (gl_function) get_glx_proc_address((const char *) procName);
+ if (f) {
+ return f;
+ }
+
+ f = (gl_function) _glapi_get_proc_address((const char *) procName);
+ return f;
+}
diff --git a/xc/lib/GL/glx/glxext.c b/xc/lib/GL/glx/glxext.c
index 49873ae73..c69c882fe 100644
--- a/xc/lib/GL/glx/glxext.c
+++ b/xc/lib/GL/glx/glxext.c
@@ -36,6 +36,9 @@
#include "indirect_init.h"
#include "glapi.h"
#include <assert.h>
+#ifdef XTHREADS
+#include "Xthreads.h"
+#endif
#endif
#ifdef DEBUG
@@ -72,8 +75,49 @@ static __GLapi *IndirectAPI = NULL;
#endif
+/*
+ * Current context management
+ */
+
+#if defined(GLX_DIRECT_RENDERING) && defined(XTHREADS)
+
+/* thread safe */
+static GLboolean TSDinitialized = GL_FALSE;
+static xthread_key_t ContextTSD;
+
+__GLXcontext *__glXGetCurrentContext(void)
+{
+ if (!TSDinitialized) {
+ xthread_key_create(&ContextTSD, NULL);
+ TSDinitialized = GL_TRUE;
+ return &dummyContext;
+ }
+ else {
+ void *p;
+ xthread_get_specific(ContextTSD, &p);
+ if (!p)
+ return &dummyContext;
+ else
+ return (__GLXcontext *) p;
+ }
+}
+
+void __glXSetCurrentContext(__GLXcontext *c)
+{
+ if (!TSDinitialized) {
+ xthread_key_create(&ContextTSD, NULL);
+ TSDinitialized = GL_TRUE;
+ }
+ xthread_set_specific(ContextTSD, c);
+}
+
+#else
+
+/* not thread safe */
__GLXcontext *__glXcurrentContext = &dummyContext;
+#endif
+
/*
** You can set this cell to 1 to force the gl drawing stuff to be
@@ -411,15 +455,6 @@ __GLXdisplayPrivate *__glXInitialize(Display* dpy)
XEDataObject dataObj;
int major, minor;
-#ifdef GLX_DIRECT_RENDERING
- /*
- **Initialize the indirect GLX dispatch table. It'll never change and
- ** can be used by all indirect contexts.
- */
- if (!IndirectAPI)
- IndirectAPI = __glXNewIndirectAPI();
-#endif
-
/* The one and only long long lock */
__glXLock();
@@ -505,6 +540,7 @@ __GLXdisplayPrivate *__glXInitialize(Display* dpy)
__glXClientInfo(dpy, dpyPriv->majorOpcode);
}
__glXUnlock();
+
return dpyPriv;
}
@@ -897,9 +933,15 @@ Bool glXMakeCurrent(Display *dpy, GLXDrawable draw, GLXContext gc)
__glXSetCurrentContext(gc);
#ifdef GLX_DIRECT_RENDERING
if (!gc->isDirect) {
- assert(IndirectAPI);
+ if (!IndirectAPI)
+ IndirectAPI = __glXNewIndirectAPI();
_glapi_set_dispatch(IndirectAPI);
}
+#else
+ /* if not direct rendering, always need indirect dispatch */
+ if (!IndirectAPI)
+ IndirectAPI = __glXNewIndirectAPI();
+ _glapi_set_dispatch(IndirectAPI);
#endif
gc->currentDpy = dpy;
gc->currentDrawable = draw;
diff --git a/xc/lib/GL/glx/indirect_init.c b/xc/lib/GL/glx/indirect_init.c
index 99b6994c9..3e1d9f909 100644
--- a/xc/lib/GL/glx/indirect_init.c
+++ b/xc/lib/GL/glx/indirect_init.c
@@ -29,8 +29,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/*
* Authors:
* Kevin E. Martin <kevin@precisioninsight.com>
- *
- * $PI: xc/lib/GL/glx/indirect_init.c,v 1.2 1999/04/05 05:24:32 martin Exp $
+ * Brian Paul <brian@precisioninsight.com>
*/
#ifdef GLX_DIRECT_RENDERING
@@ -49,21 +48,6 @@ static int NoOp(void)
}
-/*
-** Initialize the given dispatch table to all no-op functions.
-*/
-static void InitNoOpAPI(__GLapi *glAPI)
-{
- const int entries = sizeof(__GLapi) / sizeof(void *);
- int i;
- void **dispatch = (void **) glAPI;
-
- for (i = 0; i < entries; i++) {
- dispatch[i] = (void *) NoOp;
- }
-}
-
-
__GLapi *__glXNewIndirectAPI(void)
{
__GLapi *glAPI;
@@ -72,7 +56,13 @@ __GLapi *__glXNewIndirectAPI(void)
glAPI = (__GLapi *) Xmalloc(entries * sizeof(void *));
/* first, set all entries to point to no-op functions */
- InitNoOpAPI(glAPI);
+ {
+ int i;
+ void **dispatch = (void **) glAPI;
+ for (i = 0; i < entries; i++) {
+ dispatch[i] = (void *) NoOp;
+ }
+ }
/* now, initialize the entries we understand */
glAPI->Accum = __indirect_glAccum;
diff --git a/xc/lib/GL/mesa/src/Imakefile b/xc/lib/GL/mesa/src/Imakefile
index 41b1a1e0b..ef136da49 100644
--- a/xc/lib/GL/mesa/src/Imakefile
+++ b/xc/lib/GL/mesa/src/Imakefile
@@ -1,5 +1,6 @@
XCOMM $XFree86: xc/lib/GL/mesa/src/Imakefile,v 1.5 1999/12/14 01:32:25 robin Exp $
-XCOMM $PI: xc/lib/GL/mesa/src/Imakefile,v 1.5 1999/06/21 05:13:55 martin Exp $
+
+#include <Threads.tmpl>
#define DoNormalLib NormalLibGlx
#define DoSharedLib SharedLibGlx
@@ -30,6 +31,8 @@ LinkSourceFile(bitmap.c, ../../../../extras/Mesa/src)
LinkSourceFile(bitmap.h, ../../../../extras/Mesa/src)
LinkSourceFile(blend.c, ../../../../extras/Mesa/src)
LinkSourceFile(blend.h, ../../../../extras/Mesa/src)
+LinkSourceFile(buffers.c, ../../../../extras/Mesa/src)
+LinkSourceFile(buffers.h, ../../../../extras/Mesa/src)
LinkSourceFile(clip.c, ../../../../extras/Mesa/src)
LinkSourceFile(clip.h, ../../../../extras/Mesa/src)
LinkSourceFile(clip_funcs.h, ../../../../extras/Mesa/src)
@@ -51,8 +54,6 @@ LinkSourceFile(debug_xform.c, ../../../../extras/Mesa/src)
LinkSourceFile(debug_xform.h, ../../../../extras/Mesa/src)
LinkSourceFile(depth.c, ../../../../extras/Mesa/src)
LinkSourceFile(depth.h, ../../../../extras/Mesa/src)
-LinkSourceFile(dispatch.c, ../../../../extras/Mesa/src)
-LinkSourceFile(dispatch.h, ../../../../extras/Mesa/src)
LinkSourceFile(dlist.c, ../../../../extras/Mesa/src)
LinkSourceFile(dlist.h, ../../../../extras/Mesa/src)
LinkSourceFile(dotprod_tmp.h, ../../../../extras/Mesa/src)
@@ -83,12 +84,12 @@ LinkSourceFile(glapioffsets.h, ../../../../extras/Mesa/src)
LinkSourceFile(glapitable.h, ../../../../extras/Mesa/src)
LinkSourceFile(glapitemp.h, ../../../../extras/Mesa/src)
LinkSourceFile(glheader.h, ../../../../extras/Mesa/src)
-LinkSourceFile(glmisc.c, ../../../../extras/Mesa/src)
-LinkSourceFile(glmisc.h, ../../../../extras/Mesa/src)
LinkSourceFile(glthread.c, ../../../../extras/Mesa/src)
LinkSourceFile(glthread.h, ../../../../extras/Mesa/src)
LinkSourceFile(hash.c, ../../../../extras/Mesa/src)
LinkSourceFile(hash.h, ../../../../extras/Mesa/src)
+LinkSourceFile(hint.c, ../../../../extras/Mesa/src)
+LinkSourceFile(hint.h, ../../../../extras/Mesa/src)
LinkSourceFile(image.c, ../../../../extras/Mesa/src)
LinkSourceFile(image.h, ../../../../extras/Mesa/src)
LinkSourceFile(imaging.c, ../../../../extras/Mesa/src)
@@ -142,6 +143,8 @@ LinkSourceFile(span.c, ../../../../extras/Mesa/src)
LinkSourceFile(span.h, ../../../../extras/Mesa/src)
LinkSourceFile(stages.c, ../../../../extras/Mesa/src)
LinkSourceFile(stages.h, ../../../../extras/Mesa/src)
+LinkSourceFile(state.c, ../../../../extras/Mesa/src)
+LinkSourceFile(state.h, ../../../../extras/Mesa/src)
LinkSourceFile(stencil.c, ../../../../extras/Mesa/src)
LinkSourceFile(stencil.h, ../../../../extras/Mesa/src)
LinkSourceFile(texgen_tmp.h, ../../../../extras/Mesa/src)
@@ -193,6 +196,7 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
bbox.c \
bitmap.c \
blend.c \
+ buffers.c \
clip.c \
colortab.c \
config.c \
@@ -201,7 +205,6 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
cva.c \
debug_xform.c \
depth.c \
- dispatch.c \
dlist.c \
drawpix.c \
enable.c \
@@ -213,9 +216,9 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
get.c \
glapi.c \
glapinoop.c \
- glmisc.c \
glthread.c \
hash.c \
+ hint.c \
image.c \
imaging.o \
light.c \
@@ -238,6 +241,7 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
shade.c \
span.c \
stages.c \
+ state.c \
stencil.c \
teximage.c \
texobj.c \
@@ -265,6 +269,7 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
bbox.o \
bitmap.o \
blend.o \
+ buffers.o \
clip.o \
colortab.o \
config.o \
@@ -273,7 +278,6 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
cva.o \
debug_xform.o \
depth.o \
- dispatch.o \
dlist.o \
drawpix.o \
enable.o \
@@ -283,8 +287,8 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
feedback.o \
fog.o \
get.o \
- glmisc.o \
hash.o \
+ hint.o \
image.o \
imaging.o \
light.o \
@@ -307,6 +311,7 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
shade.o \
span.o \
stages.o \
+ state.o \
stencil.o \
teximage.o \
texobj.o \
@@ -334,7 +339,7 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
#endif
DEFINES = $(ALLOC_DEFINES) GlxDefines $(TDFX_DEFS) $(ASM_DEFS)
- INCLUDES = -I$(XLIBSRC) -I$(EXTINCSRC) -I../include -I../../dri -I.
+ INCLUDES = -I$(XLIBSRC) -I$(EXTINCSRC) -I../include -I../../dri -I. -I../../../../include
SRCS = $(CORE_SRCS) $(ASM_SRCS)
OBJS = $(CORE_OBJS) $(ASM_OBJS)
diff --git a/xc/lib/GL/mesa/src/drv/tdfx/Imakefile b/xc/lib/GL/mesa/src/drv/tdfx/Imakefile
index 55dc359cc..00f0495b4 100644
--- a/xc/lib/GL/mesa/src/drv/tdfx/Imakefile
+++ b/xc/lib/GL/mesa/src/drv/tdfx/Imakefile
@@ -1,4 +1,6 @@
+#include <Threads.tmpl>
+
#define DoNormalLib NormalLibGlx
#define DoSharedLib SharedLibGlx
#define DoExtraLib SharedLibGlx
@@ -84,6 +86,7 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../bbox.c \
../../bitmap.c \
../../blend.c \
+ ../../buffers.c \
../../clip.c \
../../colortab.c \
../../config.c \
@@ -92,7 +95,6 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../cva.c \
../../debug_xform.c \
../../depth.c \
- ../../dispatch.c \
../../dlist.c \
../../drawpix.c \
../../enable.c \
@@ -104,7 +106,6 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../get.c \
../../glapi.c \
../../glapinoop.c \
- ../../glmisc.c \
../../glthread.c \
../../hash.c \
../../image.c \
@@ -129,6 +130,7 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../shade.c \
../../span.c \
../../stages.c \
+ ../../state.c \
../../stencil.c \
../../teximage.c \
../../texobj.c \
@@ -157,6 +159,7 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../bbox.o \
../../bitmap.o \
../../blend.o \
+ ../../buffers.o \
../../clip.o \
../../colortab.o \
../../config.o \
@@ -165,7 +168,6 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../cva.o \
../../debug_xform.o \
../../depth.o \
- ../../dispatch.o \
../../dlist.o \
../../drawpix.o \
../../enable.o \
@@ -175,8 +177,8 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../feedback.o \
../../fog.o \
../../get.o \
- ../../glmisc.o \
../../hash.o \
+ ../../hint.o \
../../image.o \
../../imaging.o \
../../light.o \
@@ -199,6 +201,7 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../shade.o \
../../span.o \
../../stages.o \
+ ../../state.o \
../../stencil.o \
../../teximage.o \
../../texobj.o \
diff --git a/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c b/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c
index 688dd756d..9ca4ef671 100644
--- a/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c
+++ b/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c
@@ -389,4 +389,20 @@ void XMesaSetSAREA() {
/* fprintf(stderr, "Out FifoPtr=%d FifoRead=%d\n", saPriv->fifoPtr, saPriv->fifoRead); */
}
+
+extern void _register_gl_extensions(void); /* silence compiler warning */
+
+void _register_gl_extensions(void)
+{
+ /* Here is where the 3Dfx driver would register new extensions
+ * with libGL.so.
+ * This function is called as soon as the driver object is dlopened.
+ */
+#if 0
+ /* really, the return code should be checked */
+ _glapi_add_entrypoint("glFooBarEXT", _gloffset_FooBarEXT);
+#endif
+}
+
+
#endif