- Mesa 6.1 DOS/DJGPP Port v1.6
+ Mesa 6.5 DOS/DJGPP Port v1.8
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Description:
~~~~~~~~~~~~
-Well, guess what... this is the DOS port of Mesa 6.1, for DJGPP fans... Whoa!
-The driver has its origins in ddsample.c, written by Brian Paul and found by me
-in Mesa 3.4.2.
+Well, guess what... this is the DOS port of Mesa 6.5, for DJGPP fans... Whoa!
+The driver uses OSMesa to draw off screen, and then blits the buffer. This is
+not terribly efficient, and has some drawbacks, but saves maintenance costs.
Legal:
~~~~~~
-Mesa copyright applies, provided this package is used within Mesa. For anything
-else, see GPL.
+Mesa copyright applies.
Environment variables:
CPU optimize for the given processor.
default = pentium
- GLU=[mesa|sgi] specify GLU directory; can be `sgi' (requires GNU/C++)
- or `mesa'.
- default = mesa
GLIDE path to Glide3 SDK; used with FX.
default = $(TOP)/glide3
FX=1 build for 3dfx Glide3. Note that this disables
Tested on:
- CPU: AMD Athlon XP 1800+
- Mainboard: GA-7VTXE w/ 512 MB DDRAM
- Video card: Voodoo5 6000 AGP w/ 128 MB SDRAM
- DJGPP: djdev 2.04 + gcc v3.3.2 + make v3.80
- OS: DOS and Win98SE
+ Video card: Radeon 9500
+ DJGPP: djdev 2.04 + gcc v4.1.0 + make v3.80
+ OS: DOS, Win98SE, WinXP (using Videoport driver)
2. Using Mesa for DJGPP
+ Q) Every test I tried crashes badly.
+ A) If you have compiled with SSE and you're running under plain DOS, you
+ have to disable SSE at run-time. See environment variables below.
+
Q) DMesa is so SLOOOW! The Win32 OpenGL performs so much better...
- A) Is that a question? If you have a 3dfx Voodoo or higher card, you're
+ A) Is that a question? If you have a 3dfx Voodoo (any model), you're
lucky (check http://sourceforge.net/projects/glide for the DJGPP port).
- If you haven't, sorry; everything is done in software. Suggestions?
+ If you haven't, sorry; everything is done in software.
Q) I tried to set refresh rate w/ DMesa, but without success.
A) Refresh rate control works only for VESA 3.0 and the 3dfx driver (in
Q) I made a simple application and it does nothing. It exits right away. Not
even a blank screen.
- A) Pure software drivers (VESA/VGA/NUL) support only double-buffered modes.
+ A) Software drivers (VESA/VGA/NUL) must to be constructed as single-buffered
+ visuals. However, DMesaSwapBuffers must be called to get any output.
A) Another weird "feature" is that buffer width must be multiple of 8 (I'm a
lazy programmer and I found that the easiest way to keep buffer handling
at peak performance ;-).
Q) I'm getting a "bad font!" fatal error.
- A) By default, DOS GLUT compiles with GLUT_IMPORT_LIB, to cope with variable
- access inside dynamic modules (same mechanism used for Win32 _DLL). Since
- -DGLUT_IMPORT_LIB affects Mesa's `glut.h', your apps must be compiled the
- same way GLUT was compiled (either with or without defining it). If you
- want to use another `glut.h' when building your own demos, or just don't
- feel happy about this, make sure you remove the line with GLUT_IMPORT_LIB
- from `Mesa/src/glut/dos/Makefile.DJ' before (re)making GLUT. Beware, this
- means you will never EVER be able to safely use `glut.dxe'!
+ A) Always use GLUT_STROKE_* and GLUT_BITMAP_* constants when dealing with
+ GLUT fonts. If you're using `glut.dxe', then make sure GLUT_STROKE_* and
+ GLUT_BITMAP_* are mapped to integer constants, not to the actual font
+ address (same mechanism used for Win32 _DLL).
Q) What is NUL driver good for, if I don't get any output at all?
A) For debugging. The NUL driver is very much like OSMesa. Everything is
struct {
int xres, yres;
int bpp;
- } **l = malloc(n * sizeof(void **));
+ } **l = malloc(n * sizeof(void *));
Now pass the newly allocated buffer to fill in:
DMesaGetIntegerv(DMESA_GET_VIDEO_MODES, (GLint *)l);
And collect the info:
~~~~~~~~~~~~~~~~~~~~~~
DMESA_NULDRV - (any value) force NUL driver
GLUT_FPS - print frames/second statistics to stderr
+ MESA_NO_SSE - (any value) safe option under pure DOS
DMESA_GLUT_REFRESH - set vertical screen refresh rate (VESA3)
DMESA_GLUT_BPP - set default bits per pixel (VGA needs 8)
DMESA_GLUT_ALPHA - set default alpha bits (8)
- removed Matrox Millennium MGA2064W driver
x more changes to the 3dfx driver
-v1.6 (???-2004)
+v1.6 (aug-2004)
+ implemented NUL driver
+ added DMesaGetProcAddress and glutGetProcAddress
* reorganized fxMesa wrapper to handle multiple contexts
! fixed a horrible bug in VGA initialization routine
+ ! fixed partial clears
+
+v1.7 (???-2005)
+ + enabled OpenGL 2.0 support
+ + added support for sw texture compression
+ + added FreeGLUT specific functions
+ * no more GLX sources in DOS GLUT
+ * made GLUT timer callbacks less accurate but safer
+
+v1.8 (apr-2006)
+ * killed lots of code, the driver is now a front-end to OSMesa
+ * fixed problem with WinNT (http://www.volny.cz/martin.sulak/)
+ - removed 3dfx Glide3 support (temporarily?)
Contact:
~~~~~~~~
-Name: Borca Daniel
+Name: Daniel Borca
E-mail: dborca@users.sourceforge.net
WWW: http://www.geocities.com/dborca/