[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]


       DRNG ::= "DRNG" # { DRange DColor* DIndex* }

a <cell> is where the color or register appears within the range

The RNG_ACTIVE flags is set when the range is cyclable. A range
should only have the RNG_ACTIVE if it:
     1> contains at least one color register
     2> has a defined rate
     3> has more than one color and/or color register
If the above conditions are met then RNG_ACTIVE is a user/program
preference.  If the bit is NOT set the program should NOT cycle the
range.

The RNG_DP_RESERVED flags should always be 0!!!

typedef struct {
   UBYTE min;           /* min cell value */
   UBYTE max;           /* max cell value */
   SHORT rate;          /* color cycling rate, 16384 = 60 steps/second */
   SHORT flags;         /* 1=RNG_ACTIVE,4=RNG_DP_RESERVED */
   UBYTE ntrue;         /* number of DColor structs to follow */
   UBYTE nregs;         /* number of DIndex structs to follow */
   } DRange;

typedef struct { UBYTE cell; UBYTE r,g,b; } DColor; /* true color cell */
typedef struct { UBYTE cell; UBYTE index; } DIndex;
                                                /* color register cell */