diff options
Diffstat (limited to 'docs/README.DJ')
-rw-r--r-- | docs/README.DJ | 275 |
1 files changed, 0 insertions, 275 deletions
diff --git a/docs/README.DJ b/docs/README.DJ deleted file mode 100644 index 5f783ac53fb..00000000000 --- a/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: [email protected] -WWW: http://www.geocities.com/dborca/ |