aboutsummaryrefslogtreecommitdiff
path: root/mesalib/docs/README.DJ
diff options
context:
space:
mode:
Diffstat (limited to 'mesalib/docs/README.DJ')
-rw-r--r--mesalib/docs/README.DJ275
1 files changed, 0 insertions, 275 deletions
diff --git a/mesalib/docs/README.DJ b/mesalib/docs/README.DJ
deleted file mode 100644
index 5f783ac53..000000000
--- a/mesalib/docs/README.DJ
+++ /dev/null
@@ -1,275 +0,0 @@
- Mesa 6.5 DOS/DJGPP Port v1.8
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-
-Description:
-~~~~~~~~~~~~
-
-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.
-
-
-
-Installation:
-~~~~~~~~~~~~~
-
-Unzip and type:
-
- make -f Makefile.DJ [OPTIONS...]
-
-Available options:
-
- Environment variables:
- CPU optimize for the given processor.
- default = pentium
- GLIDE path to Glide3 SDK; used with FX.
- default = $(TOP)/glide3
- FX=1 build for 3dfx Glide3. Note that this disables
- compilation of most DMesa code and requires fxMesa.
- As a consequence, you'll need the DJGPP Glide3
- library to build any application.
- default = no
- X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow).
- default = no
-
- Targets:
- all: build everything
- libgl: build GL
- libglu: build GLU
- libglut: build GLUT
- clean: remove object files
- realclean: remove all generated files
-
-
-
-Tested on:
- Video card: Radeon 9500
- DJGPP: djdev 2.04 + gcc v4.1.0 + make v3.80
- OS: DOS, Win98SE, WinXP (using Videoport driver)
-
-
-
-FAQ:
-~~~~
-
-1. Compilation
-
- Q) `make' barfs and exits because it cannot find some stupid file.
- A) You need LFN support.
- A) When compiling for Glide (FX=1), pay attention to Glide path.
-
- Q) Libraries built OK, but linker complains about `vsnprintf' every time I
- compile some demo.
- A) Upgrade to DJGPP 2.04.
- A) Add `vsnprintf.c' to the CORE_SOURCES in `src/Makefile.DJ' (untested!).
- A) Patch `src/mesa/main/imports.c' with the following line:
- #define vsnprintf(buf, max, fmt, arg) vsprintf(buf, fmt, arg)
- This hack should be safe in 90% of the cases, but if anything goes wrong,
- don't come back to me crying.
-
- Q) `make' complains about DXE3 or something, yet it builds the libraries.
- A) DXE3 refers to the DJGPP dynamic modules. You'll need either the latest
- DJGPP distro, or download the separate package from my web page. Read the
- DXE3 documentation on how to use them.
- A) When compiling for Glide (FX=1), make sure `glide3x.dxe' can be found in
- LD_LIBRARY_PATH (or top `lib' directory).
-
-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 (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.
-
- 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
- which case FX_GLIDE_REFRESH will be overwritten if it is defined and
- is not 0).
-
- Q) I made a simple application and it does nothing. It exits right away. Not
- even a blank screen.
- 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) 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:
- n = DMesaGetIntegerv(DMESA_GET_VIDEO_MODES, NULL);
- If `n' is strictly positive, you allocate an array of pointers to a given
- struct (which is guaranteed to be extended only - not changed in future):
- struct {
- int xres, yres;
- int bpp;
- } **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:
- for (i = 0; i < n; i++) {
- printf("%dx%d:%d\n", l[i]->xres, l[i]->yres, l[i]->bpp);
- }
-
- Q) The GLUT is incomplete.
- A) See below.
-
-
-
-libGLUT (the toolkit):
-~~~~~~~~~~~~~~~~~~~~~~
-
-Well, this "skeletal" GLUT implementation was taken from AllegGL project and
-heavily changed. Thanks should go to Bernhard Tschirren, Mark Kilgard, Brian
-Paul and probably others (or probably not ;-). GLUT functionality will be
-extended only on an "as needed" basis.
-
-GLUT talks to hardware via PC_HW package which was put together from various
-pieces I wrote long time ago. It consists from the keyboard, mouse and timer
-drivers.
-
-My keyboard driver used only scancodes; as GLUT requires ASCII values for keys,
-I borrowed the translation tables (and maybe more) from Allegro -- many thanks
-to Shawn Hargreaves et co. Ctrl-Alt-Del (plus Ctrl-Alt-End, for Windows users)
-will shut down the GLUT engine unconditionally: it will raise SIGINT, which in
-turn will (hopefully) call the destructors, thus cleaning up your/my mess ;-)
-NB: since the DJGPP guys ensured signal handlers won't go beyond program's
-space (and since dynamic modules shall) the SIGINT can't be hooked (well, it
-can, but it is useless), therefore you must live with the 'Exiting due to
-signal SIGINT' message...
-
-The mouse driver is far from complete (lack of drawing, etc), but is enough to
-make almost all the demos work. Supports the CuteMouse WheelAPI.
-
-The timer is pretty versatile for it supports multiple timers with different
-frequencies. While not being the most accurate timer in the known universe, I
-think it's OK. Take this example: you have timer A with a very high rate, and
-then you have timer B with very low rate compared to A; now, A ticks OK, but
-timer B will probably loose precision!
-
-As an addition, stdout and stderr are redirected and dumped upon exit. This
-means that `printf' can be safely called during graphics. A bit of a hack, I
-know, because all messages come in bulk, but I think it's better than nothing.
-"Borrowed" from LIBRHUTI (Robert Hoehne).
-
-Window creating defaults: (0, 0, 300, 300), 16bpp. However, the video mode is
-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.
-
-
-
-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)
- DMESA_GLUT_DEPTH - set default depth bits (16)
- DMESA_GLUT_STENCIL - set default stencil bits (8)
- DMESA_GLUT_ACCUM - set default accum bits (16)
-
-
-
-History:
-~~~~~~~~
-
-v1.0 (mar-2002)
- initial release
-
-v1.1 (sep-2002)
- + added 3dfx Glide3 support
- + added refresh rate control
- + added fonts in GLUT
- * lots of minor changes
-
-v1.2 (nov-2002)
- * synced w/ Mesa-4.1
- - removed dmesadxe.h
-
-v1.3 (mar-2003)
- + enabled OpenGL 1.4 support
- + added MMX clear/blit routines
- + enabled SGI's GLU compilation
- + added samples makefile
- + added new GLUT functions
- + added color-index modes
- + added Matrox Millennium MGA2064W driver
- + added 8bit FakeColor (thanks to Neil Funk)
- + added VGA support (to keep Ben Decker happy)
- ! fixed some compilation errors (reported by Chan Kar Heng)
- * optimized driver for faster callback access... yeah, right :)
- * overhauled virtual buffer and internal video drivers
- * better fxMesa integration
- * revamped GLUT
- * switched to DXE3
-
-v1.4 (dec-2003)
- + enabled GLUT fonts with DXE
- + truly added multi-window support in GLUT (for Adrian Woodward)
- * accomodated makefiles with the new sourcetree
- * fixed some ALPHA issues
- * minor changes to PC_HW/timer interface
- x hacked and slashed the 3dfx driver (w/ help from Hiroshi Morii)
-
-v1.5 (jan-2004)
- + added interface to query available "visuals" (GLFW - Marcus Geelnard)
- + added GLUT timer callback
- - 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
-
-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: Daniel Borca
-E-mail: dborca@users.sourceforge.net
-WWW: http://www.geocities.com/dborca/