Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo


Tree [r68] /

File Date Author Commit
Docs 2006-10-13 yorgle [r40] Interim checkin. Lots of stuff tweaked to acco...
Images 2006-08-11 yorgle [r3] Renamed these
Palettes 2006-05-23 yorgle [r2] Version 0.09 of the original uberpaint 4p source
Release 2006-05-23 yorgle [r2] Version 0.09 of the original uberpaint 4p source
archs 2008-06-24 yorgle [r50] Added a little tweak to get compiles on OS X 10...
src 2012-01-01 yorgle [r68] Update (testing)
0FILES 2006-09-28 yorgle [r22] added the 'this is beta' to the strings
BUGS 2008-06-26 yorgle [r60] "args" has become "prefs"
GNUmakefile 2008-07-02 yorgle [r66]
LICENSE 2006-05-23 yorgle [r1] Initial checkin of 0.09 source
README 2008-06-26 yorgle [r61] Flew in the INI parser from turaco
TODO 2008-06-24 yorgle [r51] Added notes about the new Menu mechanism

Read Me

             Pixel Pushing Paint Program


                          Scott Lawrence



This is a paint program... or at least it will be.  It will be a clone
of the Amiga version of the Electronic Arts' product, "Deluxe Paint",
written by Daniel Silva.  It will contain the functionality of Deluxe
Paint 2, and some of the functionality of Deluxe Paint 3.  There will
be more documentation for this as soon as it actually does something.

                      THIS IS A WORK IN PROGRESS!



                      KEYBOARD SHORTCUTS

Currently, the only way to interact with 4p is by using the keyboard 
shortcuts.  Here they are:

Toolbox Commands:

	key	action
	---	------
	a	Airbrush
	b	Brush Selector
	B	Restore last custom brush
	c	Unfilled circle
	C	Filled circle (buggy)
	d	Continuous Freehand Tool
	f	Flood Fill Tool
	K	Clear screen
	r	Unfilled Rectangle
	R	Filled Rectangle
	s	Dotted Freehand Tool
	t	Text
	u	Undo
	v	Straight Lines
	[ ]	Change foreground color
	{ }	Change background color
	,	Pick color Tool 
	.	One pixel brush, dotted freehand

Brush Commands:
	!	Matte drawing mode 	(shift-1)
	@	Color drawing mode 	(shift-2)
	#	Replace drawing mode 	(shift-3)

	h	Halve brush size
	H	Double brush size
	x	flip brush horizontally
	y	flip brush vertically
	z	rotate brush 90 degrees clockwise
	X	Double brush size horizontally
	Y	Double brush size vertically
	1	Switch to a circle brush
	2	Switch to a square brush
	3	Switch to a 3 point scatterbrush
	5	Switch to a 5 point scatterbrush
	- _	Decrease circle or square brush size
	+ =	Increase circle or square brush size

Special Keys:
	j	Spare Page
	J	Copy to Spare
	L	load in an Amiga ILBM IFF image file
	S	save out the current image as a 24 bit .ppm file
	q	strike twice to exit

                   NOTES ABOUT THE TOOLS

Select a region with the left mouse button to select it from the scene.
You can now draw with it.  If you select with the right mouse button,
that region is removed from the scene.

When you're using a custom brush (a brush you picked up using the 'b' tool,)
The three drawing modes come into play:

	Matte	- the color in the brush that was the same as the background
		  color when it was picked up is transparent.

	Color	- Same as Matte, but all colors in the brush are replaced
		  with the current foreground color.

	Replace	- The original image is used, intact, with no transparency.

Note, that when using the background color to draw with, Matte and Color
produce the same results.  this is intentional.

Also, once you create a custom brush, and you switch to the circle,
square, or 3/5 point scatterbrush, you can retrieve the last custom
brush you selected by hitting 'B'.

                            FILE FORMATS

4P will support IFF and PCX files natively.  It will also have various
file formats supported for exporting your image data.

Many file formats will be implemented as 'plug-ins', including PPM,
PNG, TIFF, JPG, GIF, and whatever else you want to implement.


Since this was developed exclusively using a video library which is
available for many platforms (Unux X, Linux console, Windows, BeOS,
Macintosh, etc) it should be easy to port to all of these platforms with
little effort.

The SDL library is available from http://www.libsdl.org

X-windows:  (Linux, SunOS)

    To build this, you should just have to type 'gmake'.  Be sure that you
    have the SDL development library properly installed on your system.
    4P has been built with libSDL version 1.2.1, and GCC version 3.3

Mac OS X:  (Macintosh)

    To build this, you will need the Mac OS X developers tools properly
    installed on your system.  Unzip this package (which you probably
    have already done) and just type 'make'.  It should build
    properly.  Project Builder is no longer required for the build

    4p has been built with 'cc' version 3.3 libSDL version 1.2.13
    under Macintosh OS X 10.3.9, 10.4, and 10.5.3

    (This is the current development environment.)

BeOS: (x86)

    You should be able to just type 'gmake' and it should build for you.
    This is untested, as I do not have BeOS installed on any machines 
    anymore. :(

AROS, AmigaDOS; (PPC, x86, 68k)

    These targets have worked in the past, but there are no explicit
    build rules defined for them currently.  If you can build it
    on one of these platforms, please let me know what was necessary
    to do so as far as procedure and toolset.  I would love to
    integrate your work back into the build process.

Other build environments:

    no information yet.


4p is built on top of a few other projects that are contained within
this source heirarchy.  

    JSUI  -  Jerry's simple user interface
	    Static dialog definitions, overridable widget calls,
	    basic graphics primitives (line, rectangle, circle, fill,
	    text, etc.) small footprint, intuitive, pretty looking.

    JIFF  -  Jerry's IFF library
	    Simple IFF Image loader/saver library, supporting most 
	    standard Amiga Image IFF block types.
    JPNM  -  Jerry's PNM library
	    Simple PPM/PNM/PGM Image loader/saver library
	    (temporarily removed)


What is Zarnox?   Zarnox is the name of the internal font.  It is also
is the name of the dude on the webpage, introducing the program.  He is
from a Tom7 font called "Tombots", which is available from


Thanks go out to:

	Pat Stein 

	Rob Reay

	and all of my LiveJournal friends 

For putting up with my ranting and complaining about bugs and the like
when something finally worked... (And extra thanks to Pat for the flood
fill algorithm, and the snazzy makefile!)


The latest version of this should be available off of 


Be sure you're using the latest version.


This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307