packages icon
This is PixMon-0.3, a pixel graphics backend.

It is intended by the following:

Many people just want to display bitmap data, w/o knowing any details
from X. PIXMON simply expects packages on standard input, starting with 
a header containing rightangle coordinates followed by a color value for 
each point in there.

It is also useful when porting brain damaged PC-software, which directly
writes into the video memory. 

Features:

	o Auto-rescale when changing the window size
	o Loadable colormaps, you can display the same data with
	  different colors
	o Autodetect of mono servers, using dithering instead of colors
	o Run length encoding supported

Drawbacks/problems:

	o No interaction
	o Could be faster
	o No private color maps
	o My first X-program, ugly code :-(

Soon to come:

	PlayMate, the PixMon package animator.

Options:

	-dx num
	-dy num
		numbers of dots in x/y-direction

	-width num
	-height num
	-geometry WxH+X+Y
		window geometry

	-scale float-num
		initial number of pixels per dot

	-cmap filename[.cmap]
		path name of a color table

	-dither
		force dithering even on color servers

	-fg
	-bg
		fore/background color (dithering only)


The package header is defined as 

	typedef struct {
        	unsigned short  magic;
	        unsigned short  type;
	        short           x;
	        short           y;
	        unsigned short  dx;
	        unsigned short  dy;
	        unsigned short  sizelo;
	        unsigned short  sizehi;
	} ImgHdr;

	magic:
		used to determine byte sex, must
		be initialized to PIX_MAGIC

	type:
		one of

		PIX_DATA
			Include the pixel data following 
			the header into the picture 
			(without displaying instantly)

		PIX_FLUSH
			Display the internal PixMap.

		PIX_DATA | PIX_FLUSH
			Include the pixel data following 
			the header into the picture 
			and display it instantly

	x, y:
		Position of this package relative to
		the upper-left corner of the window
	dx, dy:
		Width and height (in dots, not in pixels)
		of this package

	sizelo, sizehi:			
		Size of the following pixel data. If
		sizehi*0x10000+sizelo < dx*dy, PixMon
		expects run length encoded data.

Run length encoding:

		If RLE is detected (see above), the value
		PIX_RLE (0xFF) is treated as an escape value,
		so the number of colors is reduced by one.
		To encode your data, use the function rle_encode
		from rle.c.

		Example:
			char mybuffer[MBSIZE];
			...
			rle_encode(mybuffer, MBSIZE, PIX_RLE);
		

Color maps:
		PixMon loads a color map on startup time.
		Color map are ASCII files containing up
		256 lines. Each line defines a color's
		red, green and blue intensity (0..255).
		

Compatibility:
		PixMon was developed and tested on SunOS Release 4.1
		and Linux-0.99pl[0-7], both with X11R5. X11R4 servers
		also seem to work. Obsolete X-calls will be replaced, 
		so if it works with X11R3 now, the next release probably
		won't.

Bugs and comments to

/---------------------------------------------------------------------\
| Joachim Sprave                sprave@ls11.informatik.uni-dormund.de |
|                      //////\\                                       |
| Univ. Dortmund      /        \        P.O. Box 50 05 00             |
| Dept. CS           _|  _   _ |_       4600 Dortmund 50              |
| Systems Analysis  |.|-(.)-(.)+.|      Tel.: +49-231-755 2637        |
\------------------  \|    J   |/  -----------------------------------/
                      \   ---  /
                       \      /
                        "####"