Human Fly 2.1 - paintmodes

============================================================================

All paintmodes known to Human Fly are documented here. 

MOVE:    replaces destination pixel with source pixel
ADD:     ADDs source pixel to destination pixel
OR:      ORs source pixel with destination pixel
CEILADD: ADDs source pixel to destination pixel saturated
         NOTE: when needed, takes into account individual r,g,b saturation!

Pixels can be:

BYTE:    a byte that is simply a 1D intensity, no rgb info
WORD:    a highcolor word (16bits)

-----------------------------------------------------------------------------

The behaviour of all primitivepainters for each paintmode and pixelsize.
Note that modes are just left open and in fact are more basic modes. The
reason for this, is that there are alot of impractical combinations.

sprite:

        | BYTE | WORD
----------------------
MOVE    | yes  | yes
----------------------
OR      | yes  | yes
----------------------
ADD     | yes  | yes
----------------------
CEILADD | yes  | yes

line (flat):

        | BYTE | WORD
----------------------
MOVE    | yes  | yes
----------------------
OR      | yes  | yes
----------------------
ADD     | yes  | yes
----------------------
CEILADD | yes  | (*)

(*): MOVE mode instead

line (gouraud):

        | BYTE | WORD
----------------------
MOVE    | yes  | yes
----------------------
OR      | yes  | yes
----------------------
ADD     | yes  | yes
----------------------
CEILADD | yes  | (*)

(*): MOVE mode instead

polygon (flat):

        | BYTE | WORD
----------------------
MOVE    | yes  | yes
----------------------
OR      | yes  | yes
----------------------
ADD     | yes  | yes
----------------------
CEILADD | yes  | (*)

(*): MOVE mode instead

polygon (gouraud):

        | BYTE | WORD
----------------------
MOVE    | yes  | yes
----------------------
OR      | yes  | yes
----------------------
ADD     | yes  | yes
----------------------
CEILADD | yes  | (*)

(*): MOVE mode instead

polygon (texture):

        | BYTE | WORD
----------------------
MOVE    | yes  | yes
----------------------
OR      | yes  | yes
----------------------
ADD     | yes  | yes
----------------------
CEILADD | (*)  | (*)

(*): MOVE mode instead

polygon (alpha):

        | BYTE | WORD
----------------------
MOVE    | (*)  | yes
----------------------
OR      | (*)  | (*)
----------------------
ADD     | (*)  | (*)
----------------------
CEILADD | (*)  | (*)

(*): WORD/MOVE mode instead

polygon (bump):

        | BYTE | WORD
----------------------
MOVE    | (*)  | yes
----------------------
OR      | (*)  | (*)
----------------------
ADD     | (*)  | (*)
----------------------
CEILADD | (*)  | (*)

(*): WORD/MOVE mode instead

