diff options
| author | George Sapountzis <gsap7@yahoo.gr> | 2007-04-20 18:12:38 +0300 | 
|---|---|---|
| committer | George Sapountzis <gsap7@yahoo.gr> | 2007-04-20 21:08:56 +0300 | 
| commit | 4d944b502f8a1ae372d9248e888612bffb5eb6a5 (patch) | |
| tree | c082d5441e97bef170795766c85395b70fe8f89f | |
| parent | 6aa5668871e7f366b33e85fabc72885fc269a7d4 (diff) | |
xmesa: split FX functions to separate file, part 1.
| -rw-r--r-- | src/mesa/drivers/x11/xm_api.c | 239 | ||||
| -rw-r--r-- | src/mesa/drivers/x11/xm_glide.c | 257 | ||||
| -rw-r--r-- | src/mesa/drivers/x11/xm_glide.h | 36 | ||||
| -rw-r--r-- | src/mesa/drivers/x11/xmesaP.h | 8 | 
4 files changed, 300 insertions, 240 deletions
| diff --git a/src/mesa/drivers/x11/xm_api.c b/src/mesa/drivers/x11/xm_api.c index 3e65ebd99b..692eb5f807 100644 --- a/src/mesa/drivers/x11/xm_api.c +++ b/src/mesa/drivers/x11/xm_api.c @@ -1640,88 +1640,6 @@ XMesaCreateWindowBuffer(XMesaVisual v, XMesaWindow w)     return b;  } -#ifdef FX -void -FXcreateContext(XMesaVisual v, XMesaWindow w, XMesaContext c, XMesaBuffer b) -{ -   char *fxEnvVar = _mesa_getenv("MESA_GLX_FX"); -   if (fxEnvVar) { -     if (fxEnvVar[0]!='d') { -       int attribs[100]; -       int numAttribs = 0; -       int hw; -       if (v->mesa_visual.depthBits > 0) { -	 attribs[numAttribs++] = FXMESA_DEPTH_SIZE; -	 attribs[numAttribs++] = v->mesa_visual.depthBits; -       } -       if (v->mesa_visual.doubleBufferMode) { -	 attribs[numAttribs++] = FXMESA_DOUBLEBUFFER; -       } -       if (v->mesa_visual.accumRedBits > 0) { -	 attribs[numAttribs++] = FXMESA_ACCUM_SIZE; -	 attribs[numAttribs++] = v->mesa_visual.accumRedBits; -       } -       if (v->mesa_visual.stencilBits > 0) { -         attribs[numAttribs++] = FXMESA_STENCIL_SIZE; -         attribs[numAttribs++] = v->mesa_visual.stencilBits; -       } -       if (v->mesa_visual.alphaBits > 0) { -         attribs[numAttribs++] = FXMESA_ALPHA_SIZE; -         attribs[numAttribs++] = v->mesa_visual.alphaBits; -       } -       if (1) { -         attribs[numAttribs++] = FXMESA_SHARE_CONTEXT; -         attribs[numAttribs++] = (int) &(c->mesa); -       } -       attribs[numAttribs++] = FXMESA_NONE; - -       /* [dBorca] we should take an envvar for `fxMesaSelectCurrentBoard'!!! */ -       hw = fxMesaSelectCurrentBoard(0); - -       /* if these fail, there's a new bug somewhere */ -       ASSERT(b->mesa_buffer.Width > 0); -       ASSERT(b->mesa_buffer.Height > 0); - -       if ((hw == GR_SSTTYPE_VOODOO) || (hw == GR_SSTTYPE_Voodoo2)) { -         b->FXctx = fxMesaCreateBestContext(0, b->mesa_buffer.Width, -                                            b->mesa_buffer.Height, attribs); -         if ((v->undithered_pf!=PF_Index) && (b->backxrb->ximage)) { -	   b->FXisHackUsable = b->FXctx ? GL_TRUE : GL_FALSE; -	   if (b->FXctx && (fxEnvVar[0]=='w' || fxEnvVar[0]=='W')) { -	     b->FXwindowHack = GL_TRUE; -	     FX_grSstControl(GR_CONTROL_DEACTIVATE); -	   } -           else { -	     b->FXwindowHack = GL_FALSE; -	   } -         } -       } -       else { -         if (fxEnvVar[0]=='w' || fxEnvVar[0]=='W') -	   b->FXctx = fxMesaCreateContext(w, GR_RESOLUTION_NONE, -					  GR_REFRESH_75Hz, attribs); -         else -	   b->FXctx = fxMesaCreateBestContext(0, b->mesa_buffer.Width, -                                              b->mesa_buffer.Height, attribs); -         b->FXisHackUsable = GL_FALSE; -         b->FXwindowHack = GL_FALSE; -       } -       /* -       fprintf(stderr, -               "voodoo %d, wid %d height %d hack: usable %d active %d\n", -               hw, b->mesa_buffer.Width, b->mesa_buffer.Height, -	       b->FXisHackUsable, b->FXwindowHack); -       */ -     } -   } -   else { -      _mesa_warning(NULL, "WARNING: This Mesa Library includes the Glide driver but\n"); -      _mesa_warning(NULL, "         you have not defined the MESA_GLX_FX env. var.\n"); -      _mesa_warning(NULL, "         (check the README.3DFX file for more information).\n\n"); -      _mesa_warning(NULL, "         you can disable this message with a 'export MESA_GLX_FX=disable'.\n"); -   } -} -#endif  /** @@ -1993,51 +1911,7 @@ GLboolean XMesaCopyContext( XMesaContext xm_src, XMesaContext xm_dst, GLuint mas  #endif /* XFree86Server */ -/* - * Switch 3Dfx support hack between window and full-screen mode. - */ -#ifdef FX -GLboolean XMesaSetFXmode( GLint mode ) -{ -   const char *fx = _mesa_getenv("MESA_GLX_FX"); -   if (fx && fx[0] != 'd') { -      GET_CURRENT_CONTEXT(ctx); -      GrHwConfiguration hw; -      if (!FX_grSstQueryHardware(&hw)) { -         /*fprintf(stderr, "!grSstQueryHardware\n");*/ -         return GL_FALSE; -      } -      if (hw.num_sst < 1) { -         /*fprintf(stderr, "hw.num_sst < 1\n");*/ -         return GL_FALSE; -      } -      if (ctx) { -         /* [dBorca] Hack alert:  -	  * oh, this is sooo wrong: ctx above is -	  * really an fxMesaContext, not an XMesaContext -	  */ -         XMesaBuffer xmbuf = XMESA_BUFFER(ctx->DrawBuffer); -         if (mode == XMESA_FX_WINDOW) { -	    if (xmbuf->FXisHackUsable) { -	       FX_grSstControl(GR_CONTROL_DEACTIVATE); -	       xmbuf->FXwindowHack = GL_TRUE; -	       return GL_TRUE; -	    } -	 } -	 else if (mode == XMESA_FX_FULLSCREEN) { -	    FX_grSstControl(GR_CONTROL_ACTIVATE); -	    xmbuf->FXwindowHack = GL_FALSE; -	    return GL_TRUE; -	 } -	 else { -	    /* Error: Bad mode value */ -	 } -      } -   } -   /*fprintf(stderr, "fallthrough\n");*/ -   return GL_FALSE; -} -#else +#ifndef FX  GLboolean XMesaSetFXmode( GLint mode )  {     (void) mode; @@ -2047,96 +1921,6 @@ GLboolean XMesaSetFXmode( GLint mode ) -#ifdef FX -/* - * Read image from VooDoo frame buffer into X/Mesa's back XImage. - */ -static void FXgetImage( XMesaBuffer b ) -{ -   GET_CURRENT_CONTEXT(ctx); -   static unsigned short pixbuf[MAX_WIDTH]; -   GLuint x, y; -   GLuint width, height; -   XMesaContext xmesa = XMESA_CONTEXT(ctx); - -#ifdef XFree86Server -   x = b->frontxrb->pixmap->x; -   y = b->frontxrb->pixmap->y; -   width = b->frontxrb->pixmap->width; -   height = b->frontxrb->pixmap->height; -   depth = b->frontxrb->pixmap->depth; -#else -   xmesa_get_window_size(b->display, b, &width, &height); -   x = y = 0; -#endif -   if (b->mesa_buffer.Width != width || b->mesa_buffer.Height != height) { -      b->mesa_buffer.Width = MIN2((int)width, b->FXctx->width); -      b->mesa_buffer.Height = MIN2((int)height, b->FXctx->height); -      if (b->mesa_buffer.Width & 1) -         b->mesa_buffer.Width--;  /* prevent odd width */ -   } - -   /* [dBorca] we're always in the right GR_COLORFORMAT... aren't we? */ -   /* grLfbWriteColorFormat(GR_COLORFORMAT_ARGB); */ -   if (b->xm_visual->undithered_pf==PF_5R6G5B) { -      /* Special case: 16bpp RGB */ -      grLfbReadRegion( GR_BUFFER_FRONTBUFFER,       /* src buffer */ -                       0, b->FXctx->height - b->mesa_buffer.Height,  /*pos*/ -                       b->mesa_buffer.Width, b->mesa_buffer.Height,  /* size */ -                       b->mesa_buffer.Width * sizeof(GLushort), /* stride */ -                       b->backxrb->ximage->data);         /* dest buffer */ -   } -   else if (b->xm_visual->dithered_pf==PF_Dither -	    && GET_VISUAL_DEPTH(b->xm_visual)==8) { -      /* Special case: 8bpp RGB */ -      for (y=0;y<b->mesa_buffer.Height;y++) { -         GLubyte *ptr = (GLubyte*) b->backxrb->ximage->data -                        + b->backxrb->ximage->bytes_per_line * y; -         XDITHER_SETUP(y); - -         /* read row from 3Dfx frame buffer */ -         grLfbReadRegion( GR_BUFFER_FRONTBUFFER, -                          0, b->FXctx->height-(b->mesa_buffer.Height-y), -                          b->mesa_buffer.Width, 1, -                          0, -                          pixbuf ); - -         /* write to XImage back buffer */ -         for (x=0;x<b->mesa_buffer.Width;x++) { -            GLubyte r = (pixbuf[x] & 0xf800) >> 8; -            GLubyte g = (pixbuf[x] & 0x07e0) >> 3; -            GLubyte b = (pixbuf[x] & 0x001f) << 3; -            *ptr++ = XDITHER( x, r, g, b); -         } -      } -   } -   else { -      /* General case: slow! */ -      for (y=0;y<b->mesa_buffer.Height;y++) { -         /* read row from 3Dfx frame buffer */ -         grLfbReadRegion( GR_BUFFER_FRONTBUFFER, -                          0, b->FXctx->height-(b->mesa_buffer.Height-y), -                          b->mesa_buffer.Width, 1, -                          0, -                          pixbuf ); - -         /* write to XImage back buffer */ -         for (x=0;x<b->mesa_buffer.Width;x++) { -            XMesaPutPixel(b->backxrb->ximage,x,y, -			  xmesa_color_to_pixel(ctx, -					       (pixbuf[x] & 0xf800) >> 8, -					       (pixbuf[x] & 0x07e0) >> 3, -					       (pixbuf[x] & 0x001f) << 3, -					       0xff, -                                               b->xm_visual->undithered_pf)); -         } -      } -   } -   /* grLfbWriteColorFormat(GR_COLORFORMAT_ABGR); */ -} -#endif - -  /*   * Copy the back buffer to the front buffer.  If there's no back buffer   * this is a no-op. @@ -2159,16 +1943,10 @@ void XMesaSwapBuffers( XMesaBuffer b )     if (b->db_mode) {  #ifdef FX -      if (b->FXctx) { -         fxMesaSwapBuffers(); - -         if (b->FXwindowHack) -            FXgetImage(b); -         else -            return; -      } +      if (FXswapBuffers(b)) +         return;  #endif -     if (b->backxrb->ximage) { +      if (b->backxrb->ximage) {  	 /* Copy Ximage (back buf) from client memory to server window */  #if defined(USE_XSHM) && !defined(XFree86Server)  	 if (b->shm) { @@ -2235,13 +2013,8 @@ void XMesaCopySubBuffer( XMesaBuffer b, int x, int y, int width, int height )     if (b->db_mode) {        int yTop = b->mesa_buffer.Height - y - height;  #ifdef FX -      if (b->FXctx) { -         fxMesaSwapBuffers(); -         if (b->FXwindowHack) -            FXgetImage(b); -         else -            return; -      } +      if (FXswapBuffers(b)) +         return;  #endif        if (b->backxrb->ximage) {           /* Copy Ximage from host's memory to server's window */ diff --git a/src/mesa/drivers/x11/xm_glide.c b/src/mesa/drivers/x11/xm_glide.c new file mode 100644 index 0000000000..37787a7922 --- /dev/null +++ b/src/mesa/drivers/x11/xm_glide.c @@ -0,0 +1,257 @@ +/* + * Mesa 3-D graphics library + * Version:  6.5 + * + * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * 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. + */ + + +#include "glxheader.h" +#include "xmesaP.h" + +#ifdef FX +void +FXcreateContext(XMesaVisual v, XMesaWindow w, XMesaContext c, XMesaBuffer b) +{ +   char *fxEnvVar = _mesa_getenv("MESA_GLX_FX"); +   if (fxEnvVar) { +     if (fxEnvVar[0]!='d') { +       int attribs[100]; +       int numAttribs = 0; +       int hw; +       if (v->mesa_visual.depthBits > 0) { +	 attribs[numAttribs++] = FXMESA_DEPTH_SIZE; +	 attribs[numAttribs++] = v->mesa_visual.depthBits; +       } +       if (v->mesa_visual.doubleBufferMode) { +	 attribs[numAttribs++] = FXMESA_DOUBLEBUFFER; +       } +       if (v->mesa_visual.accumRedBits > 0) { +	 attribs[numAttribs++] = FXMESA_ACCUM_SIZE; +	 attribs[numAttribs++] = v->mesa_visual.accumRedBits; +       } +       if (v->mesa_visual.stencilBits > 0) { +         attribs[numAttribs++] = FXMESA_STENCIL_SIZE; +         attribs[numAttribs++] = v->mesa_visual.stencilBits; +       } +       if (v->mesa_visual.alphaBits > 0) { +         attribs[numAttribs++] = FXMESA_ALPHA_SIZE; +         attribs[numAttribs++] = v->mesa_visual.alphaBits; +       } +       if (1) { +         attribs[numAttribs++] = FXMESA_SHARE_CONTEXT; +         attribs[numAttribs++] = (int) &(c->mesa); +       } +       attribs[numAttribs++] = FXMESA_NONE; + +       /* [dBorca] we should take an envvar for `fxMesaSelectCurrentBoard'!!! */ +       hw = fxMesaSelectCurrentBoard(0); + +       /* if these fail, there's a new bug somewhere */ +       ASSERT(b->mesa_buffer.Width > 0); +       ASSERT(b->mesa_buffer.Height > 0); + +       if ((hw == GR_SSTTYPE_VOODOO) || (hw == GR_SSTTYPE_Voodoo2)) { +         b->FXctx = fxMesaCreateBestContext(0, b->mesa_buffer.Width, +                                            b->mesa_buffer.Height, attribs); +         if ((v->undithered_pf!=PF_Index) && (b->backxrb->ximage)) { +	   b->FXisHackUsable = b->FXctx ? GL_TRUE : GL_FALSE; +	   if (b->FXctx && (fxEnvVar[0]=='w' || fxEnvVar[0]=='W')) { +	     b->FXwindowHack = GL_TRUE; +	     FX_grSstControl(GR_CONTROL_DEACTIVATE); +	   } +           else { +	     b->FXwindowHack = GL_FALSE; +	   } +         } +       } +       else { +         if (fxEnvVar[0]=='w' || fxEnvVar[0]=='W') +	   b->FXctx = fxMesaCreateContext(w, GR_RESOLUTION_NONE, +					  GR_REFRESH_75Hz, attribs); +         else +	   b->FXctx = fxMesaCreateBestContext(0, b->mesa_buffer.Width, +                                              b->mesa_buffer.Height, attribs); +         b->FXisHackUsable = GL_FALSE; +         b->FXwindowHack = GL_FALSE; +       } +       /* +       fprintf(stderr, +               "voodoo %d, wid %d height %d hack: usable %d active %d\n", +               hw, b->mesa_buffer.Width, b->mesa_buffer.Height, +	       b->FXisHackUsable, b->FXwindowHack); +       */ +     } +   } +   else { +      _mesa_warning(NULL, "WARNING: This Mesa Library includes the Glide driver but\n"); +      _mesa_warning(NULL, "         you have not defined the MESA_GLX_FX env. var.\n"); +      _mesa_warning(NULL, "         (check the README.3DFX file for more information).\n\n"); +      _mesa_warning(NULL, "         you can disable this message with a 'export MESA_GLX_FX=disable'.\n"); +   } +} + + +/* + * Read image from VooDoo frame buffer into X/Mesa's back XImage. + */ +static void FXgetImage( XMesaBuffer b ) +{ +   GET_CURRENT_CONTEXT(ctx); +   static unsigned short pixbuf[MAX_WIDTH]; +   GLuint x, y; +   GLuint width, height; +   XMesaContext xmesa = XMESA_CONTEXT(ctx); + +#ifdef XFree86Server +   x = b->frontxrb->pixmap->x; +   y = b->frontxrb->pixmap->y; +   width = b->frontxrb->pixmap->width; +   height = b->frontxrb->pixmap->height; +   depth = b->frontxrb->pixmap->depth; +#else +   xmesa_get_window_size(b->display, b, &width, &height); +   x = y = 0; +#endif +   if (b->mesa_buffer.Width != width || b->mesa_buffer.Height != height) { +      b->mesa_buffer.Width = MIN2((int)width, b->FXctx->width); +      b->mesa_buffer.Height = MIN2((int)height, b->FXctx->height); +      if (b->mesa_buffer.Width & 1) +         b->mesa_buffer.Width--;  /* prevent odd width */ +   } + +   /* [dBorca] we're always in the right GR_COLORFORMAT... aren't we? */ +   /* grLfbWriteColorFormat(GR_COLORFORMAT_ARGB); */ +   if (b->xm_visual->undithered_pf==PF_5R6G5B) { +      /* Special case: 16bpp RGB */ +      grLfbReadRegion( GR_BUFFER_FRONTBUFFER,       /* src buffer */ +                       0, b->FXctx->height - b->mesa_buffer.Height,  /*pos*/ +                       b->mesa_buffer.Width, b->mesa_buffer.Height,  /* size */ +                       b->mesa_buffer.Width * sizeof(GLushort), /* stride */ +                       b->backxrb->ximage->data);         /* dest buffer */ +   } +   else if (b->xm_visual->dithered_pf==PF_Dither +	    && GET_VISUAL_DEPTH(b->xm_visual)==8) { +      /* Special case: 8bpp RGB */ +      for (y=0;y<b->mesa_buffer.Height;y++) { +         GLubyte *ptr = (GLubyte*) b->backxrb->ximage->data +                        + b->backxrb->ximage->bytes_per_line * y; +         XDITHER_SETUP(y); + +         /* read row from 3Dfx frame buffer */ +         grLfbReadRegion( GR_BUFFER_FRONTBUFFER, +                          0, b->FXctx->height-(b->mesa_buffer.Height-y), +                          b->mesa_buffer.Width, 1, +                          0, +                          pixbuf ); + +         /* write to XImage back buffer */ +         for (x=0;x<b->mesa_buffer.Width;x++) { +            GLubyte r = (pixbuf[x] & 0xf800) >> 8; +            GLubyte g = (pixbuf[x] & 0x07e0) >> 3; +            GLubyte b = (pixbuf[x] & 0x001f) << 3; +            *ptr++ = XDITHER( x, r, g, b); +         } +      } +   } +   else { +      /* General case: slow! */ +      for (y=0;y<b->mesa_buffer.Height;y++) { +         /* read row from 3Dfx frame buffer */ +         grLfbReadRegion( GR_BUFFER_FRONTBUFFER, +                          0, b->FXctx->height-(b->mesa_buffer.Height-y), +                          b->mesa_buffer.Width, 1, +                          0, +                          pixbuf ); + +         /* write to XImage back buffer */ +         for (x=0;x<b->mesa_buffer.Width;x++) { +            XMesaPutPixel(b->backxrb->ximage,x,y, +			  xmesa_color_to_pixel(ctx, +					       (pixbuf[x] & 0xf800) >> 8, +					       (pixbuf[x] & 0x07e0) >> 3, +					       (pixbuf[x] & 0x001f) << 3, +					       0xff, +                                               b->xm_visual->undithered_pf)); +         } +      } +   } +   /* grLfbWriteColorFormat(GR_COLORFORMAT_ABGR); */ +} + + +GLboolean FXswapBuffers( XMesaBuffer b ) +{ +   if (b->FXctx) { +      fxMesaSwapBuffers(); + +      if (!b->FXwindowHack) +         return GL_TRUE; + +      FXgetImage(b); +   } +   return GL_FALSE; +} + + +/* + * Switch 3Dfx support hack between window and full-screen mode. + */ +GLboolean XMesaSetFXmode( GLint mode ) +{ +   const char *fx = _mesa_getenv("MESA_GLX_FX"); +   if (fx && fx[0] != 'd') { +      GET_CURRENT_CONTEXT(ctx); +      GrHwConfiguration hw; +      if (!FX_grSstQueryHardware(&hw)) { +         /*fprintf(stderr, "!grSstQueryHardware\n");*/ +         return GL_FALSE; +      } +      if (hw.num_sst < 1) { +         /*fprintf(stderr, "hw.num_sst < 1\n");*/ +         return GL_FALSE; +      } +      if (ctx) { +         /* [dBorca] Hack alert:  +	  * oh, this is sooo wrong: ctx above is +	  * really an fxMesaContext, not an XMesaContext +	  */ +         XMesaBuffer xmbuf = XMESA_BUFFER(ctx->DrawBuffer); +         if (mode == XMESA_FX_WINDOW) { +	    if (xmbuf->FXisHackUsable) { +	       FX_grSstControl(GR_CONTROL_DEACTIVATE); +	       xmbuf->FXwindowHack = GL_TRUE; +	       return GL_TRUE; +	    } +	 } +	 else if (mode == XMESA_FX_FULLSCREEN) { +	    FX_grSstControl(GR_CONTROL_ACTIVATE); +	    xmbuf->FXwindowHack = GL_FALSE; +	    return GL_TRUE; +	 } +	 else { +	    /* Error: Bad mode value */ +	 } +      } +   } +   /*fprintf(stderr, "fallthrough\n");*/ +   return GL_FALSE; +} +#endif diff --git a/src/mesa/drivers/x11/xm_glide.h b/src/mesa/drivers/x11/xm_glide.h new file mode 100644 index 0000000000..7458c57415 --- /dev/null +++ b/src/mesa/drivers/x11/xm_glide.h @@ -0,0 +1,36 @@ +/* + * Mesa 3-D graphics library + * Version:  6.5 + * + * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * 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. + */ + + +#ifndef _XM_GLIDE_H_ +#define _XM_GLIDE_H_ + +extern void FXcreateContext( XMesaVisual v, +                             XMesaWindow w, +                             XMesaContext c, +                             XMesaBuffer b ); + +extern GLboolean FXswapBuffers( XMesaBuffer b ); + +#endif /* _XM_GLIDE_H_ */ diff --git a/src/mesa/drivers/x11/xmesaP.h b/src/mesa/drivers/x11/xmesaP.h index 170fc678eb..cae5c0d9bc 100644 --- a/src/mesa/drivers/x11/xmesaP.h +++ b/src/mesa/drivers/x11/xmesaP.h @@ -32,6 +32,7 @@  #if defined(FX)  #include "GL/fxmesa.h"  #include "../glide/fxdrv.h" +#include "xm_glide.h"  #endif  #ifdef XFree86Server  #include "xm_image.h" @@ -568,13 +569,6 @@ extern void xmesa_register_swrast_functions( GLcontext *ctx ); -/* XXX this is a hack to implement shared display lists with 3Dfx */ -extern void FXcreateContext( XMesaVisual v, -                             XMesaWindow w, -                             XMesaContext c, -                             XMesaBuffer b ); - -  #define ENABLE_EXT_texure_compression_s3tc 0 /* SW texture compression */  #ifdef XFree86Server | 
