Diese Bibliothek enthält Funktionen, um Arbeitsgeräte zu öffnen oder zu schließen und Zeichensätze zu laden. Darüber hinaus kann über diese Funktionen die Bezier-Spline Rrzeugung manipuliert, und die Verwaltung des Vektorzeichen-Caches gesteuert werden.
Insgesamt stehen die folgenden Routinen zur Verfügung:
• v_bez_on | Bezier-Spline-Erzeugung einschalten. |
• v_bez_off | Bezier-Spline-Erzeugung ausschalten. |
• v_clr_cachedir | z.Zt. keine Informationen bekannt. |
• v_clrwk | Reinitialisierung einer Arbeitsstation. |
• v_clsbm | Offscreen-Bitmap schließen. |
• v_clsvwk | Virtuelle Arbeitstation abmelden. |
• v_clswk | Physikalische Arbeitstation abmelden. |
• v_def_cachedir | z.Zt. keine Informationen bekannt. |
• v_delete_cache | z.Zt. keine Informationen bekannt. |
• v_fgetoutline | z.Zt. keine Informationen bekannt. |
• v_flushcache | Vektorzeichen-Cache löschen. |
• v_get_cachedir | z.Zt. keine Informationen bekannt. |
• v_get_outline | Outline eines Zeichens berechnen, erweiterte Version. |
• v_getoutline | Outline eines Zeichens berechnen. |
• v_killoutline | Speicher zur Outline-Generierung freigeben. |
• v_loadcache | Vektorzeichen-Cache laden. |
• v_open_bm | Moderne Variante zum öffnen von Offscreen-Bitmap |
• v_opnbm | Offscreen-Bitmap öffnen. |
• v_opnprn | Druckertreiber öffnen |
• v_opnvwk | Virtuelle Arbeitstation anmelden. |
• v_opnwk | Physikalische Arbeitstation anmelden. |
• v_pat_rotate | |
• v_resize_bm | Größe einer Offscreenbitmap verändern |
• v_savecache | Vektorzeichen-Cache speichern. |
• v_set_app_buff | Speicher für Bezier-Spline-Erzeugung reservieren. |
• v_set_cachedir | z.Zt. keine Informationen bekannt. |
• v_updwk | Gepufferte Befehle einer Workstation ausführen. |
• vs_backmap | z.Zt. keine Informationen bekannt. |
• vs_clip | Clipping setzen oder aufheben. |
• vs_outmode | z.Zt. keine Informationen bekannt. |
• vs_use_fonts | z.Zt. keine Informationen bekannt. |
• vst_ex_load_fonts | Zusätzliche Zeichensätze laden. |
• vst_load_fonts | Zusätzliche Zeichensätze laden. |
• vst_unload_fonts | Zeichensätze entfernen. |
Querverweis: Workstations des VDI Style-Guidelines
Name: | »Disable Bezier capabilities« - schaltet die Bezier-Spline
Erzeugung aus.
|
VDI-Nummer: | 11 (Unterfunktion 13)
|
Deklaration: | void v_bez_off ( int16_t handle );
|
Beschreibung: | Die Funktion deaktiviert die Bezier-Spline-Erzeugung des GDOS
auf der Workstation mit der Kennung handle.
Hinweis: Obwohl mittels handle eine spezielle Workstation spezifiziert wird, gilt die Deaktivierung für alle Arbeitsstationen. |
Ergebnis: | Die Funktion liefert kein Ergebnis.
|
Verfügbar: | ab GEM/3 Release 3.1, ab SpeedoGDOS 4.00 und ab NVDI 2.10
|
Gruppe: | Kontrollfunktionen
|
Querverweis: | Binding v_bez_on v_bez v_bez_fill v_bez_qual
v_set_app_buff
|
C: | void v_bez_off ( int16_t handle );
| ||||||||||||||||||||||||
Umsetzung: |
void v_bez_off (int16_t handle) { contrl[0] = 11; contrl[1] = 0; contrl[3] = 0; contrl[5] = 13; contrl[6] = handle; vdi (); } | ||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Enable Bezier capabilities« - schaltet die Bezier-Spline
Erzeugung ein.
|
VDI-Nummer: | 11 (Unterfunktion 13)
|
Deklaration: | int16_t v_bez_on ( int16_t handle );
|
Beschreibung: | Die Funktion aktiviert die Bezier-Spline-Erzeugung des GDOS auf
der Workstation mit der Kennung handle.
Hinweis: Obwohl mittels handle eine spezielle Workstation spezifiziert wird, gilt die Aktivierung für alle Arbeitsstationen. Diese Funktion ist aus Kompatibilitätsgründen vorhanden. Sie sorgt dafür, daß Aufrufe von v_pline ohne die Unterfunktionsnummer 13 als Aufrufe von v_bez und Aufrufe von v_fillarea ohne die Unterfunktionsnummer als Aufrufe von v_bez_fill aufgefaßt werden. Die Funktion wird normalerweise nur verwendet, um festzustellen, ob Beziers vorhanden sind. |
Ergebnis: | Die Funktion liefert einen Wert von 0 (keine Beziers) bis 7
(maximale Qualität), der ein ungefähres Maß für die
Kurvenqualität darstellt. Normalerweise kann man von diesem Wert nur
ableiten, ob Beziers vorhanden sind.
|
Verfügbar: | ab GEM/3 Release 3.1, ab SpeedoGDOS 4.00 und ab NVDI 2.10
|
Gruppe: | Kontrollfunktionen
|
Querverweis: | Binding v_bez_off v_bez v_bez_fill v_bez_qual
v_set_app_buff
|
C: | int16_t v_bez_on ( int16_t handle );
| |||||||||||||||||||||||||||
Umsetzung: |
int16_t v_bez_on (int16_t handle) { contrl[0] = 11; contrl[1] = 1; contrl[3] = 0; contrl[5] = 13; contrl[6] = handle; vdi (); return ( intout[0] ); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Clear Workstation« - löscht das Arbeitsgerät
| ||||||||||||||
VDI-Nummer: | 3
| ||||||||||||||
Deklaration: | void v_clrwk ( int16_t handle );
| ||||||||||||||
Beschreibung: | Die Funktion versetzt das Arbeitsgerät mit der Kennung
handle in einen genau definierten Anfangszustand. Es gilt:
Hinweis: Durch einen v_opnwk-Aufruf wird das jeweilige Gerät (z.B. der Bildschirm) automatisch gelöscht. | ||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||
Verfügbar: | Supported by all drivers.
| ||||||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||||||
Querverweis: | Binding v_form_adv
|
C: | void v_clrwk ( int16_t handle );
|
Umsetzung: |
void v_clrwk (int16_t handle) { contrl[0] = 3; contrl[1] = 0; contrl[3] = 0; contrl[6] = handle; vdi (); } |
GEM-Arrays: |
|
Name: | »Close Bitmap« - schließt eine Offscreen Bitmap
|
VDI-Nummer: | 101 (Unterfunktion 1)
|
Deklaration: | void v_clsbm ( int16_t handle );
|
Beschreibung: | Die Funktion v_clsbm() schließt die mit handle
bezeichnete Bitmap. Wenn Speicher beim v_opnbm vom VDI alloziert
wurde, gibt sie diesen Speicher wieder frei.
|
Ergebnis: | Die Funktion hat kein direktes Funktionsergebnis.
|
Verfügbar: | ab EdDI-Version 1.00
|
Gruppe: | Kontrollfunktionen
|
Querverweis: | Binding NVDI Off-Screen-Bitmaps v_opnbm
|
C: | void v_clsbm ( int16_t handle );
| ||||||||||||||||||||||||
Umsetzung: |
void v_clsbm (int16_t handle) { contrl[0] = 101; contrl[1] = 0; contrl[3] = 0; contrl[5] = 1; contrl[6] = handle; vdi (); } | ||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Close virtual Screen Workstation« - schließt eine
Bildschirm-Workstation.
|
VDI-Nummer: | 101
|
Deklaration: | void v_clsvwk ( int16_t handle );
|
Beschreibung: | Die Funktion schließt die Workstation mit der Kennung
handle, die vorher per v_opnvwk geöffnet worden ist.
Hinweis: Diese Funktion darf nicht benutzt werden, wenn beim Öffnen der Workstation ein Fehler aufgetreten ist. |
Ergebnis: | Die Funktion liefert kein Ergebnis.
|
Verfügbar: | Supported by all drivers.
|
Gruppe: | Kontrollfunktionen
|
Querverweis: | Binding v_opnvwk v_clswk
|
C: | void v_clsvwk ( int16_t handle );
|
Umsetzung: |
void v_clsvwk (int16_t handle) { contrl[0] = 101; contrl[1] = 0; contrl[3] = 0; contrl[6] = handle; vdi (); } |
GEM-Arrays: |
|
Name: | »Close Workstation« - schließt ein geöffnetes
Ein-/Ausgabegerät
| ||||||||||||||
VDI-Nummer: | 2
| ||||||||||||||
Deklaration: | void v_clswk ( int16_t handle );
| ||||||||||||||
Beschreibung: | Die Funktion schließt das Gerät mit der Kennung
handle, welches zuvor durch einen v_opnwk Aufruf geöffnet
worden ist.
Folgende Auswirkungen hat der Funktionsaufruf auf die verschiedenen Gerätetypen:
Hinweis: Vor dem Aufruf dieser Funktion sollte darauf geachtet werden, daß alle virtuellen Workstations auf dem entsprechenden Gerät geschlossen sind. | ||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||
Verfügbar: | Available only with some form of GDOS.
| ||||||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||||||
Querverweis: | Binding GDOS v_opnwk v_opnvwk v_clsvwk
|
C: | void v_clswk ( int16_t handle );
|
Umsetzung: |
void v_clswk (int16_t handle) { contrl[0] = 2; contrl[1] = 0; contrl[3] = 0; contrl[6] = handle; vdi (); } |
GEM-Arrays: |
|
Name:»Flush | Outline cache« - Vektorzeichen Cache löschen.
|
VDI-Nummer: | 251
|
Deklaration: | int16_t v_flushcache ( int16_t handle );
|
Beschreibung: | Die Funktion löscht den Inhalt des Vektorzeichen-Caches, der
Bitmaps von Vektorzeichen enthält.
Der Parameter handle bezeichnet die Kennung der entsprechenden Workstation. |
Ergebnis: | Die Funktion liefert im Fehlerfall den Wert -1, anderenfalls
den Wert 0.
|
Verfügbar: | FSMGDOS, ab SpeedoGDOS 4.00 und ab NVDI 3.00, ein Binding wird
allerdings bei NVDI nicht angegeben.
|
Gruppe: | Kontrollfunktionen
|
Querverweis: | Binding v_loadcache v_savecache vqt_cachesize
|
C: | int16_t v_flushcache ( int16_t handle );
|
Umsetzung: |
int16_t v_flushcache ( int16_t handle ); { contrl[0] = 251; contrl[1] = 0; contrl[3] = 0; contrl[6] = handle; vdi (); return ( intout[0] ); } |
GEM-Arrays: |
|
Name: | »Get character outline« - Outline eines Zeichens berechnen.
| ||||||||||||||||
VDI-Nummer: | 243
| ||||||||||||||||
Deklaration: | void v_getoutline ( int16_t handle, int16_t ch, int16_t
*xyarray, int8_t *bezarray, int16_t maxpts, int16_t *count );
| ||||||||||||||||
Beschreibung: | Die Funktion erzeugt das Outline, welches zu einem bestimmten
Zeichen gehört. Es gilt:
Hinweis: Die gelieferten Werte können direkt an die Ausgabefunktion für Bezier-Splines (v_bez, v_bez_fill) weitergereicht werden. Wenn man die Informationen dieser Funktion z.B. als Vektorgrafik benutzen möchte, so empfiehlt es sich, vor dem Aufruf eine große Texthöhe einzustellen. Andernfalls ist die Qualität des zurückgelieferten Beziers recht mager, da von der internen Darstellung in 1/65536 Pixeln auf Pixel gerundet wird, d.h. 16 Bit fallen weg. Die Texthöhe sollte sich an der Rasterauflösung des Fonts orientieren, die auch von der Funktion vqt_fontheader zurückgeliefert wird. | ||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||
Verfügbar: | ab SpeedoGDOS 4.00 und an NVDI 3.00
| ||||||||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||||||||
Querverweis: | Binding v_get_outline v_killoutline SpeedoGDOS NVDI
fix31
|
C: | void v_getoutline ( int16_t handle, int16_t ch, int16_t
*xyarray, int8_t *bezarray, int16_t maxpts, int16_t *count );
| ||||||||||||||||||||||||||||||||||||
Umsetzung: |
void v_getoutline (int16_t handle, int16_t ch, int16_t *xyarray, int8_t *bezarray, int16_t maxpts, int16_t *count) { intin[0] = ch; intin[1] = maxpts; intin[2..3] = xyarray; intin[4..5] = bezarray; contrl[0] = 243; contrl[1] = 0; contrl[3] = 6; contrl[6] = handle; vdi (); *count = intout[0]; } | ||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Get character outline« - Outline eines Zeichens berechnen.
| ||||||||||||||||||
VDI-Nummer: | 243 (Unterfunktion 1)
| ||||||||||||||||||
Deklaration: | int16_t v_get_outline ( int16_t handle, uint16_t index,
uint16_t x_offset, uint16_t y_offset, int16_t *xyarray, uint8_t
*bezarray, int16_t max_pts );
| ||||||||||||||||||
Beschreibung: | Die Funktion erzeugt das Outline, welches zu einem bestimmten
Zeichen gehört.
Die Funktion
Hinweis: Die gelieferten Werte können direkt an die Ausgabefunktion für Bezier-Splines (v_bez, v_bez_fill) weitergereicht werden. 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. | ||||||||||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis die Anzahl der ausgegebenen
Punkte zurück.
| ||||||||||||||||||
Verfügbar: | ab NVDI 5.00
| ||||||||||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||||||||||
Querverweis: | Binding v_getoutline v_killoutline SpeedoGDOS NVDI
fix31
|
C: | int16_t v_get_outline ( int16_t handle, uint16_t index,
uint16_t x_offset, uint16_t y_offset, int16_t *xyarray, uint8_t
*bezarray, int16_t max_pts );
| |||||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t v_get_outline ( int16_t handle, uint16_t index, uint16_t x_offset, uint16_t y_offset, int16_t *xyarray, uint8_t *bezarayr, int16_t max_pts ) { intin[0] = index; intin[1] = max_pts; intin[2..3] = xyarray; intin[4..5] = bezarray; intin[6] = x_offset; intin[7] = y_offset; contrl[0] = 243; contrl[1] = 0; contrl[3] = 8; contrl[5] = 1; contrl[6] = handle; vdi (); return ( intout[0] ); } | |||||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Kill FSM outline« - Speicher zur Outline-Generierung
freigeben.
| ||||||||
VDI-Nummer: | 242
| ||||||||
Deklaration: | void v_killoutline ( int16_t handle, fsm_component_t *component
);
| ||||||||
Beschreibung: | Die Funktion gibt den Speicher zur Erzeugung von Outlines frei.
Es gilt:
Hinweis: Die Funktion sollte stets aufgerufen werden, sobald ein Outline nicht mehr benötigt wird. Anderenfalls läuft man Gefahr, keinen freien Speicher mehr zu besitzen. | ||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||
Verfügbar: | in FSMGDOS , ab SpeedoGDOS 4.00 nicht mehr notwendig.
| ||||||||
Gruppe: | Kontrollfunktionen
| ||||||||
Querverweis: | GDOS SpeedoGDOS v_getoutline
|
Name: | »Load Outline cache« - Vektorzeichen-Cache laden.
| ||||||||||||||
VDI-Nummer: | 250
| ||||||||||||||
Deklaration: | int16_t v_loadcache ( int16_t handle, int8_t *filename, int16_t
mode );
| ||||||||||||||
Beschreibung: | Die Funktion füllt den Vektorzeichen-Cache mit dem Inhalt
einer Datei. Es gilt:
| ||||||||||||||
Ergebnis: | Die Funktion liefert im Fehlerfall den Wert -1, anderenfalls
den Wert 0.
| ||||||||||||||
Verfügbar: | FSMGDOS, ab SpeedoGDOS 4.00
| ||||||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||||||
Querverweis: | Binding v_flushcache v_savecache vqt_cachesize
|
C: | int16_t v_loadcache ( int16_t handle, int8_t *filename, int16_t
mode );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int16_t v_loadcache ( int16_t handle, int8_t *filename, int16_t mode ) { intin[0] = mode; intin[1..n] = filename; contrl[0] = 250; contrl[1] = 0; contrl[3] = 1+n; contrl[6] = handle; vdi (); return ( intout[0] ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Load Outline cache« - Vektorzeichen-Cache laden.
| ||||||||||||||
VDI-Nummer: | 226 (Subcode 7)
| ||||||||||||||
Deklaration: | int16_t v_load_cache ( int16_t handle, int8_t *filename,
int16_t mode );
| ||||||||||||||
Beschreibung: | Die Funktion füllt den Vektorzeichen-Cache mit dem Inhalt
einer Datei. Es gilt:
| ||||||||||||||
Ergebnis: | Die Funktion liefert im Fehlerfall den Wert -1, anderenfalls
den Wert 0.
| ||||||||||||||
Verfügbar: | Ab SpeedoGDOS 5.1
| ||||||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||||||
Querverweis: | Binding v_flushcache v_savecache v_loadcache
vqt_cachesize
|
C: | int16_t v_load_cache ( int16_t handle, int8_t *filename,
int16_t mode );
| |||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t v_load_cache ( int16_t handle, int8_t *filename, int16_t mode ) { intin[0] = mode; intin[1..n] = filename; contrl[0] = 226; contrl[1] = 0; contrl[3] = 1+n; contrl[5] = 7; contrl[6] = handle; vdi (); return ( intout[0] ); } | |||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Open Bitmap« - öffnet eine Offscreen Bitmap
| ||||||||||||||||||||||||||||||||||||||||||
VDI-Nummer: | 100 (Unterfunktion 3)
| ||||||||||||||||||||||||||||||||||||||||||
Deklaration: | int16_t v_open_bm ( int16_t base_handle, GCBITMAP *bitmap,
int16_t color_flags, int16_t unit_flags, int16_t pixel_width, int16_t
pixel_height );
| ||||||||||||||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion v_open_bm dient zur Erzeugung von
Offscreen-Bitmaps. Man kann ihr entweder die Größe eines Bitmap
angeben, die Sie allozieren soll, oder ihr eine Bitmap übergeben. Die
Bitmap wird im gleichen Format wie die des Bildschirms verwaltet,
wodurch schnelles Kopieren zwischen beiden möglich ist.
v_open_bm ist die moderne Variante von v_opnbm und arbeitet mit derselben Bitmap- und Pixelformatbeschreibung wie vr_transfer_bits.
Zusätzlich wird in pixel_width und pixel_height die Pixelgröße übergeben, damit die Fonts richtig skaliert werden können. Falls einer der beiden Einträge 0 ist, werden sie von base_handle übernommen. Die Größenangaben werden abhängig von unit_flags interpretiert: -1: Angaben in dpi 0: Angaben in Mikrometern 1: Angaben in 1/10 Mikrometern 2: Angaben in 1/100 Mikrometern 3: Angaben in 1/1000 Mikrometern Da <ctab> ignoriert wird, wird für die Bitmap die der Bittiefe entsprechende Systemfarbtabelle im Farbraum CSPACE_RGB (RGB) angelegt. Für mögliche spätere Erweiterungen in diesem Bereich ist die Variable <zero>, die daher jetzt auf 0 gesetzt werden muß. | ||||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Wenn die Funktion erfolgreich ist, wird ein von 0 verschiedenes
Handle zurückgeliefert. Wenn das VDI den Speicher für die Bitmap
angefordert hat und beim Aufruf eine leere (oder nur teilweise
gefüllte) GCBITMAP-Struktur übergeben wurde, ist die Struktur nach
dem Aufruf vollständig initialisiert. Programme dürfen weder die
Farbtabelle noch die inverse Farbtabelle der Struktur durch direkten
Zugriff ändern. Alle Veränderungen müssen durch die Farbfunktionen
unter dem zurückgelieferten Handle erfolgen.
| ||||||||||||||||||||||||||||||||||||||||||
Verfügbar: | ab EdDi-Version 1.20
| ||||||||||||||||||||||||||||||||||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding NVDI Off-Screen-Bitmaps v_clsbm
|
C: | int16_t v_open_bm ( int16_t base_handle, GCBITMAP *bitmap,
int16_t color_flags, int16_t unit_flags, int16_t pixel_width, int16_t
pixel_height );
| ||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t v_open_bm ( int16_t base_handle, GCBITMAP *bitmap, int16_t color_flags, int16_t unit_flags, int16_t pixel_width, int16_t pixel_height ) { intin[0] = color_flags; intin[1] = unit_flags; intin[2] = pixel_width; intin[3] = pixel_height; contrl[0] = 100; contrl[1] = 0; contrl[3] = 4; contrl[5] = 3; contrl[6] = base_handle; contrl[7..8] = bitmap; vdi (); return ( contrl[6] ); } | ||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Open Bitmap« - öffnet eine Offscreen Bitmap
| ||||||||||||||||||||||||||
VDI-Nummer: | 100 (Unterfunktion 1)
| ||||||||||||||||||||||||||
Deklaration: | void v_opnbm ( int16_t *work_in, MFDB *bitmap, int16_t *handle,
int16_t *work_out );
| ||||||||||||||||||||||||||
Beschreibung: | Die Funktion v_opnbm dient zur Erzeugung von Offscreen-Bitmaps.
Man kann ihr entweder die Größe eines Bitmap angeben, die Sie
allozieren soll, oder ihr eine Bitmap übergeben. Die Bitmap wird im
gleichen Format wie die des Bildschirms verwaltet, wodurch schnelles
Kopieren zwischen beiden möglich ist.
Die Funktion steht ab EdDI-Version 1.00 zur Verfügung. Ab EdDI 1.1 kann v_opnbm mit zusätzlichen Parametern in work_in[15..19] aufgerufen werden. Es wird dann versucht, eine Bitmap in dem durch diese Parameter beschriebenen Format zu öffnen. Sollte für das angegebene Format kein Treiber vorhanden sein, kann die Bitmap nicht erzeugt werden. Es gilt:
Pixelformat und Bitreihenfolge werden bei vq_scrninfo genauer beschrieben. Mit den folgenden Parametern kann z.B. eine Offscreen-Bitmap mit 256 Farben und Interleaved Planes erzeugt werden: work_in[15..16] = 256; /* 256 Farben */ work_in[17] = 8; /* 8 Farbebenen */ work_in[18] = 0; /* Interleaved Planes */ work_in[19] = 1; /* normale Bitreihenfolge */ Achtung: Der Eintrag work_in[11] sollte bei Addition von 1 ohne Rest durch 16 teilbar sein. Andernfalls rundet der VDI Treiber auf den nächsthöheren ohne Rest teilbaren Wert. Wird für Pixelbreite und -Höhe 0 angegeben, so werden die Werte des Bildschirms benutzt. Nach erfolgreichem Aufruf enthält der Parameter handle die Kennung der erzeugten Bitmap. Hinweis: Die Benutzung von Offscreen-Bitmaps bietet sich auch dann an, wenn man Effekte wie starkes Flackern vermeiden möchte. In diesem Fall baut man Teile der Grafik in der Bitmap auf und überträgt die Bitmap mit vrt_cpyfm oder vro_cpyfm auf den Bildschirm. | ||||||||||||||||||||||||||
Ergebnis: | Informationen werden über das work_out Array bzw. den
Memory-Form-Definiton-Block (MFDB) nach außen gereicht:
Falls bitmap->fd_addr gleich NULL ist, so wird anhand der Größenangaben in work_in Speicher für die Bitmap angefordert (die Bitmap wird im Gegensatz zu v_opnvwk gelöscht). Um eine Bitmap im gerätespezifischen Format zu öffnen, muß bitmap->fd_nplanes eine Null oder die Ebenenanzahl des Schirms enthalten (work_out[4] bei vq_extnd). Ist bitmap->fd_nplanes 1, wird eine monochrome Bitmap angelegt. Die Einträge des MFDB (fd_addr, fd_w, fd_h, fd_wdwidth, fd_stand, fd_nplanes) werden vom VDI-Treiber gesetzt und an die aufrufende Applikation zurückgegeben. Wenn nicht genügend Speicher vorhanden ist, wird der Inhalt des MFDBs nicht verändert; ein Null-Handle wird zurückgegeben. Wenn bitmap->fd_addr ungleich NULL ist, wird dieser Eintrag als Zeiger auf eine Bitmap interpretiert. Wenn die Bitmap im Standardformat vorliegt, wird sie ins gerätespezifische Format umgewandelt. Liegt sie schon im gerätespezifischen Format vor, so wird sie nicht umgewandelt. Falls die Auflösung der Bitmap (d.h. die Anzahl der Farben und Planes) nicht unterstützt wird, gibt v_opnbm ein Null-Handle zurück. | ||||||||||||||||||||||||||
Verfügbar: | Die Funktion steht ab EdDI-Version 1.00 zur Verfügung. Ab
EdDI 1.1 kann v_opnbm mit zusätzlichen Parametern aufgerufen
werden.
| ||||||||||||||||||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||||||||||||||||||
Querverweis: | Binding NVDI Off-Screen-Bitmaps v_clsbm
|
C: | void v_opnbm ( int16_t *work_in, MFDB *bitmap, int16_t *handle,
int16_t *work_out );
| ||||||||||||||||||||||||||||||||||||
Umsetzung: |
void v_opnbm (int16_t *work_in, MFDB *bitmap, int16_t *handle, int16_t *work_out) { intin[0..19] = work_in[0..19]; contrl[0] = 100; contrl[1] = 0; contrl[3] = 20; contrl[5] = 1; contrl[6] = handle; contrl[7..8] = bitmap; vdi (); *handle = contrl[6]; work_out[0..44] = intout[0..44]; work_out[45..56] = ptsout[0..11]; } | ||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Open printer driver«
| ||||||||||
VDI-Nummer: | 1
| ||||||||||
Deklaration: | int16_t v_opnprn( int16_t base_handle, PRN_SETTINGS *settings,
int16_t *work_out );
| ||||||||||
Beschreibung: | Die Funktion öffnet einen Druckertreiber.
| ||||||||||
Ergebnis: | VDI-Handle oder 0 (Fehler)
| ||||||||||
Verfügbar: | Die Übergabe von PRN_SETTINGS ist ab NVDI 4.1x (27.11.96) möglich.
Das Binding taucht erstmal in NVDI 5.00 auf.
| ||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||
Querverweis: | Binding
|
C: | int16_t v_opnprn( int16_t base_handle, PRN_SETTINGS *settings,
int16_t *work_out );
| |||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t v_opnprn( int16_t base_handle, PRN_SETTINGS *settings, int16_t *work_out ) { int16 work_in[16]; int16 i; vdi_pb.intin = (int *) work_in; vdi_pb.intout = (int *) work_out; vdi_pb.ptsout = (int *) work_out + 45; /* Treibernummer */ work_in[0] = settings->driver_id; for ( i = 1; i < 10; i++ ) work_in[i] = 1; /* Rasterkoordinaten benutzen */ work_in[10] = 2; /* Seitenformat aus settings benutzen */ work_in[11] = (int16) settings->size_id; /* Ausgabekanal aus settings benutzen */ *(int8 **) &work_in[12] = settings->device; /* Druckereinstellung */ *(PRN_SETTINGS **) &work_in[14] = settings; contrl[0] = 1; /* Funktionsnummer */ contrl[1] = 0; contrl[3] = 16; /* erweiterte Parameteranzahl */ contrl[6] = base_handle; vdi( &vdi_pb ); /* Treiber öffnen */ vdi_pb.intin = (int *) intin; /* Zeiger zurücksetzen */ vdi_pb.intout = (int *) intout; vdi_pb.ptsout = (int *) ptsout; return( contrl[6] ); } | |||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Open virtual Screen Workstation« - öffnet eine
Bildschirm-Workstation
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VDI-Nummer: | 100
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deklaration: | void v_opnvwk ( int16_t *work_in, int16_t *handle, int16_t
*work_out );
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion öffnet ein virtuelles Arbeitsgerät, auf einem
bereits geöffneten physikalischen Gerät. Nach dem Aufruf enthält
der Parameter handle die Kennung des virtuellen Gerätes bzw.
den Wert Null im Fehlerfall. Es gilt:
Hinweis: Das VDI besitzt leider keinen Mechanismus, um bei mehreren virtuellen Workstations die Eingabegeräte zu verwalten. Dies muß deshalb von der Applikation übernommen werden, die die physikalische Workstation des Bildschirms geöffnet hat. Wichtig: Die Kennung der aktuellen physikalischen Bildschirm-Workstation muß beim AES per graf_handle erfragt werden. Achtung: In den TOS-Versionen 1.00, 1.04, 1.06, 1.62 und 2.05 gibt es einen Fehler bei der Verwaltung der virtuellen Workstations. Dies kann sich darin äußern daß Kennungen mehrfach vergeben werden, und deshalb u.U. Workstation-Attribute verstellt werden. Dieser Fehler tritt genau dann auf, wenn in der internen Workstationliste des Bildschirmtreibers Lücken entstehen. Abhilfe: das Patch-Programm VDIFIX in den AUTO-Ordner legen. Der Fehler tritt auch bei TOS 2.06 und vor dem dem 31.05.1990 erstellten TOS 3.00 auf. Leider ist für diese TOS-Versionen kein Patch verfügbar. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein direktes Funktionsergebnis.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verfügbar: | Supported by all drivers.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding v_opnwk v_clsvwk graf_handle
|
C: | void v_opnvwk ( int16_t *work_in, int16_t *handle, int16_t
*work_out );
| ||||||||||||||||||||||||||||||
Umsetzung: |
void v_opnvwk (int16_t *work_in, int16_t *handle, int16_t *work_out) { intin[0..10] = work_in[0..10] contrl[0] = 100; contrl[1] = 0; contrl[3] = 11; contrl[6] = *handle; vdi (); *handle = contrl[6]; work_out[0..44] = intout[0..44]; work_out[45..56] = ptsout[0..11]; } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Open Workstation« - initialisiert einen Gerätetreiber für
ein bestimmtes Ein/Ausgabegerät
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VDI-Nummer: | 1
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deklaration: | void v_opnwk ( int16_t *work_in, int16_t *handle, int16_t
*work_out );
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion lädt einen Gerätetreiber. Dazu muß sich jedoch
das GDOS im Speicher befinden und der Gerätetreiber muß im
ASSIGN.SYS File aufgezählt sein. Falls alles geklappt hat, erhält
man in handle eine positive Gerätekennung und Null im
Fehlerfall.
Hinweis: Die Komponenten work_in[11] bis work_in[15] sind nur unter NVDI sinnvoll, und erlauben es, das Seitenformat für Drucker- und Bit-Image Treiber, sowie den Ausgabekanal zu setzen. Bei einem Metafile-Treiber wirkt sich die Einstellung des Seitenformates nicht aus; hier wird lediglich der Dateiname übernommen. Um zu überprüfen, ob das Seiten- bzw. Papierformat tatsächlich eingestellt werden konnte, sollte auf die Funktion vq_extnd zurückgegriffen werden. Die in den Elementen work_out[0,1] zurückgelieferten Werte beschreiben den tatsächlich bedruckbaren Bereich; die nicht bedruckbaren Bereiche können per vq_extnd ermittelt werden. Die hier angegebene Belegung der work_in und work_out Arrays ist übrigens nicht mehr vollständig kompatibel zum PC-GEM, da ab GEM/3 teilweise erhebliche Änderungen bzw. Erweiterungen vorgenommen wurden, die auf dem Atari nicht (oder in anderer Weise) übernommen wurden. Achtung: Bei Druckertreibern, und speziell bei den Atari Seitendruckern gibt es einige Besonderheiten zu beachten. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein direktes Funktionsergebnis.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verfügbar: | Available only with some form of GDOS.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding GDOS v_clswk v_opnvwk
|
C: | void v_opnwk ( int16_t *work_in, int16_t *handle, int16_t
*work_out );
| ||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
void v_opnwk (int16_t *work_in, int16_t *handle, int16_t *work_out) { intin[0..15] = work_in[0..15]; contrl[0] = 1; contrl[1] = 0; contrl[3] = 16; contrl[6] = 0; vdi (); *handle = contrl[6]; work_out[0..44] = intout[0..44]; work_out[45..56] = ptsout[0..11]; } | ||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
Hinweis: Das angegebene Binding gilt für den Einsatz unter NVDI. Bei Druckertreibern gilt es einige Besonderheiten zu beachten; zunächst kann bei Matrix-Druckern die maximale Auflösung angegeben werden. Dies geht wie folgt:
Darüber hinaus kann für die Atari-Seitendrucker die Adresse des internen Puffers ermittelt werden:
| ||||||||||||||||||||||||||||||||||||||||
Querverweis: | v_opnwk GDOS GDOS-Treiber
|
Ab PC-GEM/3 wurde das work_in-Feld bei v_opnwk erweitert, um noch zur Laufzeit einige Einstellungen für den Treiber vornehmen zu können. Die folgenden Informationen sind jedoch nicht kompatibel zum Atari-GEM bzw. zu NVDI. Es gilt:
Element | Bedeutung | ||||||||||||||||||||||||||||
work_in[11] | Im niederwertigen Byte wird die Ausgabe genauer spezifiziert.
Es gilt:
Im höherwertigen Byte wird die Seitengröße angegeben. Es gilt:
| ||||||||||||||||||||||||||||
work_in[12] | Ausgabeport bzw. Dateiname | ||||||||||||||||||||||||||||
... | |||||||||||||||||||||||||||||
... | |||||||||||||||||||||||||||||
work_in[100] | |||||||||||||||||||||||||||||
work_in[101] | Seitenbreite in 1/100 Zoll | ||||||||||||||||||||||||||||
work_in[102] | Seitenhöhe in 1/100 Zoll | ||||||||||||||||||||||||||||
work_out[14] | Hat den Wert 11, wenn Escapement-Text verfügbar ist. | ||||||||||||||||||||||||||||
work_out[24] | Hat den Wert 11, wenn Escapement-Text der einzig verfügbare Text auf dem Ausgabegerät ist, und anderenfalls den Wert 10. | ||||||||||||||||||||||||||||
work_out[44] | Ein Wert von -1 bedeutet, daß das Ausgabegerät im Querformat ausgeben kann, ohne daß die Applikation selbst die Grafik drehen muss. Das OUTPUT-Programm von PC-GEM übernimmt das Drehen allerdings selbst, da diese Möglichkeit in älteren GEM-Versionen noch nicht zur Verfügung stand. |
Hinweis: Besitzt work_in[11] den Wert 1 oder 2, so muß work_in[12] auf die Port-Nummer gestellt werden (LPT1 = 0, LPT2 = 1, COM1 = 0, etc.). Besitzt work_in[11] hingegen den Wert 0, so muß sich ab work_in[12] der Name der Datei befinden, in die geschrieben werden soll; dieser wird Zeichen für Zeichen (16-Bit-Worte !) geschrieben, und muss mit dem Wert Null enden.
Querverweis: Kontrollfunktionen v_opnwk
Name: | »Pattern rotation«
| ||||||||
VDI-Nummer: | 134
| ||||||||
Deklaration: | void v_pat_rotate( int16_t handle, int16_t angle)
| ||||||||
Beschreibung: | This call specifies pattern rotation angle. It is implemented
only in printer drivers and is restricted to multiples of 90 degree.
| ||||||||
Ergebnis: | Die Funktionliefert keine Ergebnis.
| ||||||||
Verfügbar: | GEM/3 Releas 3.1
| ||||||||
Gruppe: | Kontrollfunktionen
| ||||||||
Querverweis: | Binding
|
C: | void v_pat_rotate( int16_t handle, int16_t angle );
|
Umsetzung: |
void v_pat_rotate( int16_t handle, int16_t angle ) { intin[0] = angle; contrl[0] = 134; contrl[1] = 0; contrl[3] = 1; contrl[6] = handle; vdi (); } |
GEM-Arrays: |
|
Name: | »Resize Bitmap« - Größe einer Offscreenbitmap verändern
| ||||||||||||||
VDI-Nummer: | 100 (Unterfunktion 2)
| ||||||||||||||
Deklaration: | int16_t v_resize_bm( int16_t handle, int16_t width, int16_t
height, int32_t byte_width, uint16_t *addr );
| ||||||||||||||
Beschreibung: | Mit dieser Funktion kann die Größe einer Offscreenbitmap
verändert werden. RESIZE BITMAP kann auch ein eigener Speicherbereich
übergeben werden, für den dann folgende Punkte eingehalten werden
müssen:
Der Speicherbereich muß auf einer 16-Byte-Grenze beginnen Vor und hinter dem Speicherbereich müssen mindestens 16 Bytes frei sein, die dem Aufrufer gehören, da einige Grafikfunktionen abhängig vom Ausgabebereich einige Bytes vor oder der hinter der Bitmap lesen und evtl. sogar beschreiben (dabei ändert sich dann allerdings nicht der Inhalt dieser Speicherbereiche; es werden dann nur maskierte Daten unverändert zurückgeschrieben). Wer das nicht beachtet, wird u.U. mit Speicherschießern gesegnet. Wir empfehlen daher die Speicheranforderung NVDI zu überlassen!
| ||||||||||||||
Ergebnis: | Wenn das Funktionsresultat 0 ist, konnte die neue Bitmap nicht
aufgebaut werden. Da die alte Bitmap in diesem Fall bereits
freigegeben worden ist, kann versucht werden, eine kleinere Bitmap
anzulegen, oder die Bitmap muß; mit v_clsbm geschlossen werden.
| ||||||||||||||
Verfügbar: | ab EdDI-Version 1.20
| ||||||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||||||
Querverweis: | Binding NVDI Off-Screen-Bitmaps
|
C: | int16_t v_resize_bm( int16_t handle, int16_t width, int16_t
height, int32_t byte_width, uint16_t *addr );
| |||||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t v_resize_bm( int16_t handle, int16_t width, int16_t height, int32_t byte_width, uint16_t *addr ) { intin[0] = width; intin[1] = height; intin[2..3] = byte_width; intin[4..5] = addr; contrl[0] = 100; contrl[1] = 0; contrl[3] = 6; contrl[5] = 2; contrl[6] = handle; vdi (); return ( intout[0] ); } | |||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Save Outline cache to disk« - speichert den Inhalt des
Vektorzeichen-Caches.
| ||||||||
VDI-Nummer: | 249
| ||||||||
Deklaration: | int16_t v_savecache ( int16_t handle, int8_t *filename );
| ||||||||
Beschreibung: | Die Funktion speichert den Inhalt des Vektorzeichen-Caches in
einer Datei ab. Es gilt:
Hinweis: Die Datei wird im aktuellen Verzeichnis abgelegt. | ||||||||
Ergebnis: | Die Funktion liefert im Fehlerfall den Wert -1, anderenfalls
den Wert 0.
| ||||||||
Verfügbar: | FSMGDOS, ab SpeedoGDOS 4.00
| ||||||||
Gruppe: | Kontrollfunktionen
| ||||||||
Querverweis: | Binding v_flushcache v_loadcache vqt_cachesize
|
C: | int16_t v_savecache ( int16_t handle, int8_t *filename );
| |||||||||||||||||||||||||||
Umsetzung: |
int16_t v_savecache ( int16_t handle, int8_t *filename ) { intin[0..n] = filename; /* In 16-Bit Worte */ contrl[0] = 249; contrl[1] = 0; contrl[3] = n; contrl[6] = handle; vdi (); return ( intout[0] ); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Save Outline cache to disk« - speichert den Inhalt des
Vektorzeichen-Caches.
| ||||||||
VDI-Nummer: | 226 (Subcode 6)
| ||||||||
Deklaration: | int16_t v_save_cache ( int16_t handle, int8_t *filename );
| ||||||||
Beschreibung: | Die Funktion speichert den Inhalt des Vektorzeichen-Caches in
einer Datei ab. Es gilt:
Hinweis: Die Datei wird im aktuellen Verzeichnis abgelegt. | ||||||||
Ergebnis: | Die Funktion liefert im Fehlerfall den Wert -1, anderenfalls
den Wert 0.
| ||||||||
Verfügbar: | Ab SpeedoGDOS 5.1
| ||||||||
Gruppe: | Kontrollfunktionen
| ||||||||
Querverweis: | Binding v_flushcache v_loadcache v_savecache
vqt_cachesize
|
C: | int16_t v_save_cache ( int16_t handle, int8_t *filename );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int16_t v_save_cache ( int16_t handle, int8_t *filename ) { intin[0..n] = filename; /* In 16-Bit Worte */ contrl[0] = 226; contrl[1] = 0; contrl[3] = n; contrl[5] = 6; contrl[6] = handle; vdi (); return ( intout[0] ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Reserve Bezier workspace« - Speicher für
Bezier-Spline-Erzeugung reservieren.
| ||||||||||
VDI-Nummer: | -1
| ||||||||||
Deklaration: | void v_set_app_buff ( int16_t handle, int16_t **address,
int16_t nparagraphs );
| ||||||||||
Beschreibung: | Die Funktion legt den Puffer für die Bezier-Spline Erzeugung
fest. Es gilt:
Hinweis: Werden Bezier-Funktionen aufgerufen, so werden in diesem Puffer die Spline-Daten abgelegt. Vor Programmende sollte man mit dieser Funktion einen Null-Zeiger als Puffer mit Größe 0 setzen. Wenn diese Funktion von der Applikation nicht aufgerufen wird, legt GDOS einen eigenen Puffer von ca. 8 Kbyte an. | ||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||
Verfügbar: | FONTGDOS, FSMGDOS, ab GEM/3 Release 3.1, ab SpeedoGDOS 4.00 und
ab NVDI 2.10. Die Funktion taucht in der Doku (Papierform) zu NVDI
2.10 auf. Bei allen restlichen Beschreibungen nicht mehr.
| ||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||
Querverweis: | Binding v_bez_on v_bez_off v_bez v_bez_fill v_bez_qual
GDOS SpeedoGDOS
|
C: | void v_set_app_buff ( int16_t handle, int16_t **address,
int16_t nparagraphs );
| ||||||||||||||||||||||||||||||
Umsetzung: |
void v_set_app_buff ( int16_t handle, int16_t **address, int16_t nparagraphs ) { intin[0..1] = address; intin[2] = nparagraphs; contrl[0] = -1; contrl[1] = 0; contrl[3] = 3; contrl[5] = 6; contrl[6] = handle; vdi (); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Update Workstation« - gepufferte Ausgabekommandos ausführen
|
VDI-Nummer: | 4
|
Deklaration: | void v_updwk ( int16_t handle );
|
Beschreibung: | Die Funktion veranlaßt das Ausgabegerät mit der Kennung
handle, alle gepufferten Kommandos auszuführen.
Hinweis: Auf dem Bildschirm oder bei Offscreen-Bitmaps wird diese Funktion nicht benötigt, da hier alle Grafikkommandos sofort ausgeführt werden. Bei einem Drucker wird kein Seitenvorschub ausgeführt, bei einem Metafile wird nur der Opcode in den Puffer geschrieben. Vor der Druckausgabe sollte die Funktion übrigens einmalig aufgerufen werden, um den Drucker zu initialisieren. Einige Besonderheiten gibt es bei Druckertreibern und speziell den Atari-SLM-Laserdruckern zu beachten. |
Ergebnis: | Die Funktion liefert kein Ergebnis.
|
Verfügbar: | Supported by all printer, metafile, plotter, and camera devices
when using any form of GDOS.
|
Gruppe: | Kontrollfunktionen
|
Querverweis: | Binding v_opnwk v_output_window
|
C: | void v_updwk ( int16_t handle );
| |||||||||||||||||||||||||||||||||
Umsetzung: |
void v_updwk (int16_t handle) { contrl[0] = 4; contrl[1] = 0; contrl[3] = 0; contrl[6] = handle; vdi (); } | |||||||||||||||||||||||||||||||||
GEM-Arrays: |
Hinweis: Bei Druckertreibern kann statt der aktuellen Seite auch ein eigener Puffer ausgegeben werden. Dies geht wie folgt: intin[0] = High-Word intin[1] = Low-Word der Pufferadresse contrl[0] = 4; contrl[1] = 1; /* Puffer nicht löschen */ contrl[3] = 2; contrl[6] = handle; vdi (); Bei Laserdruckern der Atari-SLM-Reihe läßt sich darüber hinaus der Status des Ausgabegerätes ermitteln. Es gilt:
| |||||||||||||||||||||||||||||||||
Querverweis: | v_updwk Kontrollfunktionen GDOS GDOS-Treiber
|
Name: | »Set clipping Rectangle« - setzt Begrenzungsrechteck.
| ||||||||||||||||||||
VDI-Nummer: | 129
| ||||||||||||||||||||
Deklaration: | void vs_clip ( int16_t handle, int16_t clip_flag, int16_t
*pxyarray );
| ||||||||||||||||||||
Beschreibung: | Die Funktion begrenzt alle grafischen Ausgaben auf einen
bestimmten Bereich. Es gilt:
Hinweis: Das Clipping sollte aus Sicherheitsgründen immer eingeschaltet werden, da die Ausgaberoutinen beim Überschreiten der Bildschirmgrenzen sehr schnell große Speicherbereiche überschreiben, was zu unerfreulichen Abtürzen und Datenmüll führen kann. Wenn der Arbeitsbereich den ganzen Bildschirm einbeziehen soll, ist es ratsam, bei vs_clip() die bei v_opnvwk() erhaltenen Bildschirmausmaße einzustellen. | ||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||||||
Verfügbar: | Supported by all drivers.
| ||||||||||||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||||||||||||
Querverweis: | Binding Clipping
|
C: | void vs_clip ( int16_t handle, int16_t clip_flag, int16_t
*pxyarray );
| |||||||||||||||||||||||||||
Umsetzung: |
void vs_clip (int16_t handle, int16_t clip_flag, int16_t *pxyarray) { intin[0] = clip_flag; ptsin[0..3] = pxyarray[0..3]; contrl[0] = 129; contrl[1] = 2; contrl[3] = 1; contrl[6] = handle; vdi (); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Load Fonts« - Zeichensätze laden
| ||||||||||||
VDI-Nummer: | 119
| ||||||||||||
Deklaration: | int16_t vst_ex_load_fonts ( int16_t handle, int16_t select,
int16_t font_max, int16_t font_free );
| ||||||||||||
Beschreibung: | This function is an extension of the existing vst_load_fonts
call, with two additional input arguments to provide control over font
paging memory. The current defaults in units of paragraphs are:
font_max font_free for screens: 5120 (80K) 0 for printers: 32767 640 (10K) The GDOS attempts to allocate font_max paragraphs or all of available menory (whichever is smaller) less font_free paragraphs, and use this amount for font paging. Depending on your needs, you can use either version of this call. Note that both version use the same opcode.
| ||||||||||||
Ergebnis: | Als Ergebnis erhält man die Anzahl der geladenen
Zeichensätze.
| ||||||||||||
Verfügbar: | GEM/3 Release 3.1
| ||||||||||||
Gruppe: | Kontrollfunktionen
| ||||||||||||
Querverweis: | Binding vst_unload_fonts vst_font vqt_name ASSIGN.SYS-Datei
GDOS
|
C: | int16_t vst_ex_load_fonts ( int16_t handle, int16_t select,
int16_t font_max, int16_t font_free );
| |||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t vst_ex_load_fonts ( int16_t handle, int16_t select, int16_t font_max, int16_t font_free ) { intin[0] = select; intin[1] = font_max; intin[2] = font_free; contrl[0] = 119; contrl[1] = 0; contrl[3] = 3; contrl[6] = handle; vdi (); return ( intout[0] ); } | |||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Load Fonts« - Zeichensätze laden
| ||||||||
VDI-Nummer: | 119
| ||||||||
Deklaration: | int16_t vst_load_fonts ( int16_t handle, int16_t select );
| ||||||||
Beschreibung: | Die Funktion lädt eine Reihe weiterer Zeichensätze für die
Workstation mit der Kennung handle, die in der ASSIGN.SYS
Datei angegeben sein muss. Es gilt:
Hinweis: Diese Funktion darf nur aufgerufen werden, falls ein GDOS installiert ist. | ||||||||
Ergebnis: | Als Ergebnis erhält man die Anzahl der geladenen
Zeichensätze.
| ||||||||
Verfügbar: | Available with any form of GDOS.
| ||||||||
Gruppe: | Kontrollfunktionen
| ||||||||
Querverweis: | Binding vst_unload_fonts vst_font vqt_name ASSIGN.SYS-Datei
GDOS
|
C: | int16_t vst_load_fonts ( int16_t handle, int16_t select );
| |||||||||||||||||||||||||||
Umsetzung: |
int16_t vst_load_fonts (int16_t handle, int16_t select) { intin[0] = select; contrl[0] = 119; contrl[1] = 0; contrl[3] = 1; contrl[6] = handle; vdi (); return ( intout[0] ); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Unload Fonts« - löscht geladene Zeichensätze
| ||||||||
VDI-Nummer: | 120
| ||||||||
Deklaration: | void vst_unload_fonts ( int16_t handle, int16_t select );
| ||||||||
Beschreibung: | Die Funktion entfernt alle Zeichensätze, die vorher durch
einen vst_load_fonts Aufruf geladen worden sind. Es gilt:
Hinweis: System- und Vektorzeichensätze bleiben von dieser Funktion unberührt. | ||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||
Verfügbar: | Available with any form of GDOS.
| ||||||||
Gruppe: | Kontrollfunktionen
| ||||||||
Querverweis: | Binding GDOS vst_load_fonts
|
C: | void vst_unload_fonts ( int16_t handle, int16_t select );
|
Umsetzung: |
void vst_unload_fonts (int16_t handle, int16_t select) { intin[0] = select; contrl[0] = 120; contrl[1] = 0; contrl[3] = 1; contrl[6] = handle; vdi (); } |
GEM-Arrays: |
|