Home Programmierdokumentation RESIZE BITMAP (VDI 100, 2) Wer, wie, was. Wieso, weshalb, warum?

2.14 GET CHARACTER OUTLINE (VDI 243, 1)

Die Funktion v_get_outline() generiert aus einem Zeichen einen Bezierzug, mit dem man v_bez() oder v_bez_fill() aufrufen kann.

v_get_outline()

Dekl.:  int16 v_get_outline( int16 handle, uint16 index, int16 x_offset, int16 y_offset,
                             int16 *xyarr, uint8 *bezarr, int16 max_pts );
Aufruf: count = v_get_outline( handle, index, 0, 0, xyarr, bezarr, max_pts );

Variable         Belegung            Bedeutung
Eingaben:

contrl[0]        243                 v_get_outline
contrl[1]        0                   Einträge in ptsin
contrl[3]        8                   Einträge in intin
contrl[5]        1                   erweiterter Aufruf
contrl[6]        handle
intin[0]         index               Zeichen-Index
intin[1]         max_pts             Maximale auszugebende Punktanzahl
intin[2..3]      xyarray             Buffer für die Koordinaten
intin[4..5]      bezarray            Buffer für Punktinformationen (jump, bez)
intin[6]         x_offset            wird zu allen x-Koordinaten im xyarray addiert
intin[7]         y_offset            wird zu allen y-Koordinaten im xyarray addiert

Ausgaben:

contrl[2]        0                   Einträge in ptsout
contrl[4]        0                   Einträge in intout
intout[0]        count               Anzahl der ausgegebenen Punkte

Hinweis: Bisher sah es bei v_getoutline() (alte Speedo-Funktion) so aus, daß die Funktion bei Rotation überhaupt nicht funktionerte. Die Ausrichtung wurde ebenfalls nicht beachtet. Bei Speedo-Fonts entsprach die y-Koordinate 0 der obersten im Buchstaben benutzten Koordinate (befand sich also abhängig vom Buchstaben irgendwo innerhalb der Zeichenzelle), während bei Postscript und TrueType die y-Koordinate 0 immer der Zeichenzellenoberkante entsprach.


Home Programmierdokumentation RESIZE BITMAP (VDI 100, 2) Wer, wie, was. Wieso, weshalb, warum?