
Demo programs in this directory:

vgatest

	Mode test program.

fun

	Random moving pixels accumulate in clusters. Uses virtual screens
	for frame animation.

mousetest

	Simple program to test mouse functionality. Left button changes
	color, right button exits.

keytest

	Similar program to test low-level keyboard interface.

scrolltest

	Smooth scrolling demo. Uses three different techniques. Useful for
	testing Mode X functionality (not that I would recommend it over
	320x200x256 linear).

speedtest

	Video memory speed tester.

testgl

	Demo program for vgagl framebuffer library.

testlinear

	Program to test linear addressing on Cirrus cards (and on Mach32).

testaccel

	Program to test the old blit functions in a screen mode. Checks
	the 8-bit wide color lookup tables on Mach32's with type 2 DACs
	as well. [I think '6bpp' and '8bpp' are silly names for the 8-bit
	LUT thing -- bpp is bits per pixel, in the framebuffer - HH :-)]

accel

	Test new-style accelerated functions.

	Results on a Cirrus GD5434-E with 2Mb:
	640x480x256 60 Hz
		FillBox: 200.3 Mpixels/s (200.3 Mbytes/s)
		ScreenCopy: 51.0 Mpixels/s (51.0 Mbytes/s)
		Scroll Demo: 50.5 Mpixels/s (50.5 Mbytes/s)
		FillBox XOR: 83.2 Mpixels/s (83.2 Mbytes/s)
	320x200x256 70 Hz
		FillBox: 200.1 Mpixels/s (200.1 Mbytes/s)
		ScreenCopy: 52.3 Mpixels/s (52.3 Mbytes/s)
		Scroll Demo: 51.2 Mpixels/s (51.2 Mbytes/s)
		FillBox XOR: 87.1 Mpixels/s (87.1 Mbytes/s)
	640x480x32K 60 Hz
		FillBox: 90.9 Mpixels/s (181.8 Mbytes/s)
		ScreenCopy: 23.1 Mpixels/s (46.3 Mbytes/s)
		Scroll Demo: 23.0 Mpixels/s (46.1 Mbytes/s)
		FillBox XOR: 37.2 Mpixels/s (74.5 Mbytes/s)
	640x480x16M (32-bit) 60 Hz
		FillBox: 35.5 Mpixels/s (142.3 Mbytes/s)
		ScreenCopy: 9.3 Mpixels/s (37.3 Mbytes/s)
		Scroll Demo: 9.2 Mpixels/s (37.1 Mbytes/s)
		FillBox XOR: 14.6 Mpixels/s (58.6 Mbytes/s)

	On a Cirrus Logic 5426 VLB (50 MHz MCLK):
	640x480x256 60 Hz
		FillBox: 32.8 Mpixels/s (32.8 Mbytes/s)
		ScreenCopy: 16.4 Mpixels/s (16.4 Mbytes/s)
		Scroll Demo: 16.3 Mpixels/s (16.3 Mbytes/s)
		FillBox XOR: 16.5 Mpixels/s (16.5 Mbytes/s)
	640x480x32K 60 Hz
		FillBox: 12.2 Mpixels/s (24.4 Mbytes/s)
		ScreenCopy: 6.1 Mpixels/s (12.2 Mbytes/s)
		Scroll Demo: 6.0 Mpixels/s (12.1 Mbytes/s)
		FillBox XOR: 6.1 Mpixels/s (12.2 Mbytes/s)
	Tweaked to 60 MHz MCLK:
	640x480x256 60 Hz
		FillBox: 42.1 Mpixels/s (42.1 Mbytes/s)
		ScreenCopy: 21.0 Mpixels/s (21.0 Mbytes/s)
		Scroll Demo: 20.9 Mpixels/s (20.9 Mbytes/s)
		FillBox XOR: 21.1 Mpixels/s (21.1 Mbytes/s)
	640x480x32K 60 Hz
		FillBox: 16.7 Mpixels/s (33.5 Mbytes/s)
		ScreenCopy: 8.3 Mpixels/s (16.7 Mbytes/s)
		Scroll Demo: 8.3 Mpixels/s (16.7 Mbytes/s)
		FillBox XOR: 8.3 Mpixels/s (16.7 Mbytes/s)

	You're encouraged to send in more data (send to hhanemaa@cs.ruu.nl).

There's also a 3D demo binary included in this directory. It has been in a
similar state for several months now, but I'm planning to get some work
done (although it probably won't be the amazing multi-player networked
3D lightsource-shaded real-time VGA virtual reality simulation). I'll
release the source code at some point (when it has some degree of
flexibility). I'm sorry that there's no scene description file; it will
come. So now you know you can do this kind of thing in Linux. And it's
practically 100% C code.

You can set the graphics mode to be used with the GSVGAMODE environment
variable (e.g. G640x480x256). All linear 256 color, 32K color and 16M color
modes are supported, with page flipping used if available. Planar 256 color
VGA modes also work. This should do 800x600 full screen 3D animation at near
10 fps with a good system.

Request: Please report if page flipping goes wrong on a particular chipset
(e.g. ET4000, Trident) in 320x200x256. Also 32-bit pixel truecolor
modes don't work correctly, this will be fixed.

The user interface is somewhat primitive at this point:

- Use the mouse to rotate.

- Left button accelerates, right decelerates.

- Press w to move upwards, s to go down again.

- Use r and f to control the zoom factor.

Note that the light source rotates quickly at an infinite distance. This
is not something that will easily occur naturally (as far as I know)...

