summaryrefslogtreecommitdiff
path: root/docs/README.DJ
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2002-02-12 03:24:56 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2002-02-12 03:24:56 +0000
commitdb41d2ea8c8b6ceddf54f87268085a83d8f342ba (patch)
tree5fb285d9f22e09a2c6fd1cd09b3a13d2329d5553 /docs/README.DJ
parentcc27365d775632647a1d07d78203421d27e8cd1c (diff)
Daniel Borca's new DOS/DJGPP driver.
Diffstat (limited to 'docs/README.DJ')
-rw-r--r--docs/README.DJ130
1 files changed, 130 insertions, 0 deletions
diff --git a/docs/README.DJ b/docs/README.DJ
new file mode 100644
index 0000000000..c4a274cedf
--- /dev/null
+++ b/docs/README.DJ
@@ -0,0 +1,130 @@
+ Mesa 4.0.1 DOS/DJGPP Port version 0.1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+First of all...
+~~~~~~~~~~~~~~~
+
+This is a DOS port for MESA 4.0.1. I didn't bother to consider any DOS C
+compiler other than gcc, so this port was written using DJGPP v2. To be more
+precise:
+ djdev 2.03
+ gcc v3.0.3
+ make v3.79
+
+Almost all demos were compiled and ran succesfully on my system:
+ CPU: Intel Pentium w/ MMX @166 MHz
+ Mainboard: ViA Apollo VP2 w/ 128 MB SDRAM
+ Video card: Matrox Millenium I w/ 4096 kB WRAM, Matrox BIOS v3.0
+
+Since I don't have access to any accelerated video hardware, this port is
+entirely based on VESA/SuperVGA. My little attempt to use FreeBE/AF ended in
+a failure, but that's another story: it seemed to work fine with my older
+Matrox Millenium w/ 2MB, and then I got another Matrox Millenium w/ 4MB. The
+problem with latter was it had a dead BIOS; I hot-flashed it and made it work
+in all environments (Windows 95, VESA, etc) but FreeBE/AF.
+
+
+
+Legal:
+~~~~~~
+
+This software is distributed under the terms of the GNU Lesser General Public
+License.
+
+Source code written by others is subject to its respective copyright.
+
+
+
+libGL (the core):
+~~~~~~~~~~~~~~~~~
+
+Of course, MESA 4.0.1 core sources are required. It will probably work with
+MESA 3.5, but not a chance with earlier versions due to major changes to the
+MESA driver interface and the directory tree. All should compile succesfully.
+
+The driver has its origins in ddsample.c, written by Brian Paul and found by
+me in MESA 3.4.2. I touched almost all the functions, changing the coding
+style ;-( Sorry!
+
+Pitfalls:
+1. The current version supports only RGB[A] modes, for it made no sense to me
+ to endorse color-index (aka palette) modes.
+2. Only double-buffered is allowed because it was simpler to implement at
+ that moment. Single-buffered will appear soon, especially if I can find a
+ way to use hardware acceleration.
+3. Another weird "feature" is that buffer width & height must be multiple of
+ 4 (I'm a lazy programmer and I found that the easiest way to keep buffer
+ handling at peak performance ;-).
+4. The video mode selector is tricky: it searches for the smallest mode which
+ will entirely contain the buffer at its current position. If you want a
+ small buffer in a high-res mode, try to position it very far to the right
+ (or down). I'd really use some ideas here!!!
+
+
+
+libGLU:
+~~~~~~~
+
+Mesa GLU sources are required. Everything should run smooth.
+
+
+
+libGLUT (the toolkit):
+~~~~~~~~~~~~~~~~~~~~~~
+
+Well, this "skeletal" GLUT implementation is not mine. Thanks should go to
+Bernhard Tschirren, Mark Kilgard, Brian Paul and probably others (or probably
+not ;-). I only changed it to be self-standing (Allegro-free). The keyboard,
+mouse and timer drivers were inspired from an old project of mine (D3Xl) and
+fixed with some Allegro "infusions"; my deeply thanks to Shawn Hargreaves and
+co.
+
+My keyboard driver used only scancodes, but since GLUT requires ASCII values
+for keys, I borrowed the translation tables (and maybe more) from Allegro.
+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 call the
+destructors (let's hope), thus cleaning up your/my mess ;-)
+
+The mouse driver is far from complete (lack of positioning, drawing, etc),
+but is enough to make almost all the demos work.
+
+The timer is pretty versatile for it supports multiple timers with different
+frequencies. It may not be the most accurate timer in the known universe, but
+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, but all messages come
+in bulk! A bit of a hack, I know, but I think it's better than to miss them
+at all.
+
+Window creating defaults: 640x480x16 at (0,0), 8-bit stencil, 16-bit accum.
+
+
+
+Installation:
+~~~~~~~~~~~~~
+
+Unzip into the MESA directory, and type "make -f Makefile.DJ" to compile all
+libraries. Long filename support is required during compilation. The examples
+are not built automagically (see Pitfalls above).
+
+
+
+History:
+~~~~~~~~
+
+v0.1 feb-2002 initial release
+v0.2 ..soon..
+
+
+
+Contact:
+~~~~~~~~
+
+Name: Borca Daniel
+E-mail: dborca@yahoo.com
+WWW: http://www.geocities.com/dborca/