Short:    Datatype for IFF-RGFX-Format (43.9)
Author:   astegema@ix.urz.uni-heidelberg.de (Achim Stegemann)
Uploader: astegema@ix.urz.uni-heidelberg.de (Achim Stegemann)
Type:     util/dtype

Version:  43.9

Requires minimum:
 * OS 3.0
 * MC68020
 * xpkmaster.library V4
 * render.library V29 (included).

Additionally recommended:
 * CyberGraphX with picture.datatype V43 for 24-bit images.
 * MUI 3.8 for the preferences.


With the help of the rgfx.datatype, your datatype sytem is able to read images
coded in the new IFF-RGFX-Format created by Andreas Kleinert.

This archive is freeware !
Do with it what you want, as long as you do not remove any files from this archive !

The archive also contains the utility 'DT2RGFX'. This converts a datatype picture
to the new IFF-RGFX-Format !

The datatype supports the DTM_WRITE-RAW method, to save in own format.

Changes since V43.8:

20-Oct-98  V43.9
* Changed flags in memory allocation, so it can be used with VMM (Virtual Memory Manager).
* Added parameter "MODE" and "PASSWORD" to the converter to select packingmode and password.
  Datatype and prefs now handles these added parameters too !
* Fixed a bug for compressed planar pics. Wrong unpacking.
* Fixed a bug in V40 mode. Pics with depth <=8 had wrong color palette and depth.
* Included source code in C++.
* Improved libinit.

The full render.library archive is also available in Aminet:dev/misc.

Internet: http://www.rzuser.uni-heidelberg.de/~astegema


Important note about the source code:
*************************************

The source has been written in C++ using Maxon-C++ V3.
You will find several instructions a bit strange as I have converted all C-style OS-structures
to C++ OS-structures.
E.g.

struct Library
{
struct Node lib_Node;
UBYTE lib_Flags;
UBYTE lib_pad;
UWORD lib_NegSize;
UWORD lib_PosSize;
UWORD lib_Version;
UWORD lib_Revision;
APTR lib_IdString;
ULONG lib_Sum;
UWORD lib_OpenCnt;
};

has been converted to

struct Library:Node // !!!!!
{
UBYTE lib_Flags;
UBYTE lib_pad;
UWORD lib_NegSize;
UWORD lib_PosSize;
UWORD lib_Version;
UWORD lib_Revision;
APTR lib_IdString;
ULONG lib_Sum;
UWORD lib_OpenCnt;
};

This simplifies the code as I don't always need to cast variables to fit arguments
in functions.
Additionally C++ allows to leave away the 'struct' keyword !

If you like to recompile the source-code for your compiler, you need to adjust the
source-code to C. But this should be no problem.
