Fixed includes & added a few hooks for the DRI.
authorKeith Whitwell <keith@tungstengraphics.com>
Fri, 8 Oct 1999 09:27:09 +0000 (09:27 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Fri, 8 Oct 1999 09:27:09 +0000 (09:27 +0000)
41 files changed:
src/mesa/Makefile.X11
src/mesa/drivers/glide/fxapi.c
src/mesa/drivers/glide/fxdd.c
src/mesa/drivers/glide/fxdrv.h
src/mesa/drivers/x11/xmesaP.h
src/mesa/main/Makefile.DJ
src/mesa/main/Makefile.X11
src/mesa/main/accum.c
src/mesa/main/attrib.c
src/mesa/main/blend.c
src/mesa/main/clip.c
src/mesa/main/colortab.c
src/mesa/main/context.c
src/mesa/main/depth.c
src/mesa/main/depth.h
src/mesa/main/dlist.c
src/mesa/main/drawpix.c
src/mesa/main/enable.c
src/mesa/main/eval.c
src/mesa/main/extensions.c
src/mesa/main/extensions.h
src/mesa/main/feedback.c
src/mesa/main/fog.c
src/mesa/main/get.c
src/mesa/main/hash.c
src/mesa/main/image.c
src/mesa/main/light.c
src/mesa/main/lines.c
src/mesa/main/macros.h
src/mesa/main/matrix.c
src/mesa/main/matrix.h
src/mesa/main/pixel.c
src/mesa/main/points.c
src/mesa/main/polygon.c
src/mesa/main/rastpos.c
src/mesa/main/stencil.c
src/mesa/main/teximage.c
src/mesa/main/texobj.c
src/mesa/main/texstate.c
src/mesa/main/varray.c
src/mesa/main/varray.h

index 8fb680dad4b5bfcf80cc03e001a625b64c625b43..da5dc4549e3376b539dd65a54d5d7fc654cfde23 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.X11,v 1.5 1999/09/17 12:07:10 brianp Exp $
+# $Id: Makefile.X11,v 1.6 1999/10/08 09:27:09 keithw Exp $
 
 # Mesa 3-D graphics library
 # Version:  3.1
@@ -46,6 +46,7 @@ CORE_SOURCES = \
        feedback.c \
        fog.c \
        get.c \
+       glmisc.c \
        hash.c \
        image.c \
        light.c \
@@ -53,7 +54,6 @@ CORE_SOURCES = \
        logic.c \
        masking.c \
        matrix.c \
-       misc.c \
        mmath.c \
        mthreads.c \
        pb.c \
index 2d16048e49d340c2d9a1c7ed47c0b7c5ea7cda56..5d0d36ecc3d65000a33938a004c0f303767df26d 100644 (file)
@@ -824,328 +824,196 @@ fxMesaContext GLAPIENTRY fxMesaCreateContext(GLuint win,GrScreenResolution_t res
                                           GrScreenRefresh_t ref,
                                           const GLint attribList[])
 {
-  fxMesaContext fxMesa = NULL;
-  int i,type;
-  int aux;
-  GLboolean doubleBuffer=GL_FALSE;
-  GLboolean alphaBuffer=GL_FALSE;
-  GLboolean verbose=GL_FALSE;
-  GLint depthSize=0;
-  GLint stencilSize=0;
-  GLint accumSize=0;
-  GLcontext *shareCtx = NULL;
-  GLcontext *ctx = 0;
-  FX_GrContext_t glideContext = 0;
-  char *errorstr;
-
-  if (MESA_VERBOSE&VERBOSE_DRIVER) {
-    fprintf(stderr,"fxmesa: fxMesaCreateContext() Start\n");
-  }
-
-  if(getenv("MESA_FX_INFO"))
-    verbose=GL_TRUE;
+   fxMesaContext fxMesa = NULL;
+   int i,type;
+   int aux;
+   GLboolean doubleBuffer=GL_FALSE;
+   GLboolean alphaBuffer=GL_FALSE;
+   GLboolean verbose=GL_FALSE;
+   GLint depthSize=0;
+   GLint stencilSize=0;
+   GLint accumSize=0;
+   GLcontext *shareCtx = NULL;
+   GLcontext *ctx = 0;
+   FX_GrContext_t glideContext = 0;
+   char *errorstr;
+
+   if (MESA_VERBOSE&VERBOSE_DRIVER) {
+      fprintf(stderr,"fxmesa: fxMesaCreateContext() Start\n");
+   }
 
-  aux=0;
-  i=0;
-  while(attribList[i]!=FXMESA_NONE) {
-    switch (attribList[i]) {
-    case FXMESA_DOUBLEBUFFER:
-      doubleBuffer=GL_TRUE;
-      break;
-    case FXMESA_ALPHA_SIZE:
-      i++;
-      alphaBuffer=attribList[i]>0;
-      if(alphaBuffer)
-        aux=1;
-      break;
-    case FXMESA_DEPTH_SIZE:
-      i++;
-      depthSize=attribList[i];
-      if(depthSize)
-        aux=1;
-      break;
-    case FXMESA_STENCIL_SIZE:
-      i++;
-      stencilSize=attribList[i];
-      break;
-    case FXMESA_ACCUM_SIZE:
-      i++;
-      accumSize=attribList[i];
-      break;
-      /* XXX ugly hack here for sharing display lists */
+   if(getenv("MESA_FX_INFO"))
+      verbose=GL_TRUE;
+
+   aux=0;
+   i=0;
+   while(attribList[i]!=FXMESA_NONE) {
+      switch (attribList[i]) {
+      case FXMESA_DOUBLEBUFFER:
+        doubleBuffer=GL_TRUE;
+        break;
+      case FXMESA_ALPHA_SIZE:
+        i++;
+        alphaBuffer=attribList[i]>0;
+        if(alphaBuffer)
+           aux=1;
+        break;
+      case FXMESA_DEPTH_SIZE:
+        i++;
+        depthSize=attribList[i];
+        if(depthSize)
+           aux=1;
+        break;
+      case FXMESA_STENCIL_SIZE:
+        i++;
+        stencilSize=attribList[i];
+        break;
+      case FXMESA_ACCUM_SIZE:
+        i++;
+        accumSize=attribList[i];
+        break;
+        /* XXX ugly hack here for sharing display lists */
 #define FXMESA_SHARE_CONTEXT 990099  /* keep in sync with xmesa1.c! */
-    case FXMESA_SHARE_CONTEXT:
-      i++;
-      {
-        const void *vPtr = &attribList[i];
-        GLcontext **ctx = (GLcontext **) vPtr;
-        shareCtx = *ctx;
-      }
-      break;
-    default:
-      if (MESA_VERBOSE&VERBOSE_DRIVER) {
-       fprintf(stderr,"fxmesa: fxMesaCreateContext() End (defualt)\n");
+      case FXMESA_SHARE_CONTEXT:
+        i++;
+        {
+           const void *vPtr = &attribList[i];
+           GLcontext **ctx = (GLcontext **) vPtr;
+           shareCtx = *ctx;
+        }
+        break;
+      default:
+        if (MESA_VERBOSE&VERBOSE_DRIVER) {
+           fprintf(stderr,"fxmesa: fxMesaCreateContext() End (defualt)\n");
+        }
+        return NULL;
       }
-      return NULL;
-    }
-    i++;
-  }
+      i++;
+   }
 
-  /* A workaround for Linux GLQuake */
-  if(depthSize && alphaBuffer)
-    alphaBuffer=0;
+   /* A workaround for Linux GLQuake */
+   if(depthSize && alphaBuffer)
+      alphaBuffer=0;
 
-  if(verbose)
-    fprintf(stderr,"Mesa fx Voodoo Device Driver v0.30\nWritten by David Bucciarelli (davibu@tin.it.it)\n");
+   if(verbose)
+      fprintf(stderr,"Mesa fx Voodoo Device Driver v0.30\nWritten by David Bucciarelli (davibu@tin.it.it)\n");
 
-  if((type=fxQueryHardware()) >= 0) {
-    if(type==GR_SSTTYPE_VOODOO)
-      win=0;
+   if((type=fxQueryHardware()) < 0) {
+      fprintf(stderr,"fx Driver: ERROR no Voodoo1/2 Graphics or Voodoo Rush !\n");
+      return NULL;
+   }
 
-    grSstSelect(glbCurrentBoard);
+   if(type==GR_SSTTYPE_VOODOO)
+      win=0;
 
-#if  FXMESA_USE_ARGB
-    glideContext = FX_grSstWinOpen((FxU32)win,res,ref,
-                     GR_COLORFORMAT_ARGB,GR_ORIGIN_LOWER_LEFT,2,aux);
+   grSstSelect(glbCurrentBoard);
 
-#else
-    glideContext = FX_grSstWinOpen((FxU32)win,res,ref,
-                     GR_COLORFORMAT_ABGR,GR_ORIGIN_LOWER_LEFT,2,aux);
-#endif
-   if (!glideContext){
-      errorstr = "grSstWinOpen"; 
+   fxMesa=(fxMesaContext)calloc(1,sizeof(struct tfxMesaContext));
+   if(!fxMesa) {
+      errorstr = "malloc";
       goto errorhandler;
-    }
+   }
 
-    if(verbose)
+   if(glbHWConfig.SSTs[glbCurrentBoard].type==GR_SSTTYPE_VOODOO)
+      fxMesa->haveTwoTMUs=(glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig.nTexelfx > 1);
+   else if(glbHWConfig.SSTs[glbCurrentBoard].type==GR_SSTTYPE_SST96)
+      fxMesa->haveTwoTMUs=(glbHWConfig.SSTs[glbCurrentBoard].sstBoard.SST96Config.nTexelfx > 1);
+   else
+      fxMesa->haveTwoTMUs=GL_FALSE;
+
+   fxMesa->haveDoubleBuffer=doubleBuffer;
+   fxMesa->haveAlphaBuffer=alphaBuffer;
+   fxMesa->haveGlobalPaletteTexture=GL_FALSE;
+   fxMesa->haveZBuffer=depthSize ? 1 : 0;
+   fxMesa->verbose=verbose;
+   fxMesa->width=FX_grSstScreenWidth();
+   fxMesa->height=FX_grSstScreenHeight();
+   fxMesa->board=glbCurrentBoard;
+
+   if(verbose)
       fprintf(stderr,"Glide screen size: %dx%d\n",
               (int)FX_grSstScreenWidth(),(int)FX_grSstScreenHeight());
-  } else {
-    fprintf(stderr,"fx Driver: ERROR no Voodoo1/2 Graphics or Voodoo Rush !\n");
-    return NULL;
-  }
 
-  fxMesa=(fxMesaContext)calloc(1,sizeof(struct tfxMesaContext));
-  if(!fxMesa) {
-    errorstr = "malloc";
-    goto errorhandler;
-  }
-  
-  FX_setupGrVertexLayout();
-  
-  fxMesa->glideContext = glideContext;
-  fxMesa->board=glbCurrentBoard;
-  fxMesa->width=FX_grSstScreenWidth();
-  fxMesa->height=FX_grSstScreenHeight();
-
-  fxMesa->verbose=verbose;
-
-  if(glbHWConfig.SSTs[glbCurrentBoard].type==GR_SSTTYPE_VOODOO)
-    fxMesa->haveTwoTMUs=(glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig.nTexelfx > 1);
-  else if(glbHWConfig.SSTs[glbCurrentBoard].type==GR_SSTTYPE_SST96)
-    fxMesa->haveTwoTMUs=(glbHWConfig.SSTs[glbCurrentBoard].sstBoard.SST96Config.nTexelfx > 1);
-  else
-    fxMesa->haveTwoTMUs=GL_FALSE;
-
-  if (getenv("FX_EMULATE_SINGLE_TMU")) {
-     if (MESA_VERBOSE&VERBOSE_DRIVER) 
-       fprintf(stderr, "\n\nEmulating single tmu\n\n");
-     fxMesa->haveTwoTMUs = GL_FALSE;
-  }
-
-  fxMesa->emulateTwoTMUs = fxMesa->haveTwoTMUs;
-  
-  if (!getenv("FX_DONT_FAKE_MULTITEX")) {
-     if (MESA_VERBOSE&VERBOSE_DRIVER) {
-         if (!fxMesa->haveTwoTMUs)
-           fprintf(stderr, "\n\nEmulating multitexture\n\n");
-     }
-     fxMesa->emulateTwoTMUs = GL_TRUE;
-  }
-
-
-  fxMesa->haveDoubleBuffer=doubleBuffer;
-  fxMesa->haveAlphaBuffer=alphaBuffer;
-  fxMesa->haveGlobalPaletteTexture=GL_FALSE;
-
-  if(getenv("FX_GLIDE_SWAPINTERVAL"))
-    fxMesa->swapInterval=atoi(getenv("FX_GLIDE_SWAPINTERVAL"));
-  else
-    fxMesa->swapInterval=1;
-
-  if(getenv("MESA_FX_SWAP_PENDING"))
-    fxMesa->maxPendingSwapBuffers=atoi(getenv("MESA_FX_SWAP_PENDING"));
-  else
-    fxMesa->maxPendingSwapBuffers=2;
-
-  fxMesa->color=0xffffffff;
-  fxMesa->clearC=0;
-  fxMesa->clearA=0;
-
-  fxMesa->stats.swapBuffer=0;
-  fxMesa->stats.reqTexUpload=0;
-  fxMesa->stats.texUpload=0;
-  fxMesa->stats.memTexUpload=0;
-
-  fxMesa->tmuSrc=FX_TMU_NONE;
-  fxMesa->lastUnitsMode=FX_UM_NONE;
-  fxTMInit(fxMesa);
-
-  /* FX units setup */
-
-  fxMesa->unitsState.alphaTestEnabled=GL_FALSE;
-  fxMesa->unitsState.alphaTestFunc=GR_CMP_ALWAYS;
-  fxMesa->unitsState.alphaTestRefValue=0;
-
-  fxMesa->unitsState.blendEnabled=GL_FALSE;
-  fxMesa->unitsState.blendSrcFuncRGB=GR_BLEND_ONE;
-  fxMesa->unitsState.blendDstFuncRGB=GR_BLEND_ZERO;
-  fxMesa->unitsState.blendSrcFuncAlpha=GR_BLEND_ONE;
-  fxMesa->unitsState.blendDstFuncAlpha=GR_BLEND_ZERO;
-
-  fxMesa->unitsState.depthTestEnabled  =GL_FALSE;
-  fxMesa->unitsState.depthMask         =GL_TRUE;
-  fxMesa->unitsState.depthTestFunc     =GR_CMP_LESS;
-
-  grColorMask(FXTRUE,alphaBuffer ? FXTRUE : FXFALSE);
-  if(doubleBuffer) {
-    fxMesa->currentFB=GR_BUFFER_BACKBUFFER;
-    grRenderBuffer(GR_BUFFER_BACKBUFFER);
-  } else {
-    fxMesa->currentFB=GR_BUFFER_FRONTBUFFER;
-    grRenderBuffer(GR_BUFFER_FRONTBUFFER);
-  }
-  
-  fxMesa->state        = NULL;
-  fxMesa->fogTable     = NULL;
-  
-  fxMesa->state        = malloc(FX_grGetInteger(FX_GLIDE_STATE_SIZE));
-  fxMesa->fogTable     = malloc(FX_grGetInteger(FX_FOG_TABLE_ENTRIES)*sizeof(GrFog_t));
-  
-  if (!fxMesa->state || !fxMesa->fogTable) {
-     errorstr = "malloc";
-     goto errorhandler;
-  }
-
-  if(depthSize)
-    grDepthBufferMode(GR_DEPTHBUFFER_ZBUFFER);
-    
-#if (!FXMESA_USE_ARGB)
-  grLfbWriteColorFormat(GR_COLORFORMAT_ABGR); /* Not every Glide supports this  */
-#endif
-
-  fxMesa->glVis=gl_create_visual(GL_TRUE,     /* RGB mode */
-                                 alphaBuffer,
-                                 doubleBuffer,
-                                 GL_FALSE,    /* stereo */
-                                 depthSize,   /* depth_size */
-                                 stencilSize, /* stencil_size */
-                                 accumSize,   /* accum_size */
-                                 0,           /* index bits */
-                                 5,6,5,0);    /* RGBA bits */
-  if (!fxMesa->glVis) {
-     errorstr = "gl_create_visual";
-     goto errorhandler;
-  }
-
-  ctx = fxMesa->glCtx=gl_create_context(fxMesa->glVis,
-                                       shareCtx,  /* share list context */
-                                       (void *) fxMesa, GL_TRUE);
-  if (!ctx) {
-     errorstr = "gl_create_context";
-     goto errorhandler;
-  }
-
-  fxMesa->glBuffer=gl_create_framebuffer(fxMesa->glVis);
-  if (!fxMesa->glBuffer) {
-    errorstr = "gl_create_framebuffer";
-    goto errorhandler;
-  }
-
-  fxMesa->glCtx->Const.MaxTextureLevels=9;
-  fxMesa->glCtx->Const.MaxTextureSize=256;
-  fxMesa->glCtx->Const.MaxTextureUnits=fxMesa->emulateTwoTMUs ? 2 : 1;
+   fxMesa->glVis=gl_create_visual(GL_TRUE,     /* RGB mode */
+                                 alphaBuffer,
+                                 doubleBuffer,
+                                 GL_FALSE,    /* stereo */
+                                 depthSize,   /* depth_size */
+                                 stencilSize, /* stencil_size */
+                                 accumSize,   /* accum_size */
+                                 0,           /* index bits */
+                                 5,6,5,0);    /* RGBA bits */
+   if (!fxMesa->glVis) {
+      errorstr = "gl_create_visual";
+      goto errorhandler;
+   }
 
-  fxMesa->glCtx->NewState|=NEW_DRVSTATE1;
-  fxMesa->new_state = NEW_ALL;
-  
-  fxDDSetupInit();
-  fxDDCvaInit();
-  fxDDClipInit();
-  fxDDTrifuncInit();
-  fxDDFastPathInit();
+   ctx = fxMesa->glCtx=gl_create_context(fxMesa->glVis,
+                                        shareCtx,  /* share list context */
+                                        (void *) fxMesa, GL_TRUE);
+   if (!ctx) {
+      errorstr = "gl_create_context";
+      goto errorhandler;
+   }
 
-  fxSetupDDPointers(fxMesa->glCtx);
-  fxDDRenderInit(fxMesa->glCtx);
-  fxDDInitExtensions(fxMesa->glCtx);  
 
-  fxDDSetNearFar(fxMesa->glCtx,1.0,100.0);
-  
-  grGlideGetState((GrState*)fxMesa->state);
+   if (!fxDDInitFxMesaContext( fxMesa, win, res, ref, aux )) {
+      errorstr = "fxDDInitFxMesaContext failed"; 
+      goto errorhandler;
+   }
 
-  /* XXX Fix me: callback not registered when main VB is created.
-   */
-  if (fxMesa->glCtx->VB) 
-     fxDDRegisterVB( fxMesa->glCtx->VB );
-  
-  /* XXX Fix me too: need to have the 'struct dd' prepared prior to
-   * creating the context... The below is broken if you try to insert
-   * new stages.  
-   */
-  if (ctx->NrPipelineStages)
-     ctx->NrPipelineStages = fxDDRegisterPipelineStages( ctx->PipelineStage,
-                                                        ctx->PipelineStage,
-                                                        ctx->NrPipelineStages);
 
+   fxMesa->glBuffer=gl_create_framebuffer(fxMesa->glVis);
+   if (!fxMesa->glBuffer) {
+      errorstr = "gl_create_framebuffer";
+      goto errorhandler;
+   }
   
-  glbTotNumCtx++;
-
-  /* Run the config file */
-  gl_context_initialize( fxMesa->glCtx );
+   glbTotNumCtx++;
 
-  /* install signal handlers */
+   /* install signal handlers */
 #if defined(__linux__)
-  if (fxMesa->glCtx->CatchSignals) {
-     signal(SIGINT,cleangraphics_handler);
-     signal(SIGHUP,cleangraphics_handler);
-     signal(SIGPIPE,cleangraphics_handler);
-     signal(SIGFPE,cleangraphics_handler);
-     signal(SIGBUS,cleangraphics_handler);
-     signal(SIGILL,cleangraphics_handler);
-     signal(SIGSEGV,cleangraphics_handler);
-     signal(SIGTERM,cleangraphics_handler);
-  }
+   if (fxMesa->glCtx->CatchSignals) {
+      signal(SIGINT,cleangraphics_handler);
+      signal(SIGHUP,cleangraphics_handler);
+      signal(SIGPIPE,cleangraphics_handler);
+      signal(SIGFPE,cleangraphics_handler);
+      signal(SIGBUS,cleangraphics_handler);
+      signal(SIGILL,cleangraphics_handler);
+      signal(SIGSEGV,cleangraphics_handler);
+      signal(SIGTERM,cleangraphics_handler);
+   }
 #endif
 
-  if (MESA_VERBOSE&VERBOSE_DRIVER) {
-    fprintf(stderr,"fxmesa: fxMesaCreateContext() End\n");
-  }
+   if (MESA_VERBOSE&VERBOSE_DRIVER) {
+      fprintf(stderr,"fxmesa: fxMesaCreateContext() End\n");
+   }
 
-  return fxMesa;
+   return fxMesa;
 
-errorhandler:
+ errorhandler:
    if (fxMesa) {
       if (fxMesa->glideContext)
-       FX_grSstWinClose(fxMesa->glideContext);
+        FX_grSstWinClose(fxMesa->glideContext);
       fxMesa->glideContext = 0;
       
       if (fxMesa->state)  
-       free(fxMesa->state);
+        free(fxMesa->state);
       if (fxMesa->fogTable)
-       free(fxMesa->fogTable);
+        free(fxMesa->fogTable);
       if (fxMesa->glBuffer)
-       gl_destroy_framebuffer(fxMesa->glBuffer);
+        gl_destroy_framebuffer(fxMesa->glBuffer);
       if (fxMesa->glVis)
-       gl_destroy_visual(fxMesa->glVis);
+        gl_destroy_visual(fxMesa->glVis);
       if (fxMesa->glCtx)
-       gl_destroy_context(fxMesa->glCtx);
+        gl_destroy_context(fxMesa->glCtx);
       free(fxMesa);
    }
    
-  if (MESA_VERBOSE&VERBOSE_DRIVER) {
+   if (MESA_VERBOSE&VERBOSE_DRIVER) {
       fprintf(stderr,"fxmesa: fxMesaCreateContext() End (%s)\n",errorstr);
-  }
-  return NULL;
+   }
+   return NULL;
 }
 
 
index 8ba124508e69263bc0d6ad4ef8f89861b73de9a7..a726b0a44f71cfd60301835cefce61cc9ff212fd 100644 (file)
@@ -29,6 +29,7 @@
 
 #if defined(FX)
 
+#include "types.h"
 #include "fxdrv.h"
 #include "enums.h"
 #include "extensions.h"
@@ -354,53 +355,159 @@ void fxDDSetNearFar(GLcontext *ctx, GLfloat n, GLfloat f)
  */
 static const GLubyte *fxDDGetString(GLcontext *ctx, GLenum name)
 {
-  static char *extensions="GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_logic_op GL_EXT_blend_subtract GL_EXT_paletted_texture GL_EXT_point_parameters GL_EXT_polygon_offset GL_EXT_vertex_array GL_EXT_texture_object GL_EXT_texture3D GL_MESA_window_pos GL_MESA_resize_buffers GL_EXT_shared_texture_palette GL_EXT_rescale_normal GL_EXT_abgr GL_SGIS_texture_edge_clamp 3DFX_set_global_palette GL_FXMESA_global_texture_lod_bias";
+   switch (name) {
+   case GL_RENDERER:
+#if defined(GLX_DIRECT_RENDERING)
+      return "Mesa Glide - DRI VB/V3";
+#else
+      return "Mesa Glide";
+#endif
+   default:
+      return NULL;
+   }
+}
 
-  static char buf[MAX_NUM_SST][64];
 
-  fxQueryHardware();
+int fxDDInitFxMesaContext( fxMesaContext fxMesa, 
+                          int win, 
+                          int res,
+                          int ref, 
+                          int aux )
+{
+   FX_GrContext_t glideContext =  FX_grSstWinOpen((FxU32)win,res,ref,
+#if  FXMESA_USE_ARGB
+                                                 GR_COLORFORMAT_ARGB,
+#else
+                                                 GR_COLORFORMAT_ABGR,
+#endif
+                                                 GR_ORIGIN_LOWER_LEFT,
+                                                 2,
+                                                 aux);
+   
+   if (!glideContext) return 0;
+  
+   FX_setupGrVertexLayout();
+   
+   fxMesa->glideContext = glideContext;
+   
+   if (getenv("FX_EMULATE_SINGLE_TMU")) 
+      fxMesa->haveTwoTMUs = GL_FALSE;
+      
+   fxMesa->emulateTwoTMUs = fxMesa->haveTwoTMUs;
+   
+   if (!getenv("FX_DONT_FAKE_MULTITEX")) 
+      fxMesa->emulateTwoTMUs = GL_TRUE;
+      
+   if(getenv("FX_GLIDE_SWAPINTERVAL"))
+      fxMesa->swapInterval=atoi(getenv("FX_GLIDE_SWAPINTERVAL"));
+   else
+      fxMesa->swapInterval=1;
+
+   if(getenv("MESA_FX_SWAP_PENDING"))
+      fxMesa->maxPendingSwapBuffers=atoi(getenv("MESA_FX_SWAP_PENDING"));
+   else
+      fxMesa->maxPendingSwapBuffers=2;
+   
+   fxMesa->color=0xffffffff;
+   fxMesa->clearC=0;
+   fxMesa->clearA=0;
+
+   fxMesa->stats.swapBuffer=0;
+   fxMesa->stats.reqTexUpload=0;
+   fxMesa->stats.texUpload=0;
+   fxMesa->stats.memTexUpload=0;
+
+   fxMesa->tmuSrc=FX_TMU_NONE;
+   fxMesa->lastUnitsMode=FX_UM_NONE;
+   fxTMInit(fxMesa);
+
+   /* FX units setup */
+
+   fxMesa->unitsState.alphaTestEnabled=GL_FALSE;
+   fxMesa->unitsState.alphaTestFunc=GR_CMP_ALWAYS;
+   fxMesa->unitsState.alphaTestRefValue=0;
+
+   fxMesa->unitsState.blendEnabled=GL_FALSE;
+   fxMesa->unitsState.blendSrcFuncRGB=GR_BLEND_ONE;
+   fxMesa->unitsState.blendDstFuncRGB=GR_BLEND_ZERO;
+   fxMesa->unitsState.blendSrcFuncAlpha=GR_BLEND_ONE;
+   fxMesa->unitsState.blendDstFuncAlpha=GR_BLEND_ZERO;
+
+   fxMesa->unitsState.depthTestEnabled =GL_FALSE;
+   fxMesa->unitsState.depthMask                =GL_TRUE;
+   fxMesa->unitsState.depthTestFunc    =GR_CMP_LESS;
+
+   grColorMask(FXTRUE, fxMesa->haveAlphaBuffer ? FXTRUE : FXFALSE);
+   if(fxMesa->haveDoubleBuffer) {
+      fxMesa->currentFB=GR_BUFFER_BACKBUFFER;
+      grRenderBuffer(GR_BUFFER_BACKBUFFER);
+   } else {
+      fxMesa->currentFB=GR_BUFFER_FRONTBUFFER;
+      grRenderBuffer(GR_BUFFER_FRONTBUFFER);
+   }
+  
+   fxMesa->state       = NULL;
+   fxMesa->fogTable    = NULL;
+  
+   fxMesa->state       = malloc(FX_grGetInteger(FX_GLIDE_STATE_SIZE));
+   fxMesa->fogTable    = malloc(FX_grGetInteger(FX_FOG_TABLE_ENTRIES)*sizeof(GrFog_t));
+  
+   if (!fxMesa->state || !fxMesa->fogTable) {
+      if (fxMesa->state) free(fxMesa->state);
+      if (fxMesa->fogTable) free(fxMesa->fogTable);
+      return 0;
+   }
 
-  switch (name) {
-    case GL_RENDERER:
-      if(glbHWConfig.SSTs[glbCurrentBoard].type==GR_SSTTYPE_VOODOO) {
-        sprintf(buf[glbCurrentBoard],"Mesa Glide v0.30 Voodoo_Graphics %d CARD/%d FB/%d TM/%d TMU/%s",
-                glbCurrentBoard,
+   if(fxMesa->haveZBuffer)
+      grDepthBufferMode(GR_DEPTHBUFFER_ZBUFFER);
+    
+#if (!FXMESA_USE_ARGB)
+   grLfbWriteColorFormat(GR_COLORFORMAT_ABGR); /* Not every Glide has this  */
+#endif
 
-                (glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig.sliDetect ?
-                 (glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig.fbRam*2) :
-                 glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig.fbRam),
+   fxMesa->glCtx->Const.MaxTextureLevels=9;
+   fxMesa->glCtx->Const.MaxTextureSize=256;
+   fxMesa->glCtx->Const.MaxTextureUnits=fxMesa->emulateTwoTMUs ? 2 : 1;
+   fxMesa->glCtx->NewState|=NEW_DRVSTATE1;
+   fxMesa->new_state = NEW_ALL;
+  
+   fxDDSetupInit();
+   fxDDCvaInit();
+   fxDDClipInit();
+   fxDDTrifuncInit();
+   fxDDFastPathInit();
 
-                glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig.tmuConfig[GR_TMU0].tmuRam+
-                ((glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig.nTexelfx>1) ?
-                 glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig.tmuConfig[GR_TMU1].tmuRam :
-                 0),
+   fxSetupDDPointers(fxMesa->glCtx);
+   fxDDRenderInit(fxMesa->glCtx);
+   fxDDInitExtensions(fxMesa->glCtx);  
 
-                glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig.nTexelfx,
+   fxDDSetNearFar(fxMesa->glCtx,1.0,100.0);
+  
+   grGlideGetState((GrState*)fxMesa->state);
 
-                (glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig.sliDetect ? "SLI" : "NOSLI")
-                );
-      }
-      else {
-        if(glbHWConfig.SSTs[glbCurrentBoard].type==GR_SSTTYPE_SST96)
-          sprintf(buf[glbCurrentBoard],"Glide v0.30 Voodoo_Rush %d CARD/%d FB/%d TM/%d TMU/NOSLI",
-                  glbCurrentBoard,
+   /* XXX Fix me: callback not registered when main VB is created.
+    */
+   if (fxMesa->glCtx->VB) 
+      fxDDRegisterVB( fxMesa->glCtx->VB );
+  
+   /* XXX Fix me too: need to have the 'struct dd' prepared prior to
+    * creating the context... The below is broken if you try to insert
+    * new stages.  
+    */
+   if (fxMesa->glCtx->NrPipelineStages)
+      fxMesa->glCtx->NrPipelineStages = fxDDRegisterPipelineStages( 
+        fxMesa->glCtx->PipelineStage,
+        fxMesa->glCtx->PipelineStage,
+        fxMesa->glCtx->NrPipelineStages);
+
+   /* Run the config file */
+   gl_context_initialize( fxMesa->glCtx );
+
+   return 1;
+}
 
-                  glbHWConfig.SSTs[glbCurrentBoard].sstBoard.SST96Config.fbRam,
 
-                  glbHWConfig.SSTs[glbCurrentBoard].sstBoard.SST96Config.tmuConfig.tmuRam,
 
-                  glbHWConfig.SSTs[glbCurrentBoard].sstBoard.SST96Config.nTexelfx            
-                  );
-        else
-          strcpy(buf[glbCurrentBoard],"Glide v0.30 UNKNOWN");
-      }
-      return (GLubyte *) buf[glbCurrentBoard];
-    case GL_EXTENSIONS:
-      return (GLubyte *) extensions;
-    default:
-      return NULL;
-  }
-}
 
 
 void fxDDInitExtensions( GLcontext *ctx )
index 92d867b0a7a4aae6acbee8a544a4c76c758dd849..3559ad9a0512066e8986090590f8f2ee2a181e2b 100644 (file)
  * you turn debugging on/off from the debugger.
  */
 
+#ifndef XFree86Server
 #include <math.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <limits.h>
 #include <assert.h>
+#else 
+#include "GL/xf86glx.h"
+#endif
+
 
 #if defined(__linux__)
 #include <signal.h>
@@ -378,9 +383,15 @@ struct tfxMesaVertexBuffer {
 };
 
 #define FX_DRIVER_DATA(vb) ((struct tfxMesaVertexBuffer *)((vb)->driver_data))
-#define FX_CONTEXT(ctx) ((struct tfxMesaContext *)((ctx)->DriverCtx))
+#define FX_CONTEXT(ctx) ((fxMesaContext)((ctx)->DriverCtx))
 #define FX_TEXTURE_DATA(t) ((tfxTexInfo *) ((t)->Current->DriverData))
 
+#if defined(XFree86Server) || defined(GLX_DIRECT_RENDERING)
+#include "tdfx_init.h"
+#else
+#define DRI_FX_CONTEXT
+#endif
+
 struct tfxMesaContext {
   GuTexPalette glbPalette;
 
@@ -458,12 +469,16 @@ struct tfxMesaContext {
   GLboolean haveTwoTMUs;       /* True if we really have 2 tmu's  */
   GLboolean emulateTwoTMUs;    /* True if we present 2 tmu's to mesa.  */
   GLboolean haveAlphaBuffer;
+  GLboolean haveZBuffer;
   GLboolean haveDoubleBuffer;
   GLboolean haveGlobalPaletteTexture;
   GLint swapInterval;
   GLint maxPendingSwapBuffers;
   
   FX_GrContext_t glideContext;
+
+  DRI_FX_CONTEXT
+
 };
 
 typedef void (*tfxSetupFunc)(struct vertex_buffer *, GLuint, GLuint);
@@ -475,10 +490,10 @@ extern void fxSetupFXUnits(GLcontext *);
 extern void fxSetupDDPointers(GLcontext *);
 extern void fxDDSetNearFar(GLcontext *, GLfloat, GLfloat);
 
-extern void fxDDSetupInit();
-extern void fxDDCvaInit();
-extern void fxDDTrifuncInit();
-extern void fxDDFastPathInit();
+extern void fxDDSetupInit(void);
+extern void fxDDCvaInit(void);
+extern void fxDDTrifuncInit(void);
+extern void fxDDFastPathInit(void);
 
 extern void fxDDChooseRenderState( GLcontext *ctx );
 
@@ -498,7 +513,7 @@ extern quad_func fxDDChooseQuadFunction(GLcontext *);
 extern render_func **fxDDChooseRenderVBTables(GLcontext *);
 
 extern void fxDDRenderInit(GLcontext *);
-extern void fxDDClipInit();
+extern void fxDDClipInit(void);
 
 extern void fxUpdateDDSpanPointers(GLcontext *);
 extern void fxSetupDDSpanPointers(GLcontext *);
@@ -554,8 +569,8 @@ extern void fxDDRenderVBIndirectDirect( struct vertex_buffer *VB );
 
 extern void fxDDInitExtensions( GLcontext *ctx );
 
-extern void fxTMInit(fxMesaContext);
-extern void fxTMClose(fxMesaContext);
+extern void fxTMInit(fxMesaContext ctx);
+extern void fxTMClose(fxMesaContext ctx);
 extern void fxTMMoveInTM(fxMesaContext, struct gl_texture_object *, GLint);
 extern void fxTMMoveOutTM(fxMesaContext, struct gl_texture_object *);
 extern void fxTMFreeTexture(fxMesaContext, struct gl_texture_object *);
@@ -603,5 +618,7 @@ extern void fxPrintHintState( const char *msg, GLuint state );
 
 extern void fxDDDoRenderVB( struct vertex_buffer *VB );
 
+extern int fxDDInitFxMesaContext( fxMesaContext fxMesa, 
+                                 int win, int res, int ref, int aux );
 
 #endif
index 256a47f0a6a342174fc6e5483ba9838b7e7726bf..4dc8425c102e93661ec579c6e942210c1c1b0c07 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: xmesaP.h,v 1.1 1999/08/19 00:55:42 jtg Exp $ */
+/* $Id: xmesaP.h,v 1.2 1999/10/08 09:27:12 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -23,6 +23,9 @@
  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
+/* $XFree86: xc/lib/GL/mesa/src/X/xmesaP.h,v 1.5 1999/07/06 14:51:28 dawes Exp $ */
+
+
 
 
 #ifndef XMESAP_H
 
 
 #ifdef XFree86Server
-#include "xf86glx_util.h"
+# include "GL/xf86glx.h"
+# include "xf86glx_util.h"
 #else
-#ifdef SHM
-#include <X11/extensions/XShm.h>
-#endif
+# ifdef GLX_DIRECT_RENDERING
+#  include "dri_mesa.h"
+# endif
+# ifdef SHM
+#  include <X11/extensions/XShm.h>
+# endif
 #endif
 #include "GL/xmesa.h"
 #include "types.h"
-#ifdef FX
+#if defined(FX) && !defined(GLX_DIRECT_RENDERING)
 #include "GL/fxmesa.h"
 #include "../FX/fxdrv.h"
 #endif
 
 
+#if defined(GLX_DIRECT_RENDERING) && !defined(XFree86Server)
+#  include "xdriP.h"
+#else
+#  define DRI_DRAWABLE_ARG
+#  define DRI_DRAWABLE_PARM
+#  define DRI_CTX_ARG
+#endif
+
+
 /* for PF_8R8G8B24 pixel format */
 typedef struct {
    GLubyte b;
@@ -52,13 +68,17 @@ typedef struct {
 } bgr_t;
 
 
+
+
 /*
  * "Derived" from gl_visual.  Basically corresponds to an XVisualInfo.
  */
 struct xmesa_visual {
    GLvisual *gl_visual;                /* Device independent visual parameters */
    XMesaDisplay *display;      /* The X11 display */
-#ifndef XFree86Server
+#ifdef XFree86Server
+   GLint screen_depth; /* The depth of the screen */
+#else
    XVisualInfo *vishandle;     /* The pointer returned by glXChooseVisual */
 #endif
    XMesaVisualInfo visinfo;    /* X's visual info */
@@ -119,6 +139,13 @@ struct xmesa_context {
 
    GLubyte clearcolor[4];              /* current clearing color */
    unsigned long clearpixel;           /* current clearing pixel value */
+
+#if defined(GLX_DIRECT_RENDERING) && !defined(XFree86Server)
+  __DRIcontextPrivate *driContextPriv; /* back pointer to DRI context
+                                       * used for locking
+                                       */
+  void *private;                       /* device-specific private context */
+#endif
 };
 
 
@@ -194,7 +221,14 @@ struct xmesa_buffer {
    int num_alloced;
    unsigned long alloced_colors[256];
 
-#ifdef FX
+#if defined(GLX_DIRECT_RENDERING) && !defined(XFree86Server)
+  __DRIdrawablePrivate *driDrawPriv;   /* back pointer to DRI drawable
+                                        * used for direct access to framebuffer
+                                        */
+  void *private;                       /* device-specific private drawable */
+#endif
+
+#if defined( FX ) && !defined(GLX_DIRECT_RENDERING)
    /* For 3Dfx Glide only */
    GLboolean FXisHackUsable;   /* Can we render into window? */
    GLboolean FXwindowHack;     /* Are we rendering into a window? */
@@ -278,6 +312,7 @@ struct xmesa_buffer {
 
 
 
+
 /*
  * If pixelformat==PF_DITHER:
  *
@@ -287,6 +322,7 @@ struct xmesa_buffer {
 #undef _R
 #undef _G
 #undef _B
+#undef _D
 #ifdef DITHER666
 # define _R   6
 # define _G   6
@@ -484,8 +520,9 @@ extern triangle_func xmesa_get_triangle_func( GLcontext *ctx );
 /* XXX this is a hack to implement shared display lists with 3Dfx */
 extern XMesaBuffer XMesaCreateWindowBuffer2( XMesaVisual v,
                                             XMesaWindow w,
-                                            XMesaContext c );
-
+                                            XMesaContext c
+                                            DRI_DRAWABLE_ARG
+                                          );
 
 /*
  * These are the extra routines required for integration with XFree86.
index 27c3556ab9b6940cc2df6852263d21070a576051..73ffcf17c42ab736a71d7a6963e72518608e017d 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.DJ,v 1.1 1999/08/19 00:55:41 jtg Exp $
+# $Id: Makefile.DJ,v 1.2 1999/10/08 09:27:09 keithw Exp $
 
 # Makefile for core library for MS-DOS using djgpp
 
 
 
 # $Log: Makefile.DJ,v $
-# Revision 1.1  1999/08/19 00:55:41  jtg
-# Initial revision
+# Revision 1.2  1999/10/08 09:27:09  keithw
+# Fixed includes & added a few hooks for the DRI.
+#
+# Revision 1.1.1.1  1999/08/19 00:55:41  jtg
+# Imported sources
 #
 # Revision 1.1  1999/01/01 14:35:09  brianp
 # Initial revision
@@ -48,7 +51,7 @@ CORE_SOURCES = accum.c alpha.c alphabuf.c api1.c api2.c apiext.c attrib.c \
        bitmap.c blend.c clip.c colortab.c context.c copypix.c depth.c \
        dlist.c drawpix.c enable.c eval.c feedback.c fog.c \
        get.c hash.c image.c light.c lines.c logic.c masking.c matrix.c \
-       misc.c mmath.c mthreads.c pb.c pixel.c points.c pointers.c polygon.c \
+       glmisc.c mmath.c mthreads.c pb.c pixel.c points.c pointers.c polygon.c \
        quads.c rastpos.c readpix.c rect.c scissor.c shade.c span.c \
        stencil.c teximage.c texobj.c texstate.c texture.c triangle.c \
        varray.c winpos.c vb.c vbfill.c vbrender.c vbxform.c xform.c \
index 8fb680dad4b5bfcf80cc03e001a625b64c625b43..da5dc4549e3376b539dd65a54d5d7fc654cfde23 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.X11,v 1.5 1999/09/17 12:07:10 brianp Exp $
+# $Id: Makefile.X11,v 1.6 1999/10/08 09:27:09 keithw Exp $
 
 # Mesa 3-D graphics library
 # Version:  3.1
@@ -46,6 +46,7 @@ CORE_SOURCES = \
        feedback.c \
        fog.c \
        get.c \
+       glmisc.c \
        hash.c \
        image.c \
        light.c \
@@ -53,7 +54,6 @@ CORE_SOURCES = \
        logic.c \
        masking.c \
        matrix.c \
-       misc.c \
        mmath.c \
        mthreads.c \
        pb.c \
index 204307583874e5dc16ac37612b90043b5c5e6e62..2e4f7c802750b9b778d813c3309542eed30d9c3e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: accum.c,v 1.2 1999/08/19 11:54:28 brianp Exp $ */
+/* $Id: accum.c,v 1.3 1999/10/08 09:27:09 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
  */
 
 
+/* $XFree86: xc/lib/GL/mesa/src/accum.c,v 1.3 1999/04/04 00:20:17 dawes Exp $ */
 
 #ifdef PC_HEADER
 #include "all.h"
 #else
-#include <assert.h>
+#ifndef XFree86Server
 #include <limits.h>
 #include <stdlib.h>
 #include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "accum.h"
 #include "context.h"
 #include "macros.h"
index 80aee7b8c0f717c3f1fba293b036fa7410ddc9c2..e0aeec82325888dfeee68eaa90f40f81a21b05e9 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: attrib.c,v 1.4 1999/09/19 23:43:02 keithw Exp $ */
+/* $Id: attrib.c,v 1.5 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "attrib.h"
 #include "context.h"
+#include "glmisc.h"
 #include "enable.h"
 #include "enums.h"
 #include "macros.h"
-#include "misc.h"
 #include "simple_list.h"
 #include "texstate.h"
 #include "types.h"
index 6bf3581b8fb791085a4e8d09bb2310b54fc524b9..7e1037089f1e4f9703959881495a3cc9661a7e51 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: blend.c,v 1.3 1999/09/30 11:18:21 keithw Exp $ */
+/* $Id: blend.c,v 1.4 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#include <stdio.h>
+#ifndef XFree86Server
 #include <assert.h>
 #include <stdlib.h>
-#include <stdio.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "alphabuf.h"
 #include "blend.h"
 #include "context.h"
index 02b97aefa94d21eb4a05b7a466522f323e551eba..85cbd066ff9d0fd25458ee12729b950c4bd9e728 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: clip.c,v 1.2 1999/09/18 20:41:22 keithw Exp $ */
+/* $Id: clip.c,v 1.3 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <string.h>
 #include <stdlib.h>
-#include <stdio.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "clip.h"
 #include "context.h"
 #include "macros.h"
index 22d785ba515ad1fde90ae580c80784a4cc851a1e..7d167e1bea781355b3d6a206e6dc29b7088d7a77 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: colortab.c,v 1.1 1999/08/19 00:55:41 jtg Exp $ */
+/* $Id: colortab.c,v 1.2 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -23,6 +23,7 @@
  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
+/* $XFree86: xc/lib/GL/mesa/src/colortab.c,v 1.2 1999/04/04 00:20:21 dawes Exp $ */
 
 
 
@@ -31,6 +32,9 @@
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifdef XFree86Server
+#include "GL/xf86glx.h"
+#endif
 #include "colortab.h"
 #include "context.h"
 #include "macros.h"
index d7f751dba5f291c66b6b9952b5e0235161f4438b..47cba24ee5f9c89480c49621456c4402bff412ae 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: context.c,v 1.9 1999/09/19 23:43:02 keithw Exp $ */
+/* $Id: context.c,v 1.10 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -25,6 +25,8 @@
  */
 
 
+/* $XFree86: xc/lib/GL/mesa/src/context.c,v 1.4 1999/04/04 00:20:21 dawes Exp $ */
+
 /*
  * If multi-threading is enabled (-DTHREADS) then each thread has it's
  * own rendering context.  A thread obtains the pointer to its GLcontext
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <assert.h>
 #include <math.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "accum.h"
 #include "alphabuf.h"
 #include "api.h"
index 7fac7184923f1623d939f491e5d856064267301f..0dfab9aded77b7e13c95ed09e5c10364f7b3c29e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: depth.c,v 1.3 1999/09/19 23:43:02 keithw Exp $ */
+/* $Id: depth.c,v 1.4 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -25,6 +25,8 @@
  */
 
 
+/* $XFree86: xc/lib/GL/mesa/src/depth.c,v 1.3 1999/04/04 00:20:22 dawes Exp $ */
+
 /*
  * Depth buffer functions
  */
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "enums.h"
 #include "depth.h"
index 559afc64fb372fdc81163d387a70a48a9a02fa55..86706ee21474fd3bd9ec40927007cdc692282f86 100644 (file)
@@ -1,4 +1,5 @@
-/* $Id: depth.h,v 1.1 1999/08/19 00:55:41 jtg Exp $ */
+
+/* $Id: depth.h,v 1.2 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
index 60547dc59182104c8568aa6a6d303c819405e937..b1a4ed05e0aa34390d22a13e4f55347620eefdee 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: dlist.c,v 1.5 1999/09/20 14:30:22 keithw Exp $ */
+/* $Id: dlist.c,v 1.6 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
  */
 
 
+/* $XFree86: xc/lib/GL/mesa/src/dlist.c,v 1.3 1999/04/04 00:20:22 dawes Exp $ */
+
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "accum.h"
 #include "api.h"
 #include "alpha.h"
@@ -52,6 +58,7 @@
 #include "feedback.h"
 #include "fog.h"
 #include "get.h"
+#include "glmisc.h"
 #include "hash.h"
 #include "image.h"
 #include "light.h"
@@ -61,7 +68,6 @@
 #include "macros.h"
 #include "masking.h"
 #include "matrix.h"
-#include "misc.h"
 #include "pipeline.h"
 #include "pixel.h"
 #include "points.h"
index edf524409a201766315c57f827abcaff921135fd..02016d15154b0e0ea16157d71dde41830f22ffff 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: drawpix.c,v 1.2 1999/09/18 20:41:22 keithw Exp $ */
+/* $Id: drawpix.c,v 1.3 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <assert.h>
 #include <stdlib.h>
 #include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "drawpix.h"
 #include "feedback.h"
index ac916d6a41b0ef7de73763a4f6ad6eb6722357e6..9de6fe578b23b9396a367bd9cb4d30ebc097323d 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: enable.c,v 1.5 1999/09/18 20:41:23 keithw Exp $ */
+/* $Id: enable.c,v 1.6 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
  */
 
 
+/* $XFree86: xc/lib/GL/mesa/src/enable.c,v 1.3 1999/04/04 00:20:23 dawes Exp $ */
+
 #ifdef PC_HEADER
 #include "all.h"
 #else
-#include <string.h>
+#ifndef XFree86Server
 #include <stdio.h>
+#include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "enable.h"
 #include "light.h"
index 74604a21c4dfe9d559684e72b85a7471cfa9eaa8..4d5b067ebe2fa38d02010b28290f9caad75cd6eb 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: eval.c,v 1.1 1999/08/19 00:55:41 jtg Exp $ */
+/* $Id: eval.c,v 1.2 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <math.h>
 #include <stdlib.h>
 #include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "eval.h"
 #include "macros.h"
@@ -1988,7 +1992,7 @@ void gl_GetMapiv( GLcontext* ctx, GLenum target, GLenum query, GLint *v )
 
 
 
-void eval_points1( GLfloat outcoord[][4], 
+static void eval_points1( GLfloat outcoord[][4], 
                   GLfloat coord[][4],
                   const GLuint *flags,
                   GLfloat du, GLfloat u1 )
@@ -2003,7 +2007,7 @@ void eval_points1( GLfloat outcoord[][4],
       }
 }
 
-void eval_points2( GLfloat outcoord[][4], 
+static void eval_points2( GLfloat outcoord[][4], 
                   GLfloat coord[][4],
                   const GLuint *flags,
                   GLfloat du, GLfloat u1,
@@ -2030,11 +2034,11 @@ static const GLubyte dirty_flags[5] = {
 };
 
 
-GLvector4f *eval1_4f( GLvector4f *dest, 
-                     GLfloat coord[][4], 
-                     const GLuint *flags, 
-                     GLuint dimension,
-                     struct gl_1d_map *map )
+static GLvector4f *eval1_4f( GLvector4f *dest, 
+                            GLfloat coord[][4], 
+                            const GLuint *flags, 
+                            GLuint dimension,
+                            struct gl_1d_map *map )
 {
    const GLfloat u1 = map->u1;
    const GLfloat du = map->du;
@@ -2055,10 +2059,10 @@ GLvector4f *eval1_4f( GLvector4f *dest,
 }
 
 
-GLvector1ui *eval1_1ui( GLvector1ui *dest, 
-                      GLfloat coord[][4], 
-                      const GLuint *flags, 
-                      struct gl_1d_map *map )
+static GLvector1ui *eval1_1ui( GLvector1ui *dest, 
+                              GLfloat coord[][4], 
+                              const GLuint *flags, 
+                              struct gl_1d_map *map )
 {
    const GLfloat u1 = map->u1;
    const GLfloat du = map->du;
@@ -2077,7 +2081,7 @@ GLvector1ui *eval1_1ui( GLvector1ui *dest,
    return dest;
 }
 
-GLvector3f *eval1_norm( GLvector3f *dest, 
+static GLvector3f *eval1_norm( GLvector3f *dest, 
                        GLfloat coord[][4],
                        GLuint *flags, /* not const */
                        struct gl_1d_map *map )
@@ -2098,7 +2102,7 @@ GLvector3f *eval1_norm( GLvector3f *dest,
    return dest;
 }
 
-GLvector4ub *eval1_color( GLvector4ub *dest, 
+static GLvector4ub *eval1_color( GLvector4ub *dest, 
                          GLfloat coord[][4],
                          GLuint *flags, /* not const */
                          struct gl_1d_map *map )
@@ -2124,12 +2128,12 @@ GLvector4ub *eval1_color( GLvector4ub *dest,
 
 
 
-GLvector4f *eval2_obj_norm( GLvector4f *obj_ptr, 
-                           GLvector3f *norm_ptr,
-                           GLfloat coord[][4], 
-                           GLuint *flags, 
-                           GLuint dimension,
-                           struct gl_2d_map *map )
+static GLvector4f *eval2_obj_norm( GLvector4f *obj_ptr, 
+                                  GLvector3f *norm_ptr,
+                                  GLfloat coord[][4], 
+                                  GLuint *flags, 
+                                  GLuint dimension,
+                                  struct gl_2d_map *map )
 {
    const GLfloat u1 = map->u1;
    const GLfloat du = map->du;
@@ -2161,11 +2165,11 @@ GLvector4f *eval2_obj_norm( GLvector4f *obj_ptr,
 }
 
 
-GLvector4f *eval2_4f( GLvector4f *dest, 
-                     GLfloat coord[][4], 
-                     const GLuint *flags, 
-                     GLuint dimension,
-                     struct gl_2d_map *map )
+static GLvector4f *eval2_4f( GLvector4f *dest, 
+                            GLfloat coord[][4], 
+                            const GLuint *flags, 
+                            GLuint dimension,
+                            struct gl_2d_map *map )
 {
    const GLfloat u1 = map->u1;
    const GLfloat du = map->du;
@@ -2189,10 +2193,10 @@ GLvector4f *eval2_4f( GLvector4f *dest,
 }
 
 
-GLvector3f *eval2_norm( GLvector3f *dest, 
-                       GLfloat coord[][4], 
-                       GLuint *flags, 
-                       struct gl_2d_map *map )
+static GLvector3f *eval2_norm( GLvector3f *dest, 
+                              GLfloat coord[][4], 
+                              GLuint *flags, 
+                              struct gl_2d_map *map )
 {
    const GLfloat u1 = map->u1;
    const GLfloat du = map->du;
@@ -2215,10 +2219,10 @@ GLvector3f *eval2_norm( GLvector3f *dest,
 }
 
 
-GLvector1ui *eval2_1ui( GLvector1ui *dest, 
-                      GLfloat coord[][4], 
-                      const GLuint *flags, 
-                      struct gl_2d_map *map )
+static GLvector1ui *eval2_1ui( GLvector1ui *dest, 
+                              GLfloat coord[][4], 
+                              const GLuint *flags, 
+                              struct gl_2d_map *map )
 {
    const GLfloat u1 = map->u1;
    const GLfloat du = map->du;
@@ -2244,10 +2248,10 @@ GLvector1ui *eval2_1ui( GLvector1ui *dest,
 
 
 
-GLvector4ub *eval2_color( GLvector4ub *dest,
-                         GLfloat coord[][4], 
-                         GLuint *flags,
-                         struct gl_2d_map *map )
+static GLvector4ub *eval2_color( GLvector4ub *dest,
+                                GLfloat coord[][4], 
+                                GLuint *flags,
+                                struct gl_2d_map *map )
 {
    const GLfloat u1 = map->u1;
    const GLfloat du = map->du;
@@ -2272,8 +2276,8 @@ GLvector4ub *eval2_color( GLvector4ub *dest,
 }
 
 
-GLvector4f *copy_4f( GLvector4f *out, CONST GLvector4f *in, 
-                    const GLuint *flags)
+static GLvector4f *copy_4f( GLvector4f *out, CONST GLvector4f *in, 
+                           const GLuint *flags)
 {
    GLfloat (*to)[4] = out->data;
    GLfloat (*from)[4] = in->data;
@@ -2286,8 +2290,8 @@ GLvector4f *copy_4f( GLvector4f *out, CONST GLvector4f *in,
    return out;
 }
 
-GLvector3f *copy_3f( GLvector3f *out, CONST GLvector3f *in, 
-                    const GLuint *flags)
+static GLvector3f *copy_3f( GLvector3f *out, CONST GLvector3f *in, 
+                           const GLuint *flags)
 {
    GLfloat (*to)[3] = out->data;
    GLfloat (*from)[3] = in->data;
@@ -2300,8 +2304,8 @@ GLvector3f *copy_3f( GLvector3f *out, CONST GLvector3f *in,
    return out;
 }
 
-GLvector4ub *copy_4ub( GLvector4ub *out, CONST GLvector4ub *in, 
-                      const GLuint *flags )
+static GLvector4ub *copy_4ub( GLvector4ub *out, CONST GLvector4ub *in, 
+                             const GLuint *flags )
 {
    GLubyte (*to)[4] = out->data;
    GLubyte (*from)[4] = in->data;
@@ -2314,8 +2318,8 @@ GLvector4ub *copy_4ub( GLvector4ub *out, CONST GLvector4ub *in,
    return out;
 }
 
-GLvector1ui *copy_1ui( GLvector1ui *out, CONST GLvector1ui *in, 
-                      const GLuint *flags )
+static GLvector1ui *copy_1ui( GLvector1ui *out, CONST GLvector1ui *in, 
+                             const GLuint *flags )
 {
    GLuint *to = out->data;
    CONST GLuint *from = in->data;
index 3130caccf858844ef62ef68b67267c07fc312b41..803b650ce6a9d32a8c121f47599ec9c73742845e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: extensions.c,v 1.4 1999/09/16 16:47:35 brianp Exp $ */
+/* $Id: extensions.c,v 1.5 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -46,10 +46,11 @@ struct extension {
 
 static struct { int enabled; const char *name; } default_extensions[] = {
    { ALWAYS_ENABLED, "GL_EXT_blend_color" },
-   { ALWAYS_ENABLED, "GL_EXT_blend_minmax" },
-   { ALWAYS_ENABLED, "GL_EXT_blend_logic_op" },
-   { ALWAYS_ENABLED, "GL_EXT_blend_subtract" },
-   { ALWAYS_ENABLED, "GL_EXT_paletted_texture" },
+   { DEFAULT_OFF,    "ARB_imaging" },
+   { DEFAULT_ON,     "GL_EXT_blend_minmax" },
+   { DEFAULT_ON,     "GL_EXT_blend_logic_op" },
+   { DEFAULT_ON,     "GL_EXT_blend_subtract" },
+   { DEFAULT_ON,     "GL_EXT_paletted_texture" },
    { DEFAULT_ON,     "GL_EXT_point_parameters" },
    { ALWAYS_ENABLED, "GL_EXT_polygon_offset" },
    { ALWAYS_ENABLED, "GL_EXT_vertex_array" },
@@ -62,7 +63,7 @@ static struct { int enabled; const char *name; } default_extensions[] = {
    { ALWAYS_ENABLED, "GL_EXT_abgr" },
    { ALWAYS_ENABLED, "GL_SGIS_texture_edge_clamp" },
    { ALWAYS_ENABLED, "GL_EXT_stencil_wrap" },
-   { ALWAYS_ENABLED, "GL_INGR_blend_func_separate" },
+   { DEFAULT_ON,     "GL_INGR_blend_func_separate" },
    { DEFAULT_ON,     "GL_ARB_multitexture" },
    { ALWAYS_ENABLED, "GL_NV_texgen_reflection" },
    { DEFAULT_ON,     "GL_PGI_misc_hints" },
@@ -140,6 +141,7 @@ void gl_extensions_dtr( GLcontext *ctx )
 
    if (ctx->Extensions.ext_list) {
       foreach_s( i, nexti, ctx->Extensions.ext_list ) {
+        remove_from_list( i );
         free( i );
       }
    
@@ -205,7 +207,7 @@ const char *gl_extensions_get_string( GLcontext *ctx )
  * Also, this function does not yet do per-context function searches.
  * Not applicable to Mesa at this time.
  */
-GLfunction gl_GetProcAddress( GLcontext *ctx, const GLubyte *procName )
+void (* gl_GetProcAddress( GLcontext *ctx, const GLubyte *procName ))()
 {
    struct proc {
       const char *name;
index 7663f43c208f9e0ec9d78b527b93d864355951bc..ded2bae79760e314a11f1e70693d45e99ab841ac 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: extensions.h,v 1.3 1999/09/11 11:48:11 brianp Exp $ */
+/* $Id: extensions.h,v 1.4 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -38,7 +38,7 @@
 /* Return 0 on success.
  */
 extern int gl_extensions_add( struct gl_context *ctx, int state, 
-                             const char *name, void (*notify)() );
+                             const char *name, void (*notify)( void ) );
 
 extern int gl_extensions_enable( struct gl_context *ctx, const char *name );
 extern int gl_extensions_disable( struct gl_context *ctx, const char *name );
@@ -46,7 +46,7 @@ extern void gl_extensions_dtr( struct gl_context *ctx );
 extern void gl_extensions_ctr( struct gl_context *ctx );
 extern const char *gl_extensions_get_string( struct gl_context *ctx );
 
-extern GLfunction gl_GetProcAddress( GLcontext *ctx, const GLubyte *procName );
+extern void (*gl_GetProcAddress( GLcontext *ctx, const GLubyte *procName ))( void );
 
 #endif
 
index 0fb09d07563c451147517772ab43478be1cc15a4..ae5943c6da307e801de35a9accf1a2a3d1b235b1 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: feedback.c,v 1.3 1999/09/19 02:03:19 tjump Exp $ */
+/* $Id: feedback.c,v 1.4 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <assert.h>
 #include <stdio.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "enums.h"
 #include "feedback.h"
index 1579c8c47cae814dd32fe5fe45d3d3befd214a58..26da3f7f1443ea78c2683ce3833b3f1f8269e73b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: fog.c,v 1.1 1999/08/19 00:55:41 jtg Exp $ */
+/* $Id: fog.c,v 1.2 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
  */
 
 
+/* $XFree86: xc/lib/GL/mesa/src/fog.c,v 1.4 1999/04/04 00:20:24 dawes Exp $ */
+
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <math.h>
 #include <stdlib.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "fog.h"
 #include "macros.h"
index 1fb3e6e11a38fcd897a9670492713ebf7e88ce5a..90df613cd191d8c39f8910db887522e898b211c3 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: get.c,v 1.3 1999/09/16 15:46:05 brianp Exp $ */
+/* $Id: get.c,v 1.4 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
  */
 
 
+/* $XFree86: xc/lib/GL/mesa/src/get.c,v 1.3 1999/04/04 00:20:25 dawes Exp $ */
+
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <assert.h>
 #include <stdio.h>
 #include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "enable.h"
 #include "enums.h"
@@ -40,9 +46,6 @@
 #include "mmath.h"
 #include "types.h"
 #include "vb.h"
-#ifdef XFree86Server
-#include "GL/xf86glx.h"
-#endif
 #endif
 
 
index 3d533c82e8e21bbc347a16043ef5abab8a381f4f..ce5fdee93163a694ee4cedb284c7ab83896b1e02 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: hash.c,v 1.1 1999/08/19 00:55:41 jtg Exp $ */
+/* $Id: hash.c,v 1.2 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <assert.h>
 #include <stdlib.h>
 #include <stdio.h>
-#include "hash.h"
-#ifdef XFree86Server
+#else
 #include "GL/xf86glx.h"
 #endif
+#include "hash.h"
 #endif
 
 
index bac0c661ff4b433c36b4253504d76fed258a4702..acdce62eaa574c089564ffe36548e4356e49e31f 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: image.c,v 1.2 1999/09/15 13:56:44 brianp Exp $ */
+/* $Id: image.c,v 1.3 1999/10/08 09:27:10 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <assert.h>
 #include <stdlib.h>
 #include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "image.h"
 #include "macros.h"
index 715084bee62cd523845424a624902d365066400b..a9a125b6afd47ed3f04906491fa56f15a3eee152 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: light.c,v 1.3 1999/09/30 11:18:22 keithw Exp $ */
+/* $Id: light.c,v 1.4 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#include <float.h>
+#ifndef XFree86Server
 #include <assert.h>
 #include <float.h>
 #include <math.h>
 #include <stdlib.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include <stdio.h>
 #include "context.h"
 #include "enums.h"
@@ -46,9 +51,6 @@
 #include "types.h"
 #include "vb.h"
 #include "xform.h"
-#ifdef XFree86Server
-#include "GL/xf86glx.h"
-#endif
 #endif
 
 
index cee566e49aa6cf42819feb6fe6913df59ece0f8a..505bf463824f497c37a46380d1d1025df2b8b424 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: lines.c,v 1.2 1999/09/18 20:41:23 keithw Exp $ */
+/* $Id: lines.c,v 1.3 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <assert.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "depth.h"
 #include "feedback.h"
index 61e89748369030effcd8b315aea49a7e4832c7f5..e47b85ff8bc6b9f0e0ca3fdf842ee22014d3da00 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: macros.h,v 1.1 1999/08/19 00:55:41 jtg Exp $ */
+/* $Id: macros.h,v 1.2 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifndef MACROS_H
 #define MACROS_H
 
-
+#if defined( XFree86LOADER ) && defined( XFree86Server )
+#include <GL/glx_ansic.h>
+#else
 #include <math.h>
 #include <string.h>
+#endif
 
 
 #ifdef DEBUG
@@ -49,7 +52,7 @@
 #endif
 
 
-#if defined(__GNUC__) || defined(__MWERKS__)
+#if defined(__GNUC__)
 #define INLINE __inline__
 #elif defined(__MSC__)
 #define INLINE __inline
index b15b72181dd860c84d280cbce7df9c06e19472de..154a038b92332de2145cc97a24a8910375bfbdbc 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: matrix.c,v 1.4 1999/09/19 23:06:40 keithw Exp $ */
+/* $Id: matrix.c,v 1.5 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <math.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "enums.h"
 #include "macros.h"
@@ -298,7 +302,7 @@ static GLboolean invert_matrix_general( GLmatrix *mat )
 
 /* Adapted from graphics gems II.
  */  
-GLboolean invert_matrix_3d_general( GLmatrix *mat )
+static GLboolean invert_matrix_3d_general( GLmatrix *mat )
 {
    const GLfloat *in = mat->m;
    GLfloat *out = mat->inv;
index f89993e316a34b67f537eec1782fff82ecb178a0..fcc630f62a6fef9d213c30c37d5a3518a35d3166 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: matrix.h,v 1.1 1999/08/19 00:55:41 jtg Exp $ */
+/* $Id: matrix.h,v 1.2 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -111,5 +111,9 @@ extern void gl_matrix_mul( GLmatrix *dest,
 extern void gl_matrix_analyze( GLmatrix *mat );
 
 
+extern void gl_MultMatrixd( GLcontext *ctx, const GLdouble *m );
+extern GLboolean gl_matrix_invert( GLmatrix *mat );
+extern void gl_print_matrix( const GLmatrix *m );
+
 
 #endif
index 316c357af190f294d68b0902b63b25145fc3302a..90257b7f3d3532b7698677636acbebe15c4f717c 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: pixel.c,v 1.1 1999/08/19 00:55:41 jtg Exp $ */
+/* $Id: pixel.c,v 1.2 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "macros.h"
 #include "pixel.h"
index 6690b2a10252da731f039c868a0062a17f4723c5..43c4b88b5ba3840639b7c587a7e229239b9b9b62 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: points.c,v 1.2 1999/09/18 20:41:23 keithw Exp $ */
+/* $Id: points.c,v 1.3 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -23,6 +23,7 @@
  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
+/* $XFree86: xc/lib/GL/mesa/src/points.c,v 1.4 1999/04/04 00:20:29 dawes Exp $ */
 
 
 
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
+#include <math.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "feedback.h"
 #include "macros.h"
+#include "mmath.h"
 #include "pb.h"
+#include "points.h"
 #include "span.h"
 #include "texstate.h"
 #include "types.h"
 #include "vb.h"
 #include "mmath.h"
-#ifdef XFree86Server
-#include "GL/xf86glx.h"
-#endif
 #endif
 
 
index 00876febf2375e7811daff0a761aa5a5077b5159..00fe2f1e399f18fbbac5ea8daa1d982958c0abf4 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: polygon.c,v 1.3 1999/09/20 14:30:22 keithw Exp $ */
+/* $Id: polygon.c,v 1.4 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
  */
 
 
+/* $XFree86: xc/lib/GL/mesa/src/polygon.c,v 1.3 1999/04/04 00:20:29 dawes Exp $ */
+
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <assert.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "image.h"
 #include "enums.h"
index 000af375ba29561e53f66ba03c8c786025e2f29a..217cfc0ce5e65a615d9b117ec1b8f76e4e928a62 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: rastpos.c,v 1.1 1999/08/19 00:55:41 jtg Exp $ */
+/* $Id: rastpos.c,v 1.2 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <assert.h>
+#include <math.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "clip.h"
+#include "context.h"
 #include "feedback.h"
 #include "light.h"
 #include "macros.h"
 #include "matrix.h"
 #include "mmath.h"
+#include "rastpos.h"
 #include "shade.h"
 #include "types.h"
 #include "xform.h"
-#include "context.h"
-#ifdef XFree86Server
-#include "GL/xf86glx.h"
 #endif
-#endif
-
 
 
 /*
index 8bcced1fe7b99bca5d6643e32c26b342c4c682f2..95dbfbfbd154ece504f508a132c0a59dd70577d9 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: stencil.c,v 1.3 1999/09/19 02:03:19 tjump Exp $ */
+/* $Id: stencil.c,v 1.4 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
  */
 
 
+/* $XFree86: xc/lib/GL/mesa/src/stencil.c,v 1.3 1999/04/04 00:20:32 dawes Exp $ */
+
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <stdlib.h>
 #include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "macros.h"
 #include "pb.h"
index f2f301e398bf8ec6fa971fcd126a4b8c1c95ef6e..aa3fbbb15efa30013eac25293678b56b88917878 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: teximage.c,v 1.1 1999/08/19 00:55:41 jtg Exp $ */
+/* $Id: teximage.c,v 1.2 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
  */
 
 
+/* $XFree86: xc/lib/GL/mesa/src/teximage.c,v 1.3 1999/04/04 00:20:32 dawes Exp $ */
+
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "image.h"
 #include "macros.h"
index d94618d34076e7af3789d2a94e0fce5d2f3ada9f..0d2f5dd9f21fc7868debd8ae57acc0c06f6a66e7 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: texobj.c,v 1.2 1999/09/30 11:18:22 keithw Exp $ */
+/* $Id: texobj.c,v 1.3 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -23,7 +23,7 @@
  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
-
+/* $XFree86: xc/lib/GL/mesa/src/texobj.c,v 1.3 1999/04/04 00:20:32 dawes Exp $ */
 
 
 
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "enums.h"
 #include "hash.h"
@@ -42,9 +46,6 @@
 #include "texstate.h"
 #include "texobj.h"
 #include "types.h"
-#ifdef XFree86Server
-#include "GL/xf86glx.h"
-#endif
 #endif
 
 
index 1b19a389cff479ceae65a6cc5949af523395a69a..0a828ce028a06e2991565bb6e1e6913d474916ae 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: texstate.c,v 1.2 1999/09/07 22:31:30 brianp Exp $ */
+/* $Id: texstate.c,v 1.3 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <assert.h>
 #include <stdio.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "enums.h"
 #include "macros.h"
@@ -40,9 +44,6 @@
 #include "texture.h"
 #include "types.h"
 #include "xform.h"
-#ifdef XFree86Server
-#include "GL/xf86glx.h"
-#endif
 #endif
 
 
index fb8510ec24491325063d2af436c76f9a2cf161fc..f11ce2df6941408f685225e56c285591622e915d 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: varray.c,v 1.3 1999/09/07 22:31:30 brianp Exp $ */
+/* $Id: varray.c,v 1.4 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
 #ifdef PC_HEADER
 #include "all.h"
 #else
+#ifndef XFree86Server
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+#else
+#include "GL/xf86glx.h"
+#endif
 #include "context.h"
 #include "api.h"
 #include "cva.h"
 #endif
 #endif
 
+#if defined(GLX_DIRECT_RENDERING) && !defined(XFree86Server) && !defined(GLX_USE_DLOPEN)
+#define NEED_MESA_FUNCS_WRAPPED
+#include "mesa_api.h"
+#endif
+
 
 void GLAPIENTRY glVertexPointer(CTX_ARG GLint size, GLenum type, GLsizei stride,
                                  const GLvoid *ptr )
index 6e1fd7567838905516216dfa52d7d8f42c549030..3085c42cd675d36ef98164471902ad006a831722 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: varray.h,v 1.2 1999/09/09 23:48:02 brianp Exp $ */
+/* $Id: varray.h,v 1.3 1999/10/08 09:27:11 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -60,6 +60,10 @@ extern void gl_EdgeFlagPointer( GLcontext *ctx,
                                 GLsizei stride, const GLboolean *ptr );
 
 
+extern void gl_GetPointerv( GLcontext *ctx, GLenum pname, GLvoid **params );
+
+
+
 extern void gl_DrawArrays( GLcontext *ctx,
                            GLenum mode, GLint first, GLsizei count );
 
@@ -89,7 +93,6 @@ extern void gl_DrawRangeElements( GLcontext *ctx, GLenum mode, GLuint start,
                                   GLuint end, GLsizei count, GLenum type,
                                   const GLvoid *indices );
 
-
 extern void gl_save_DrawRangeElements( GLcontext *ctx, GLenum mode,
                                        GLuint start, GLuint end, GLsizei count,
                                        GLenum type, const GLvoid *indices );