
spic v0.7

Notes for v0.7:
The cursor keys may work now if they didn't work previously. Hacked for
direct PPM and TGA support and GIF support via JPEG library.
Compiles with svgalib v0.91+. v0.94+ recommended.

Requires svgalib to compile (svgalib can be found at sunsite.unc.edu:
/pub/Linux/libs); make sure it replaces any old vgalib version lying around
in /usr/lib (i.e. do a make). 


This is a picture viewer for Linux using svgalib. It should work with any VGA
card at 320x200x256; chipsets supported by svgalib offer a number of higher
resolutions and hicolor/truecolor support.

This program uses vgagl framebuffer library from svgalib. It also uses the
Independent JPEG Group's jpeg library.

If svgalib supports a hicolor/truecolor mode of your graphics card (i.e.
Cirrus/ET4000), you can view raytraced and otherwise rendered images in
Linux in glorious color. If not, you can still view them in 256 colors (in
spic or in X). The JPEG group's cjpeg program can be used to convert to JPEG
format (PPM is now directly supported). Most raytracers compile
straightforwardly (POVRay 1.0: exclude matherr stuff); the SIPP library is a
nice fast comprehensible C-source level environment. Rendering in the
background with a suitable nice level really shows off Linux multitasking.


Features:

	Can read and show any size GIF or JPEG (JFIF) file. Also PPM and
	TARGA.

	The viewing window can be freely shifted over pictures that are
	larger than the screen resolution.

	Mouse controlled smooth scrolling with hardware logical screens,
	taking full advantage of video memory.

	Scaling to screen resolution.

	Environment variables for default settings.

	Memory usage is now fairly reasonable.

	No image manipulation functions whatsoever.

	Interrupting with ctrl-c works properly.

Run program without arguments for configuring instructions.


Keys:
	cursor keys	Shift screen window (if picture is larger than
			logical screen).
	f		Scale picture to (logical) screen resolution.
	u		Scroll up.
	d		Scroll down.
	l		Scroll left.
	r		Scroll right.
	m		Select mouse scrolling mode. Press the button to	
			return to keys.
	q		Quit.


This program is partly based on the work of the Independent JPEG Group (who
else?).

Files:

spic/README
spic/config.h		Configuration
spic/jconfig.h		Header file for JPEG library
spic/jinclude.h		JPEG library header file
spic/jpeg.c		Decompressing interface to JPEG library
spic/jpegdata.h		JPEG library header file
spic/libjpeg.a		JPEG library in object format
spic/libmouse.a		Small low-level mouse library (only for svgalib < 0.91)
spic/makefile		Makefile
spic/mouse.h		Header file for mouse library
spic/neptune.jpg	Example JPEG picture
spic/shared.h		Definitions shared between modules
spic/spic.c		Main source

Took the trouble to implement direct reading of GIF/PPM/TGA with the JPEG
library using parts of the code from seejpeg by Evan Harris. However, it's a
very dirty hack (I basically used a genetic cut-and-paste algorithm approach
writing it), but it seems to work.

For an alternative viewer, look at seejpeg on sunsite.unc.edu,
/pub/Linux/apps/graphics, or zgv on tsx-11.mit.edu.

Harm Hanemaayer (bark bark)
hhanemaa@cs.ruu.nl
