HomeLine-ADer Line-A-EmulatorDie negativen Line-A Variablen

6.2 LINEA

Für die Übergabe der Parameter an die Line-A Funktionen wird eine Struktur benutzt. Dieser statisch angelegte Line-A Parameterblock hat den nachfolgend beschriebenen Aufbau. Die Zahl im Kommentar gibt jeweils den Offset der Komponente zum Anfang der Struktur an.

typedef struct
{
  int16_t  v_planes,               /*   0: # Bitplanes (1, 2 od. 4)     */
           v_lin_wr,               /*   2: # Bytes/Scanline             */
           *contrl,
           *intin,
           *ptsin,                 /*  12: Koordinaten-Eingabe          */
           *intout,
           *ptsout,                /*  20: Koordinaten-Ausgabe          */
           fg_bp_1,                /*  24: Plane 0                      */
           fg_bp_2,                /*  26: Plane 1                      */
           fg_bp_3,                /*  28: Plane 2                      */
           fg_bp_4,                /*  30: Plane 3                      */
           lstlin;                 /*  32: letzten Pixel einer Linie    */
                                   /*      zeichen (1) oder nicht (0)   */
  uint16_t ln_mask;                /*  34: Linienmuster                 */
  int16_t  wrt_mode,               /*  36: Schreib-Modus                */
           x1, y1, x2, y2;         /*  38: Koordinaten                  */
  void     *patptr;                /*  46: Füllmuster                   */
  uint16_t patmsk;                 /*  50: .. dazugehörige Maske        */
  int16_t  multifill,              /*  52: Füllmuster für Planes        */
           clip,                   /*  54: Flag für Clipping            */
           xmn_clip, ymn_clip,
           xmx_clip, ymx_clip,     /*  60: Clipping Rechteck            */
                                   /*      Rest für text_blt:           */
           xacc_dda,               /*  64: vor Textausgaben auf 0x8000  */
                                   /*      setzen                       */
           dda_inc,                /*  66: Vergrößerungsfaktor          */
           t_sclsts,               /*  68: Vergrößerungsrichtung        */
           mono_status,            /*  70: Proportionalschrift          */
           sourcex, sourcey,       /*  72: Koordinaten im Font          */
           destx, desty,           /*  76: Bildschirmkoordinaten        */
           delx, dely;             /*  80: Breite und Höhe des Zeichen  */
  FONT_HDR *fbase;                 /*  84: Start der Font-Daten         */
  int16_t  fwidth,                 /*  88: Breite des Fontimage         */
           style;                  /*  90: Schreibstil                  */
  uint16_t litemask,               /*  92: Maske für Light              */
           skewmask;               /*  94: Maske für Kursiv             */
  int16_t  weight,                 /*  96: Breite bei Bold              */
           r_off,                  /*  98: Kursiv-Offset rechts         */
           l_off,                  /* 100: Kursiv-Offset links          */
           scale,                  /* 102: Vergrößerung ja/nein         */
           chup,                   /* 104: Rotationswinkel *10          */
           text_fg;                /* 106: Textfarbe                    */
  void     *scrtchp;               /* 108: Buffer                       */
  int16_t  scrpt2,                 /* 112: Index in Buffer              */
           text_bg,                /* 114: unbenutzt                    */
           copy_tran,              /* 116: --                           */
           (*fill_abort)( void );  /* 118: Testet Seed Fill             */
} LINEA;

HomeLine-ADer Line-A-EmulatorDie negativen Line-A Variablen