/* ------------------------------------------------------------------------
 * graphics/WarpText.h -- 'C' include for WarpText           Bill Kelly
 * text routines.               WT 2.0                       07/06/87
 *
 * Copyright 1987 by Bill W. Kelly.  All Rights Reserved.
 *
 * This is meant to go in the Graphics directory of the C includes.
 * Made for C by Anson Mah 06/08/87  |  06Jun87 added NewWarpInfo (billk)
 * ------------------------------------------------------------------------
 */

/* -------------------------------------------------------------------------
 * The following structure, WarpInfo, is used by these four routines:
 *   InitWarpInfo    (Initializes the WarpInfo structure for use)
 *   GetXY           (Returns current cursor position)
 *   GotoXY          (Sets cursor to given position)
 *   WarpText        (Emits text at ~13,500 characters per second)
 */

struct WarpInfo {               /* ...the <I> denotes internal use */
        APTR    wi_TextFont;    /*     Pointer to a TextFont structure */
        APTR    wi_BitMap;      /*     Pointer to a BitMap structure */
        UWORD   wi_WhichPlane;  /*     Which bitplane to render into */
        UWORD   wi_Left;        /*     Left edge of 'window' in char loc's */
        UWORD   wi_Top;         /*     Top edge of 'window' in char loc's */
        UWORD   wi_Width;       /*     Width of 'window' in char loc's */
        UWORD   wi_Height;      /*     Height of 'window' in char loc's */
        APTR    wi_WindowTop;   /* <I> Address of top of 'window' */
        APTR    wi_CurLine;     /* <I> Address of start of current line */
        APTR    wi_LastLine;    /* <I> Address of start of last line */
        UWORD   wi_CurX;        /* <I> Current X position */
        UWORD   wi_LastX;       /* <I> Maximum X position on a line */
        UWORD   wi_BPMod;       /* <I> # total possible chars on a line in bp */
        UWORD   wi_Modulo;      /* <I> Add this to get to next line */
};

/* -------------------------------------------------------------------------
 * The following structure, NewWarpInfo, is used by these three routines:
 *   SetupFont       (Copies font to given 2048 byte array for faster access)
 *   NewWarp         (Emits text at ~30,000 characters per second)
 *   XORCursor       (XOR's a visible cursor to the current xy location)
 */

struct NewWarpInfo {
        UWORD   nwi_XLoc;       /* Current X position in char. loc's. */
        UWORD   nwi_YLoc;       /* Current Y position in char. loc's. */
        APTR    nwi_BitPlane;   /* Address of bitplane to render text into. */
        APTR    nwi_FontData;   /* Address of 2048 byte array for font data. */
};

* ---------------------------- *
* End of "graphics/WarpText.h" *
* ---------------------------- *
