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

For images, the application must create one or more instances of the Image
structure.

    struct Image
        {
        WORD LeftEdge;
        WORD TopEdge;
        WORD Width;
        WORD Height;
        WORD Depth;
        UWORD *ImageData;
        UBYTE PlanePick, PlaneOnOff;
        struct Image *NextImage;
        };

The meanings of the fields in the Image structure are:

LeftEdge, TopEdge
    The location of the image relative to its base position when it is
    drawn.  These offsets are added to the base position to determine the
    final location of the image data.

    The base position for images rendered with DrawImage() is taken from
    arguments passed in the function call.  For gadgets and menus, the
    base position is always the upper, left corner of the select box.
    For requesters the base position is always the upper, left corner of
    the requester.

    Negative values of LeftEdge and TopEdge move the position up and to
    the left of the base position.  Positive values move down and to the
    right.

Width, Height
    The width and height of the image.  Width contains the actual width
    of the image in pixels.  Height specifies the height of the image in
    pixels.

    The Width field of the Image structure contains the actual width in
    pixels of the widest part of the image, not how many pixels are
    contained in the words that define the image.

Depth
    The depth of the image, or the number of bitplanes used to define it.
    This is not the depth of the screen or window in which the image will
    be displayed, it is the actual number of bitplanes that are defined
    in the ImageData.

ImageData
    This is a pointer to the bits that define the image and determine the
    colors of each pixel.  Image data must be placed in Chip memory.  The
    data is organized as an array of 16 bit words whose size can be
    computed as follows:

        WordWidth = ((Width + 16) / 16);
        NumImageWords = WordWidth * Height * Depth;

    The width of the image is rounded up to the nearest word (16 bits)
    and extra trailing bits are ignored.  Each line of each bitplane must
    have enough words to contain the image width, with extra bits at the
    end of each line set to zero.  For example, an image 7 bits wide
    requires one word for each line in the bitplane, whereas an image 17
    bits wide requires two words for each line in the bitplane.

PlanePick
    PlanePick tells which planes of the target BitMap are to receive
    planes of image data.  This field is a bit-wise representation of
    bitplane numbers.  For each bit set in PlanePick, there should be a
    corresponding bitplane in the image data.

PlaneOnOff
    PlaneOnOff tells whether to set or clear bits in the planes in the
    target BitMap that receive no image data.  This field is a bit-wise
    representation of bitplane numbers.

NextImage
    This field is a pointer to another instance of an Image structure.
    Set this field to NULL if this is the last Image structure in the
    linked list.