Two subtle things missed on the previous commit.
[mesa.git] / docs / README.DJ
index 95eb43c584fe01acea24b5e1149785ef4439f5ab..7180223c248dac460e7d8f59ccea81c10026296b 100644 (file)
@@ -1,4 +1,4 @@
-                       Mesa 6.0 DOS/DJGPP Port v1.5
+                       Mesa 6.3 DOS/DJGPP Port v1.7
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
@@ -6,7 +6,7 @@
 Description:
 ~~~~~~~~~~~~
 
-Well, guess what... this is the DOS port of Mesa 6.0, for DJGPP fans... Whoa!
+Well, guess what... this is the DOS port of Mesa 6.3, 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.
 
@@ -42,15 +42,7 @@ Available options:
                        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 lockups.
-                       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:
@@ -67,7 +59,7 @@ 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
+       DJGPP:          djdev 2.04 + gcc v3.4.3 + make v3.80
        OS:             DOS and Win98SE
 
 
@@ -99,8 +91,12 @@ FAQ:
 
 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^2 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?
 
@@ -111,11 +107,24 @@ FAQ:
 
    Q) I made a simple application and it does nothing. It exits right away. Not
       even a blank screen.
-   A) The pure software drivers (VESA/VGA) support only double-buffered modes.
+   A) Pure software drivers (VESA/VGA/NUL) support only double-buffered modes.
    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) 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
+      done just the same as VESA/VGA drivers, only it doesn't touch your video
+      hardware. You can query the actual buffer by issuing:
+       DMesaGetIntegerv(DMESA_GET_BUFFER_ADDR, &buffer);
+      and dump it to a file.
+
    Q) How do I query for a list of available video modes to choose as a visual?
    A) This is an ugly hack, for which I'm sure I'll burn in hell.
       First, query for a list of modes:
@@ -125,7 +134,7 @@ FAQ:
        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:
@@ -179,8 +188,13 @@ chosen in such a way that first window will fit. If you need high resolution
 with small windows, set initial position far to the right (or way down); then
 you can move them back to any position right before the main loop.
 
-The following environment variables can customize GLUT behaviour:
+
+
+Environment variables:
+~~~~~~~~~~~~~~~~~~~~~~
+       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)
@@ -237,11 +251,25 @@ v1.5 (jan-2004)
        - removed Matrox Millennium MGA2064W driver
        x more changes to the 3dfx driver
 
+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
+
 
 
 Contact:
 ~~~~~~~~
 
-Name:   Borca Daniel
+Name:   Daniel Borca
 E-mail: dborca@users.sourceforge.net
 WWW:    http://www.geocities.com/dborca/