# 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.
-# DOS/DJGPP makefile v1.4 for Mesa
+# DOS/DJGPP makefile v1.5 for Mesa
#
# Copyright (C) 2002 - Borca Daniel
# Email : dborca@users.sourceforge.net
# As a consequence, you'll need the DJGPP Glide3
# library to build any application.
# default = no
-# HAVE_X86=1 optimize for i386.
-# default = no
-# HAVE_MMX=1 allow MMX specializations, provided your assembler
-# supports MMX instruction set. However, the true CPU
-# capabilities are checked at run-time to avoid crashes.
-# default = no
-# HAVE_SSE=1 (see HAVE_MMX)
-# default = no
-# HAVE_3DNOW=1 (see HAVE_MMX)
+# X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow).
# default = no
#
# Targets:
# 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.
-# MinGW makefile v1.0 for Mesa
+# MinGW makefile v1.1 for Mesa
#
# Copyright (C) 2002 - Borca Daniel
# Email : dborca@users.sourceforge.net
# As a consequence, you'll need the Win32 Glide3
# library to build any application.
# default = no
-# HAVE_X86=1 optimize for i386.
-# default = no
-# HAVE_MMX=1 allow MMX specializations, provided your assembler
-# supports MMX instruction set. However, the true CPU
-# capabilities are checked at run-time to avoid crashes.
-# default = no
-# HAVE_SSE=1 (see HAVE_MMX)
-# default = no
-# HAVE_3DNOW=1 (see HAVE_MMX)
+# X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow).
# default = no
#
# Targets:
----------------------
The following environment variables affect MesaFX. Those that affect Glide
-only, are beyond the scope of this file. Entries that don't have a "Value"
+only, are beyond the scope of this section. Entries that don't have a "Value"
field, can have any value whatsoever
ex: set MESA_FX_IGNORE_CMBEXT=y
FX_GLIDE_NUM_TMU
OS: all
- HW: 2 TMU cards (Voodoo2, Avenger, Napalm)
+ HW: dual-TMU cards (some Voodoo1, Voodoo2, Avenger, Napalm)
Desc: force single-TMU
Note: (*)
Value: "1"
HW: all
Desc: verbose to stderr
Value: any; special value "r" to redirect stderr to MESA.LOG
+MESA_FX_POINTCAST
+ OS: all
+ HW: dual-TMU cards (some Voodoo1, Voodoo2, Avenger, Napalm)
+ Desc: try to use pointcast palette
+ Note: may give adverse effects on UMA cards (Avenger, Napalm)
MESA_FX_IGNORE_PALEXT
OS: all
HW: all
OS: all
HW: Napalm
Desc: disable Napalm combiners (color/alpha/texture)
- Note: this means advanced (multi)texturing modes won't
- work, but disabling this turns on REAL trilinear
+ Note: this option allows dual-TMU cards perform single-pass
+ trilinear, but some advanced (multi)texturing modes
+ won't work (GL_EXT_texture_env_combine)
MESA_FX_IGNORE_MIREXT
OS: all
HW: all
-August 30, 1998 -- Paul Garceau\r
-Updated January 13, 2000 -- Paul Garceau (pgarceau@teleport.com)\r
-\r
-DISCLAIMER: I make this port of the Mesa 3-D Graphics Library as a service\r
-to the general public. I can, in no way support or make any guarantee that the\r
-build will work for your system.\r
-\r
- The associated packages and batch files I have included as part of the GCC-2.95.2/Mingw32 extension are provided "As-is" with out any guarantee of support or functionality from this author.\r
-\r
- Feel free to modify or change things as you see fit, just remember that\r
-I can't support any modifications you might want to make to the files which I\r
-have included OR the lgpl protected Mesa 3-D Graphics Library.\r
-\r
- I recommend using GCC-2.95.2/Mingw32 which is available at Mumit Khans' ftp site:\r
-\r
- (ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/)\r
-\r
- This build has been tested under WinNT4/SP6. Win9x and WinNT5 remain untested by me. I have not tested any of the demos included with Mesa3d.\r
-\r
- I recommend using the GCC-2.95.2/Mingw32.\r
-\r
- ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95.2\r
-\r
- Much thanks to the combined efforts of Mumit Khan, Jan-Jaap Vanderhagen\r
-and Colin Peters for making it possible for the Mingw32 toolchain to exist. Also, thanks go out to Stephane Rehel for the work that was completed on the Cygwin build.\r
-\r
-Installing GCC-2.95.2/Mingw32 Build:\r
-\r
- a) Open the file archive (either tar.gz or .zip extensions)\r
-\r
- b) Decide the directory you want to move the archived files to.\r
-\r
- d) Extract the files from the archive.\r
- \r
- e) Edit the mingw32.bat file to accomodate your choice of directory structure.\r
-\r
- %mesaroot%: This is your root directory (Mesa-3.3)\r
- %mesasrc%: This is the Mesa-3.3 src directory (Mesa-3.3\src)\r
- %mesalib%: This is where the build will put libGL.a and libGLU.a\r
-\r
-Running the Build:\r
-\r
- Open your Command Prompt or MS-DOS prompt.\r
- Go to your Mesa-3.3 'root' directory\r
- At the command line type: mingw32\r
-\r
- That's all there is to it.\r
-\r
- Enjoy!\r
-\r
- Peace,\r
-\r
+ Mesa 6.1 for MinGW32
+ ~~~~~~~~~~~~~~~~~~~~
+
+
+
+Quick & dirty start:
+--------------------
+
+ mingw32-make -f Makefile.mgw [OPTIONS...]
+
+ Look into the corresponding makefiles for further information.
+ Check README.3DFX to find out how to compile Mesa Glide3 driver
+ with MinGW32!
+
+
+
+Contact:
+--------
+
+Daniel Borca <dborca@users.sourceforge.net>
+
+
+
+WARNING! The info below this line is outdated (yet some of it useful). WARNING!
+*******************************************************************************
+
+
+
+August 30, 1998 -- Paul Garceau
+Updated January 13, 2000 -- Paul Garceau (pgarceau@teleport.com)
+
+DISCLAIMER: I make this port of the Mesa 3-D Graphics Library as a service
+to the general public. I can, in no way support or make any guarantee that the
+build will work for your system.
+
+ The associated packages and batch files I have included as part of the GCC-2.95.2/Mingw32 extension are provided "As-is" with out any guarantee of support or functionality from this author.
+
+ Feel free to modify or change things as you see fit, just remember that
+I can't support any modifications you might want to make to the files which I
+have included OR the lgpl protected Mesa 3-D Graphics Library.
+
+ I recommend using GCC-2.95.2/Mingw32 which is available at Mumit Khans' ftp site:
+
+ (ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/)
+
+ This build has been tested under WinNT4/SP6. Win9x and WinNT5 remain untested by me. I have not tested any of the demos included with Mesa3d.
+
+ I recommend using the GCC-2.95.2/Mingw32.
+
+ ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95.2
+
+ Much thanks to the combined efforts of Mumit Khan, Jan-Jaap Vanderhagen
+and Colin Peters for making it possible for the Mingw32 toolchain to exist. Also, thanks go out to Stephane Rehel for the work that was completed on the Cygwin build.
+
+Installing GCC-2.95.2/Mingw32 Build:
+
+ a) Open the file archive (either tar.gz or .zip extensions)
+
+ b) Decide the directory you want to move the archived files to.
+
+ d) Extract the files from the archive.
+
+ e) Edit the mingw32.bat file to accomodate your choice of directory structure.
+
+ %mesaroot%: This is your root directory (Mesa-3.3)
+ %mesasrc%: This is the Mesa-3.3 src directory (Mesa-3.3\src)
+ %mesalib%: This is where the build will put libGL.a and libGLU.a
+
+Running the Build:
+
+ Open your Command Prompt or MS-DOS prompt.
+ Go to your Mesa-3.3 'root' directory
+ At the command line type: mingw32
+
+ That's all there is to it.
+
+ Enjoy!
+
+ Peace,
+
Paul G. (pgarceau@teleport.com)
\ No newline at end of file
/****************************************************************************\
* interface *
\****************************************************************************/
-void tdfx_hook_glide (struct tdfx_glide *Glide)
+void tdfx_hook_glide (struct tdfx_glide *Glide, int pointcast)
{
+/* GET_EXT_ADDR: get function pointer
+ * GET_EXT_FAKE: get function pointer if possible, else use a fake function
+ * GET_EXT_NULL: get function pointer if possible, else leave NULL pointer
+ */
#if FX_TRAP_GLIDE
#define GET_EXT_ADDR(name) *(GrProc *)&real_##name = grGetProcAddress(#name), Glide->name = trap_##name
#define GET_EXT_FAKE(name) GET_EXT_ADDR(name); if (real_##name == NULL) real_##name = fake_##name
GET_EXT_ADDR(grTexChromaModeExt);
GET_EXT_ADDR(grTexChromaRangeExt);
/* pointcast */
- GET_EXT_FAKE(grTexDownloadTableExt);
- GET_EXT_FAKE(grTexDownloadTablePartialExt);
- GET_EXT_FAKE(grTexNCCTableExt);
+ if (pointcast) {
+ GET_EXT_FAKE(grTexDownloadTableExt);
+ GET_EXT_FAKE(grTexDownloadTablePartialExt);
+ GET_EXT_FAKE(grTexNCCTableExt);
+ } else {
+ Glide->grTexDownloadTableExt = fake_grTexDownloadTableExt;
+ Glide->grTexDownloadTablePartialExt = fake_grTexDownloadTablePartialExt;
+ Glide->grTexNCCTableExt = fake_grTexNCCTableExt;
+ }
/* tbext */
GET_EXT_ADDR(grTextureBufferExt);
GET_EXT_ADDR(grTextureAuxBufferExt);
void (FX_CALL *txPalToNcc) (GuNccTable *ncc_table, const FxU32 *pal);
};
-void tdfx_hook_glide (struct tdfx_glide *Glide);
+void tdfx_hook_glide (struct tdfx_glide *Glide, int pointcast);
#endif
}
- tdfx_hook_glide(&config->Glide);
+ tdfx_hook_glide(&config->Glide, getenv("MESA_FX_POINTCAST") != NULL);
END_BOARD_LOCK();
return 1;