Diese Bibliothek enthält Funktionen um eine Vielzahl von gesetzten Attributen abfragen zu können. Zu diesem Zweck stehen die folgenden Routinen zur Verfügung:
• vq_cellarray | Abfrage der Belegung einer Farbauswahltabelle. |
• vq_color | Farbintensitäten ermitteln. |
• vq_devinfo | Status eines Ausgabegerätes erfragen. |
• vq_ext_devinfo | Informationen über einen Treiber ermitteln. |
• vq_extnd | Zusätzliche Informationen über die Konfiguration einer Arbeitsstation ermitteln. |
• vq_ptsinsz | Interne Funktion von GDOS. |
• vq_scrninfo | Informationen über Bildschirmformat ermitteln. |
• vqf_attributes | Füllattribute ermitteln. |
• vqf_bg_color | Objekt Hintergrundfarbe ermitteln |
• vqf_fg_color | Objekt Vordergrundfarbe ermitteln |
• vqin_mode | Eingabemodus eines Eingabegeräts abfragen. |
• vql_attributes | Linienattribute ermitteln. |
• vql_bg_color | Linien Hintergrundfarbe ermitteln |
• vql_fg_color | Linen Vordergrundfarbe ermitteln |
• vqm_attributes | Markierungsattribute ermitteln. |
• vqm_bg_color | Marker Hintergrundfarbe ermitteln |
• vqm_fg_color | Marker Vordergrundfarbe ermitteln |
• vqr_bg_color | Bitmap Hintergrundfarbe ermitteln |
• vqr_fg_color | Bitmap Vordergrundfarbe ermitteln |
• vqt_advance | Position für nächstes Vektor-Zeichen ermitteln. |
• vqt_advance32 | Position für nächstes Vektor-Zeichen ermitteln (fix31). |
• vqt_attributes | Textattribute ermitteln. |
• vqt_cacheinfo | z.Zt. keine Informationen bekannt. |
• vqt_cachesize | Ermitteln der Größe des Vektorzeichen-Caches. |
• vqt_char_index | Index-Konvertierung bzgl. eines Mappings. |
• vqt_devinfo | Status eines Ausgabegerätes erfragen. |
• vqt_drv_avail | z.Zt. keine Informationen bekannt. |
• vqt_ext_name | Erweiterte Funktion für das Ermitteln von Zeichensatzinformationen. |
• vqt_extent | Dimensionen eines Textrechtecks berechnen. |
• vqt_f_extent | Dimensionen eines Textrechtecks für Vektorfonts berechnen. |
• vqt_f_extent16 | z.Zt. keine Informationen bekannt. |
• vqt_bg_color | Text Hintergrundfarbe ermitteln |
• vqt_fg_color | Text Vordergrundfarbe ermitteln |
• vqt_fontheader | Informationen über einen Zeichensatz ermitteln. |
• vqt_fontinfo | Informationen über einen Zeichensatz ermitteln. |
• vqt_get_table | Adresse der Zeichentransformationstabellen erfragen. |
• vqt_justified | Offsets von einem Ausrichtungspunkt erfragen. |
• vqt_name | Namen und Index eines Zeichensatzes ermitteln. |
• vqt_name_and_id | Zeichensatz-ID und Namen suchen. |
• vqt_pairkern | Korrekturfaktor für Abstände bei Pair-Kerning erfragen. |
• vqt_real_extent | Ermitteln des einen Text umgebenden Rechteckes. |
• vqt_trackkern | Korrekturfaktor für Fonts mit Track-Kerning erfragen. |
• vqt_width | Dimensionen einer Zeichenzelle berechnen. |
• vqt_xfntinfo | Informationen über einen Zeichensatz ermitteln. |
• v_create_driver_info | Informationen über einen Treiber ermitteln. |
• v_delete_driver_info | Informationen über einen Treiber löschen. |
• v_get_driver_info | Informationen über einen Treiber ermitteln. |
• v_getbitmap_info | Informationen über Vektorzeichen ermitteln. |
• v_read_default_settings | Ermitteln der Default Druckereinstellungen. |
• v_write_default_settings | Setzen der Default Druckereinstellungen. |
Hinweis: Neben allgemeinen Attributen können über die hier angegebenen Funktionen vor allem sehr ausführliche Informationen zum Text-Handling ermittelt werden.
Querverweis: Workstations des VDI Style-Guidelines
Name: | »Inquire Current Fill Area Attributes« - ermittelt die
Attribute zum Ausfüllen von Flächen.
| ||||||||||||||||||||
VDI-Nummer: | 37
| ||||||||||||||||||||
Deklaration: | void vqf_attributes ( int16_t handle, int16_t *attrib );
| ||||||||||||||||||||
Beschreibung: | Die Funktion ermittelt die aktuellen Füll-Attribute. Es gilt:
| ||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||||||
Verfügbar: | Supported by all devices.
| ||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||
Querverweis: | Binding vswr_mode vs_color vsf_interior vsf_style
vsf_color vsf_perimeter
|
C: | void vqf_attributes ( int16_t handle, int16_t *attrib );
|
Umsetzung: |
void vqf_attributes (int16_t handle, int16_t *attrib) { contrl[0] = 37; contrl[1] = 0; contrl[3] = 0; contrl[6] = handle; vdi (); attrib[0..4] = intout[0..4]; } |
GEM-Arrays: |
|
Name: | »Inquire Background Color« - Objekt Hintergrundfarbe
ermitteln
| ||||||||
VDI-Nummer: | 203 (Unterfunktion 1)
| ||||||||
Deklaration: | int32_t vqf_bg_color( int16_t handle, COLOR_ENTRY *bg_color );
| ||||||||
Beschreibung: | Diese Funktionen ermittelt die Hintergrundfarbe für Objekte.
| ||||||||
Ergebnis: | Eingestellter Farbraum (z.Zt. nur CSPACE_RGB) oder -1 (falsche
Unterfunktionsnummer).
| ||||||||
Verfügbar: | ab NVDI 5.00
| ||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||
Querverweis: | Binding
|
C: | int32_t vqf_bg_color( int16_t handle, COLOR_ENTRY *bg_color );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int32_t vqf_bg_color( int16_t handle, COLOR_ENTRY *bg_color ) { contrl[0] = 203; contrl[1] = 0; contrl[3] = 0; contrl[5] = 1; contrl[6] = handle; vdi (); bg_color = intout [2..5]; return ( int32_t intout [0] ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Foreground Color« - Objekt Vordergrundfarbe
ermitteln
| ||||||||
VDI-Nummer: | 202 (Unterfunktion 1)
| ||||||||
Deklaration: | int32_t vqf_fg_color( int16_t handle, COLOR_ENTRY *fg_color );
| ||||||||
Beschreibung: | Diese Funktionen ermittelt die Vordergrundfarbe für Objekte.
| ||||||||
Ergebnis: | Eingestellter Farbraum (z.Zt. nur CSPACE_RGB) oder -1 (falsche
Unterfunktionsnummer).
| ||||||||
Verfügbar: | ab NVDI 5.00
| ||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||
Querverweis: | Binding
|
C: | int32_t vqf_fg_color( int16_t handle, COLOR_ENTRY *fg_color );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int32_t vqf_fg_color( int16_t handle, COLOR_ENTRY *fg_color ) { contrl[0] = 202; contrl[1] = 0; contrl[3] = 0; contrl[5] = 1; contrl[6] = handle; vdi (); fg_color = intout [2..5]; return ( int32_t intout [0] ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Input Mode« - ermittelt den Eingabemodus.
| ||||||||||||||||||||||
VDI-Nummer: | 115
| ||||||||||||||||||||||
Deklaration: | void vqin_mode ( int16_t handle, int16_t dev_type, int16_t
*input_mode );
| ||||||||||||||||||||||
Beschreibung: | Die Funktion ermittelt den Eingabemodus für ein bestimmtes
Gerät. Es gilt:
| ||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||||||||
Verfügbar: | Supported by all Atari computers.
| ||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||
Querverweis: | Binding vsin_mode vrq_locator vsm_locator vrq_valuator
vsm_valuator vrq_choice vsm_choice vrq_string vsm_string
|
C: | void vqin_mode ( int16_t handle, int16_t dev_type, int16_t
*input_mode );
| |||||||||||||||||||||||||||
Umsetzung: |
void vqin_mode (int16_t handle, int16_t dev_type, int16_t *input_mode) { intin[0] = dev_type; contrl[0] = 115; contrl[1] = 0; contrl[3] = 1; contrl[6] = handle; vdi (); *input_mode = intout[0]; } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Current Polyline Attributes« - ermittelt die
Attribute für das Zeichnen von Linien.
| ||||||||||||||||||
VDI-Nummer: | 35
| ||||||||||||||||||
Deklaration: | void vql_attributes ( int16_t handle, int16_t *attrib );
| ||||||||||||||||||
Beschreibung: | Die Funktion ermittelt die aktuellen Linien-Attribute. Es gilt:
Hinweis: Die hier gemachten Angaben (insbesondere attrib[4,5]) gelten für die NVDI-Implementation. | ||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebis.
| ||||||||||||||||||
Verfügbar: | Supported by all drivers.
| ||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||
Querverweis: | Binding vswr_mode vs_color vsl_type vsl_width
vsl_color vsl_ends
|
C: | void vql_attributes ( int16_t handle, int16_t *attrib );
| ||||||||||||||||||||||||||||||
Umsetzung: |
void vql_attributes (int16_t handle, int16_t *attrib) { contrl[0] = 35; contrl[1] = 0; contrl[3] = 0; contrl[6] = handle; vdi (); attrib[0..2] = intout[0..2]; attrib[3] = ptsout[0]; attrib[4..5] = intout[3..4]; } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Background Color« - Linien Hintergrundfarbe
ermitteln
| ||||||||
VDI-Nummer: | 203 (Unterfunktion 2)
| ||||||||
Deklaration: | int32_t vql_bg_color( int16_t handle, COLOR_ENTRY *bg_color );
| ||||||||
Beschreibung: | Diese Funktionen ermittelt die Hintergrundfarbe für Linien.
| ||||||||
Ergebnis: | Eingestellter Farbraum (z.Zt. nur CSPACE_RGB) oder -1 (falsche
Unterfunktionsnummer).
| ||||||||
Verfügbar: | ab NVDI 5.00
| ||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||
Querverweis: | Binding
|
C: | int32_t vql_bg_color( int16_t handle, COLOR_ENTRY *bg_color );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int32_t vql_bg_color( int16_t handle, COLOR_ENTRY *bg_color ) { contrl[0] = 203; contrl[1] = 0; contrl[3] = 0; contrl[5] = 2; contrl[6] = handle; vdi (); bg_color = intout [2..5]; return ( int32_t intout [0] ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Foreground Color« - Linien Vordergrundfarbe
ermitteln
| ||||||||
VDI-Nummer: | 202 (Unterfunktion 2)
| ||||||||
Deklaration: | int32_t vql_fg_color( int16_t handle, COLOR_ENTRY *fg_color );
| ||||||||
Beschreibung: | Diese Funktionen ermittelt die Vordergrundfarbe für Linien.
| ||||||||
Ergebnis: | Eingestellter Farbraum (z.Zt. nur CSPACE_RGB) oder -1 (falsche
Unterfunktionsnummer).
| ||||||||
Verfügbar: | ab NVDI 5.00
| ||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||
Querverweis: | Binding
|
C: | int32_t vql_fg_color( int16_t handle, COLOR_ENTRY *fg_color );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int32_t vql_fg_color( int16_t handle, COLOR_ENTRY *fg_color ) { contrl[0] = 202; contrl[1] = 0; contrl[3] = 0; contrl[5] = 2; contrl[6] = handle; vdi (); fg_color = intout [2..5]; return ( int32_t intout [0] ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Current Polymarker Attributes« - ermittelt die
Attribute für das Zeichnen von Markierungen.
| ||||||||||||||||
VDI-Nummer: | 36
| ||||||||||||||||
Deklaration: | void vqm_attributes ( int16_t handle, int16_t *attrib );
| ||||||||||||||||
Beschreibung: | Die Funktion ermittelt die aktuellen Marker-Attribute. Es gilt:
Hinweis: Die hier gemachten Angaben gelten für die Implementation in NVDI. | ||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||
Verfügbar: | Supported by all drivers.
| ||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||
Querverweis: | Binding vswr_mode vs_color vsm_type vsm_height
vsm_color
|
C: | void vqm_attributes ( int16_t handle, int16_t *attrib );
| ||||||||||||||||||||||||||||||
Umsetzung: |
void vqm_attributes (int16_t handle, int16_t *attrib) { contrl[0] = 36; contrl[1] = 0; contrl[3] = 0; contrl[6] = handle; vdi (); attrib[0..2] = intout[0..2]; attrib[3] = ptsout[1]; attrib[4] = ptsout[0]; } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Background Color« - Marker Hintergrundfarbe
ermitteln
| ||||||||
VDI-Nummer: | 203 (Unterfunktion 3)
| ||||||||
Deklaration: | int32_t vqm_bg_color( int16_t handle, COLOR_ENTRY *bg_color );
| ||||||||
Beschreibung: | Diese Funktionen ermittelt die Hintergrundfarbe für Marker.
| ||||||||
Ergebnis: | Eingestellter Farbraum (z.Zt. nur CSPACE_RGB) oder -1 (falsche
Unterfunktionsnummer).
| ||||||||
Verfügbar: | ab NVDI 5.00
| ||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||
Querverweis: | Binding
|
C: | int32_t vqm_bg_color( int16_t handle, COLOR_ENTRY *bg_color );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int32_t vqm_bg_color( int16_t handle, COLOR_ENTRY *bg_color ) { contrl[0] = 203; contrl[1] = 0; contrl[3] = 0; contrl[5] = 3; contrl[6] = handle; vdi (); bg_color = intout [2..5]; return ( int32_t intout [0] ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Foreground Color« - Marker Vordergrundfarbe
ermitteln
| ||||||||
VDI-Nummer: | 202 (Unterfunktion 3)
| ||||||||
Deklaration: | int32_t vqm_fg_color( int16_t handle, COLOR_ENTRY *fg_color );
| ||||||||
Beschreibung: | Diese Funktionen ermittelt die Vordergrundfarbe für Marker.
| ||||||||
Ergebnis: | Eingestellter Farbraum (z.Zt. nur CSPACE_RGB) oder -1 (falsche
Unterfunktionsnummer).
| ||||||||
Verfügbar: | ab NVDI 5.00
| ||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||
Querverweis: | Binding
|
C: | int32_t vqm_fg_color( int16_t handle, COLOR_ENTRY *fg_color );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int32_t vqm_fg_color( int16_t handle, COLOR_ENTRY *fg_color ) { contrl[0] = 202; contrl[1] = 0; contrl[3] = 0; contrl[5] = 3; contrl[6] = handle; vdi (); fg_color = intout [2..5]; return ( int32_t intout [0] ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Background Color« - Bitmap Hintergrundfarbe
ermitteln
| ||||||||
VDI-Nummer: | 203 (Unterfunktion 4)
| ||||||||
Deklaration: | int32_t vqr_bg_color( int16_t handle, COLOR_ENTRY *bg_color );
| ||||||||
Beschreibung: | Diese Funktionen ermittelt die Hintergrundfarbe für Bitmaps.
| ||||||||
Ergebnis: | Eingestellter Farbraum (z.Zt. nur CSPACE_RGB) oder -1 (falsche
Unterfunktionsnummer).
| ||||||||
Verfügbar: | ab NVDI 5.00
| ||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||
Querverweis: | Binding
|
C: | int32_t vqr_bg_color( int16_t handle, COLOR_ENTRY *bg_color );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int32_t vqr_bg_color( int16_t handle, COLOR_ENTRY *bg_color ) { contrl[0] = 203; contrl[1] = 0; contrl[3] = 0; contrl[5] = 4; contrl[6] = handle; vdi (); bg_color = intout [2..5]; return ( int32_t intout [0] ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Foreground Color« - Bitmap Vordergrundfarbe
ermitteln
| ||||||||
VDI-Nummer: | 202 (Unterfunktion 4)
| ||||||||
Deklaration: | int32_t vqr_fg_color( int16_t handle, COLOR_ENTRY *fg_color );
| ||||||||
Beschreibung: | Diese Funktionen ermittelt die Vordergrundfarbe für Bitmap.
| ||||||||
Ergebnis: | Eingestellter Farbraum (z.Zt. nur CSPACE_RGB) oder -1 (falsche
Unterfunktionsnummer).
| ||||||||
Verfügbar: | ab NVDI 5.00
| ||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||
Querverweis: | Binding
|
C: | int32_t vqr_fg_color( int16_t handle, COLOR_ENTRY *fg_color );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int32_t vqr_fg_color( int16_t handle, COLOR_ENTRY *fg_color ) { contrl[0] = 202; contrl[1] = 0; contrl[3] = 0; contrl[5] = 4; contrl[6] = handle; vdi (); fg_color = intout [2..5]; return ( int32_t intout [0] ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Outline text advance placement vector« - Position
für nächstes Vektor-Zeichen ermitteln.
| ||||||||||||||||
VDI-Nummer: | 247
| ||||||||||||||||
Deklaration: | void vqt_advance ( int16_t handle, int16_t ch, int16_t
*x_advance, int16_t *y_advance, int16_t *remx, int16_t *remy );
| ||||||||||||||||
Beschreibung: | Die Funktion berechnet Offsets, um das nächste Zeichen eines
Strings an die richtige Position schreiben zu können. Es gilt:
Hinweis: Die Funktion wird inbesondere dann benötigt, wenn der Winkel für Textrotationen ein anderer als 0, 90, 180 oder 270 Grad ist. Bei den gelieferten Werten handelt es sich nur um den Abstand, der für die Positionierung des nächsten Zeichens benutzt wird, d.h. x_advance beinhaltet keine Zeichenüberhänge. | ||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||
Verfügbar: | FSMGDOS, ab SpeedoGDOS 4.00 und ab NVDI 3.00.
| ||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||
Querverweis: | Binding vqt_advance vst_rotation SpeedoGDOS NVDI
|
C: | void vqt_advance ( int16_t handle, int16_t ch, int16_t
*x_advance, int16_t *y_advance, int16_t *remx, int16_t *remy );
| ||||||||||||||||||||||||||||||||||||
Umsetzung: |
void vqt_advance ( int16_t handle, int16_t ch, int16_t *x_advance, int16_t *y_advance, int16_t *remx, int16_t *remy ); { intin[0] = ch; contrl[0] = 247; contrl[1] = 0; contrl[3] = 1; contrl[6] = handle; vdi (); x_advance = ptsout[0]; y_advance = ptsout[1]; remx = ptsout[2]; remy = ptsout[3]; } | ||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
Es handelt sich bei x_advance und y_advance nur um den Abstand, der für die Positionierung des nächsten Zeichens benutzt wird, d.h. x_advance beinhaltet keine Zeichenüberhänge. |
Name: | »Inquire Outline text advance placement vector« - Position
für nächstes Vektor-Zeichen ermitteln.
| ||||||||||||
VDI-Nummer: | 247
| ||||||||||||
Deklaration: | void vqt_advance32 ( int16_t handle, int16_t ch, fix31
*x_advance, fix31 *y_advance );
| ||||||||||||
Beschreibung: | Die Funktion berechnet Offsets, um das nächste Zeichen eines
Strings an die richtige Position schreiben zu können. Es gilt:
Hinweis: Die Funktion wird inbesondere dann benötigt, wenn der Winkel für Textrotationen ein anderer als 0, 90, 180 oder 270 Grad ist. Bei den gelieferten Werten handelt es sich nur um den Abstand, der für die Positionierung des nächsten Zeichens benutzt wird, d.h. x_advance beinhaltet keine Zeichenüberhänge. | ||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||
Verfügbar: | ab SpeedoGDOS 4.00 und ab NVDI 3.00. In der Doku zu NVDI 3.00
wird die Funktion fälschlicherweise vqt_advance genannt.
| ||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||
Querverweis: | Binding vst_rotation SpeedoGDOS NVDI
|
C: | void vqt_advance32 ( int16_t handle, int16_t ch, fix31
*x_advance, fix31 *y_advance );
| ||||||||||||||||||||||||||||||
Umsetzung: |
void vqt_advance32 (int16_t handle, int16_t ch, fix31 *x_advance, fix31 *y_advance) { intin[0] = ch; contrl[0] = 247; contrl[1] = 0; contrl[3] = 1; contrl[6] = handle; vdi (); *x_advance = ptsout[4..5]; *y_advance = ptsout[6..7]; } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
Es handelt sich bei x_advance und y_advance nur um den Abstand, der für die Positionierung des nächsten Zeichens benutzt wird, d.h. x_advance beinhaltet keine Zeichenüberhänge. |
Name: | »Inquire Current Graphic Text Attributes« - ermittelt die
Attribute für das Schreiben von Texten.
| ||||||||||||||||||||||||||||||||||||||||||||
VDI-Nummer: | 38
| ||||||||||||||||||||||||||||||||||||||||||||
Deklaration: | void vqt_attributes ( int16_t handle, int16_t *attrib );
| ||||||||||||||||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion ermittelt die aktuellen Text-Attribute. Es gilt:
| ||||||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||||||||||||||||||||||||||||||
Verfügbar: | Supported by all drivers.
| ||||||||||||||||||||||||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding vswr_mode vs_color vst_height vst_point
vst_rotation vst_font vst_color vst_effects vst_alignment
|
C: | void vqt_attributes ( int16_t handle, int16_t *attrib );
| |||||||||||||||||||||||||||
Umsetzung: |
void vqt_attributes (int16_t handle, int16_t *attrib) { contrl[0] = 38; contrl[1] = 0; contrl[3] = 0; contrl[6] = handle; vdi (); attrib[0..5] = intout[0..5]; attrib[6..9] = ptsout[0..3]; } | |||||||||||||||||||||||||||
GEM-Arrays: |
Hinweis: Das Atari-VDI gibt fälschlicherweise in intout[5] den Schreibmodus-1 zurück; mit NVDI geschieht das nur mit eingeschalteter Fehlerkompatibilität. |
Name: | »Inquire Background Color« - Text Hintergrundfarbe ermitteln
| ||||||||
VDI-Nummer: | 203 (Unterfunktion 0)
| ||||||||
Deklaration: | int32_t vqt_bg_color( int16_t handle, COLOR_ENTRY *bg_color );
| ||||||||
Beschreibung: | Diese Funktionen ermittelt die Hintergrundfarbe für Text.
| ||||||||
Ergebnis: | Eingestellter Farbraum (z.Zt. nur CSPACE_RGB) oder -1 (falsche
Unterfunktionsnummer).
| ||||||||
Verfügbar: | ab NVDI 5.00
| ||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||
Querverweis: | Binding
|
C: | int32_t vqt_bg_color( int16_t handle, COLOR_ENTRY *bg_color );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int32_t vqt_bg_color( int16_t handle, COLOR_ENTRY *bg_color ) { contrl[0] = 203; contrl[1] = 0; contrl[3] = 0; contrl[5] = 0; contrl[6] = handle; vdi (); bg_color = intout [2..5]; return ( int32_t intout [0] ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Get Outline cache size« - Ermitteln der Größe des
Vektorzeichen-Caches.
| ||||||||||||||
VDI-Nummer: | 255
| ||||||||||||||
Deklaration: | void vqt_cachesize ( int16_t handle, int16_t which_cache,
int32_t *size );
| ||||||||||||||
Beschreibung: | Die Funktion ermittelt die Größe des Vektorzeichen-Caches. Es
gilt:
| ||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||
Verfügbar: | FSMGDOS, ab SpeedoGDOS 4.00
| ||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||
Querverweis: | Binding v_loadcache v_savecache v_flushcache
|
C: | void vqt_cachesize ( int16_t handle, int16_t which_cache,
int32_t *size );
|
Umsetzung: |
void vqt_cachesize ( int16_t handle, int16_t which_cache, int32_t *size ); { intin[0] = which_cache; contrl[0] = 255; contrl[1] = 0; contrl[3] = 1; contrl[6] = handle; vdi (); *size = intout[0..1]; } |
GEM-Arrays: |
|
Name: | »Inquire Character Index« - Konvertiert einen Index bzgl.
eines bestimmten Mappings.
| ||||||||||||||||||||||||
VDI-Nummer: | 190 (Opcode 0)
| ||||||||||||||||||||||||
Deklaration: | uint16_t vqt_char_index ( int16_t handle, uint16_t scr_index,
int16_t src_mode, int16_t dst_mode );
| ||||||||||||||||||||||||
Beschreibung: | Die Funktion konvertiert einen übergebenen Index anhand eines
gewünschen Mappings. Es gilt:
Hinweis: Soll ein Index vom ASCII-Format ausgehend oder ins ASCII-Format gewandelt werden, dann wird nur der Bereich von Index 32 bis 255 beachtet. Die Steuerzeichen von 0 bis 31 werden nicht gewandelt, d.h. der Aufruf von vqt_char_index (handle, 10, 1, 0) liefert als Ergebnis den Wert 0xffff. Um z.B. zu überprüfen, ob der eingestellte Font ein Zeichen mit Unicode 0x201e (quotedblbase, 99er Anführungszeichen unten) enthält, sollte die folgende Funktion aufgerufen werden: int16_t is_char_available (int16_t handle, uint16_t unicode) { uint16_t dindex; /* Unicode <unicode> in direkten Index wandeln */ dindex = vqt_char_index (handle, unicode, 2, 0); if (dindex == 0xffff) return (FALSE); else return (TRUE); } | ||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert den konvertierten Index zurück, bzw. den
Wert 0xffff, falls eine Konvertierung nicht möglich war.
| ||||||||||||||||||||||||
Verfügbar: | ab NVDI Version 4.00
| ||||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||||
Querverweis: | Binding vst_charmap
|
C: | uint16_t vqt_char_index ( int16_t handle, uint16_t scr_index,
int16_t src_mode, int16_t dst_mode );
| ||||||||||||||||||||||||||||||||||||
Umsetzung: |
uint16_t vqt_char_index ( int16_t handle, uint16_t scr_index, int16_t scr_mode, int16_t dst_mode ) { intin[0] = scr_index; intin[1] = src_mode; intin[2] = dst_mode; contrl[0] = 190; contrl[1] = 0; contrl[3] = 3; contrl[5] = 0; contrl[6] = handle; vdi (); return ( intout[0] ); } | ||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire device status info« - Status des Ausgabegeräts
erfragen.
| ||||||||||||||||||
VDI-Nummer: | 248
| ||||||||||||||||||
Deklaration: | void vqt_devinfo ( int16_t handle, int16_t device, int16_t
*devexits, int8_t *devname );
| ||||||||||||||||||
Beschreibung: | Die Funktion überprüft, ob ein Treiber für ein bestimmtes
Ausgabegerät installiert worden ist. Es gilt:
| ||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||||
Verfügbar: | Nur mit FONTGDOS, FSM oder SpeedoGDOS.
| ||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||
Querverweis: | Binding vq_devinfo vq_ext_devinfo GDOS SpeedoGDOS
NVDI
|
C: | void vqt_devinfo ( int16_t handle, int16_t device, int16_t
*devexits, int8_t *devname );
| ||||||||||||||||||||||||||||||
Umsetzung: |
void vqt_devinfo ( int16_t handle, int16_t device, int16_t *devexits, int8_t *devname ) { intin[0] = device; contrl[0] = 248; contrl[1] = 0; contrl[3] = 1; contrl[6] = handle; vdi (); *devexits = ptsout[0]; p = contrl[4]; dev_name[0..p-1] = intout[0..p-1]; } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Text Extent« - ermittelt die Länge eines Strings.
| ||||||||||||||||||||||||
VDI-Nummer: | 116
| ||||||||||||||||||||||||
Deklaration: | void vqt_extent ( int16_t handle, int8_t *string, int16_t
*extent );
| ||||||||||||||||||||||||
Beschreibung: | Die Funktion ermittelt die Ausmaße eines minimalen Rechteckes,
das einen Text unter Beachtung der Textattribute voll umgibt.
Beispiel: Der Funktion werden folgende Parameter übergeben:
Hinweis: Bei Vektorfonts addiert diese Funktion nur die Schrittweiten, ohne Pair- oder Track-Kerning und Zeichenüberhänge zu beachten. Aus diesem Grund sollte ggfs. auf die Funktion vqt_real_extent zurückgegriffen werden. In alten GEM-Versionen arbeitet die Funktion übrigens nicht korrekt, falls die Zeichenkette Umlaute enthält, da alte GEM-Versionen mit diesen noch nicht umgehen konnten. | ||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||||||||||
Verfügbar: | Supported by all drivers.
| ||||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||||
Querverweis: | Binding vst_height vst_point vst_rotation vst_font
vst_effects vqt_f_extent vqt_real_extent
|
C: | void vqt_extent ( int16_t handle, int8_t *string, int16_t
*extent );
| |||||||||||||||||||||||||||
Umsetzung: |
void vqt_extent (int16_t handle, int8_t *string, int16_t *extent) { int16_t *tmp; tmp = intin; while (*tmp++ = *string++) ; contrl[0] = 116; contrl[1] = 0; contrl[3] = (int16_t) ((tmp-intin)-1); contrl[6] = handle; vdi (); extent[0..7] = ptsout[0..7]; } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Face Name and Index« - Informationen über einen
Zeichensatz ermitteln.
| ||||||||||||||||||||||||||||||||||||||||
VDI-Nummer: | 130 (Unterfunktion 1)
| ||||||||||||||||||||||||||||||||||||||||
Deklaration: | int16_t vqt_ext_name ( int16_t handle, int16_t index, int8_t
*name, uint16_t *font_format, uint16_t *flags );
| ||||||||||||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion ermittelt Informationen über einen Zeichensatz.
Es gilt:
Hinweis: Ein Font wird als Symbolfont eingestuft, wenn er im Bereich 'A'-'Z' und 'a'-'z' nicht vollständig ist, oder wenn er laut der PANOSE Klassifizierung pictorial ist. Das entsprechende Flag ist daher nur als Anhaltspunkt zu betrachten (bei einem kyrillischen TrueType-Font wäre es z.B. auch gesetzt), und signalisiert, daß die Zeichenbelegung im ASCII-Mapping (vst_charmap) nicht der normalen Atari-Belegung entspricht. | ||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert die ID des Zeichensatzes zurück.
| ||||||||||||||||||||||||||||||||||||||||
Verfügbar: | ab NVDI 3.00
| ||||||||||||||||||||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding vst_load_fonts vst_font vqt_xfntinfo
|
C: | int16_t vqt_ext_name ( int16_t handle, int16_t index, int8_t
*name, uint16_t *font_format, uint16_t *flags );
| ||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t vqt_ext_name (int16_t handle, int16_t index, int8_t *name, uint16_t *font_format, uint16_t *flags) { intin[0] = index; intin[1] = 0; /* reserviert */ contrl[0] = 130; contrl[1] = 0; contrl[3] = 2; contrl[5] = 1; contrl[6] = handle; vdi (); name[0..31] = intout[1..32]; name[32] = intout[33]; *flags = (intout[34] >> 8) & 0xff; *font_format = intout[34] & 0xff; return ( intout[0] ); } | ||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
Hinweis: Im High-Byte von intout[34] wird flags zurückgeliefert; im Low-Byte von intout[34] font_format. Um festzustellen, was für einen Font man vor sich hat, muß man die Anzahl der Einträge in intout (contrl[4]) beachten. Ist contrl[4] 33, so sind keine zusätzlichen Informationen vorhanden und demzufolge muß es sich um einen Bitmapfont handeln. Ist contrl[4] == 34, wird nur zusätzlich in intout[33] (name[32]) mitgeteilt, ob es sich um einen Vektorfont handelt. Nur wenn contrl[4] == 35 ist, kann man mit intout[34] (flags) den Fonttyp genauer feststellen und sofort erkennen, ob der Font äquidistant (monospaced) ist. intout[34] wird nur zurückgeliefert, wenn contrl[3] > 1 und contrl[5] = 1! |
Name: | »Inquire Foreground Color« - Text Vordergrundfarbe ermitteln
| ||||||||
VDI-Nummer: | 202 (Unterfunktion 0)
| ||||||||
Deklaration: | int32_t vqt_fg_color( int16_t handle, COLOR_ENTRY *fg_color );
| ||||||||
Beschreibung: | Diese Funktionen ermittelt die Vordergrundfarbe für Text.
| ||||||||
Ergebnis: | Eingestellter Farbraum (z.Zt. nur CSPACE_RGB) oder -1 (falsche
Unterfunktionsnummer).
| ||||||||
Verfügbar: | ab NVDI 5.00
| ||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||
Querverweis: | Binding
|
C: | int32_t vqt_fg_color( int16_t handle, COLOR_ENTRY *fg_color );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int32_t vqt_fg_color( int16_t handle, COLOR_ENTRY *fg_color ) { contrl[0] = 202; contrl[1] = 0; contrl[3] = 0; contrl[5] = 0; contrl[6] = handle; vdi (); fg_color = intout [2..5]; return ( int32_t intout [0] ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Speedo header information« - Informationen über
einen Zeichensatz ermitteln
| ||||||||||
VDI-Nummer: | 232
| ||||||||||
Deklaration: | void vqt_fontheader ( int16_t handle, int8_t *buffer, int8_t
*tdf_name );
| ||||||||||
Beschreibung: | Die Funktion kopiert den Header des eingestellten Speedo-Fonts
in einen Puffer, und liefert wenn möglich einen Zeiger auf die
zugehörige TDF-Datei. Es gilt:
Hinweis: Der aufnehmende Puffer sollte eine Größe von ca. 1 Kbyte besitzen, da die Länge des Speedo-Fontheaders vom jeweiligen Zeichensatz und möglichen Formaterweiterungen abhängt. Für andere Zeichensatzformate (Beispiel: TrueType) wird versucht, den Header nachzubilden. Es sollte beachtet werden, daß für jeden Aufruf dieser Funktion mehrfach auf die Festplatte zugegriffen werden muß; - bei vielen installierten Zeichensätzen kann dies einige Sekunden dauern. Daher sollte man den häufigen Aufruf der Funktion vermeiden, oder wichtige Angaben selbst speichern, und beim Programmstart laden. | ||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||
Verfügbar: | ab SpeedoGDOS 4.00 und ab NVDI 3.00
| ||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||
Querverweis: | Binding vqt_fontinfo Aufbau des Fontheaders
|
C: | void vqt_fontheader ( int16_t handle, int8_t *buffer, int8_t
*tdf_name );
| |||||||||||||||||||||||||||
Umsetzung: |
void vqt_fontheader (int16_t handle, int8_t *buffer, int8_t *tdf_name) { intin[0..1] = buffer; contrl[0] = 232; contrl[1] = 0; contrl[3] = 2; contrl[6] = handle; vdi (); tdf_name[0..n-1] = intout[0..n-1]; } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Current Face Information« - ermittelt Informationen
über Zeichensätze.
| ||||||||||||||||||||||||||||
VDI-Nummer: | 131
| ||||||||||||||||||||||||||||
Deklaration: | void vqt_fontinfo ( int16_t handle, int16_t *minADE, int16_t
*maxADE, int16_t *distances, int16_t *maxwidth, int16_t *effects );
| ||||||||||||||||||||||||||||
Beschreibung: | Die Funktion informiert über den aktuellen Zeichensatz.
Der Funktion werden folgende Parameter übergeben:
Hinweis: Die aktuellen Text-Effekte werden beachtet. Bei kursiver Schrift wird die Neigung als rechter und linker Offset-Wert bedacht. Der rechte Offsetwert ist der horizontale Abstand der Zeichenposition (linkes Basislinienende) zum Lotfußpunkt des Lotes auf die Basislinie durch die obere rechte Ecke; analog ist der linke Offsetwert der Abstand der Zeichenposition zum Lotfußpunkt des Lotes auf die Basislinie durch die untere linke Ecke. Die Komponenten minADE und maxADE stehen für das erste bzw. letzte Zeichen des Zeichensatzes. | ||||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||||||||||||||
Verfügbar: | Supported by all drivers.
| ||||||||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||||||||
Querverweis: | Binding vst_effects ASCII-Tabelle
|
C: | void vqt_fontinfo ( int16_t handle, int16_t *minADE, int16_t
*maxADE, int16_t *distances, int16_t *maxwidth, int16_t *effects );
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
void vqt_fontinfo (int16_t handle, int16_t *minADE, int16_t *maxADE, int16_t *distances, int16_t *maxwidth, int16_t *effects) { contrl[0] = 131; contrl[1] = 0; contrl[3] = 0; contrl[6] = handle; vdi (); *minADE = intout[0]; *maxADE = intout[1]; *max_width = ptsout[0]; distances[0] = ptsout[1]; distances[1] = ptsout[3]; distances[2] = ptsout[5]; distances[3] = ptsout[7]; distances[4] = ptsout[9]; effects[0] = ptsout[2]; effects[1] = ptsout[4]; effects[2] = ptsout[6]; } | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Outline-Font Text Extent« - ermittelt die Länge
eines Strings im Vektor-Zeichensatz.
| ||||||||||||||||||||||||
VDI-Nummer: | 240
| ||||||||||||||||||||||||
Deklaration: | void vqt_f_extent ( int16_t handle, int8_t *string, int16_t
*extent );
| ||||||||||||||||||||||||
Beschreibung: | Die Funktion addiert die Zeichenweiten eines Strings. Es gilt:
Hinweis: Im Gegensatz zu vqt_extent beachtet die Funktion auch etwaige Kerning-Werte. Achtung: Diese Funktion liefert nicht das den Text umgebende Rechteck. Sie addiert nur die Schrittweiten und beachtet auch nicht linke oder rechte Zeichenüberhänge. Sie ist im Prinzip nur zur Cursor-Positionierung gedacht. Wer aber mit dieser Funktion die Größe eines neuzuzeichnenden Bildbereiches ermitteln möchte, muß links und rechts sicherheitshalber die Breite des größten Zeichens hinzuaddieren (und die Neigung beachten). Vorsicht: Aus Kompatibilitätsgründen verhält sich diese Funktion bei 90, 180 und 270 Grad genauso unsinnig wie das alte vqt_extent - der Bezugspunkt wird geändert! Ab NVDI-3 empfiehlt sich stattdessen die Verwendung von vqt_real_extent. | ||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis zurück.
| ||||||||||||||||||||||||
Verfügbar: | ab SpeedoGDOS 4.00 und ab NVDI 3.00
| ||||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||||
Querverweis: | Binding vqt_extent SpeedoGDOS NVDI
|
C: | void vqt_f_extent ( int16_t handle, int8_t *string, int16_t
*extent );
| |||||||||||||||||||||||||||
Umsetzung: |
void vqt_f_extent (int16_t handle, int8_t *string, int16_t *extent) { intin[0..n-1] = string[0..n-1]; contrl[0] = 240; contrl[1] = 0; contrl[3] = n; contrl[6] = handle; vdi (); extent[0..7] = ptsout[0..7]; } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Get Character Mapping Table« - Adresse der
Zeichentransformationstabellen erfragen.
| ||||||||||||||||||||||||
VDI-Nummer: | 254
| ||||||||||||||||||||||||
Deklaration: | void vqt_get_table ( int16_t handle, int32_t *map );
| ||||||||||||||||||||||||
Beschreibung: | Die Funktion ermittelt die Adresse der
Zeichentransformationstabellen. Es gilt:
Hinweis: Diese Informationen sind nützlich, da Vektorfonts auch Zeichen enthalten können, die im normalen Atari-Zeichensatz nicht enthalten sind. | ||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||||||||||
Verfügbar: | ab SpeedoGDOS 4.00
| ||||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||||
Querverweis: | Binding GDOS SpeedoGDOS v_gtext
|
C: | void vqt_get_table ( int16_t handle, int32_t *map );
|
Umsetzung: |
void vqt_get_table ( int16_t handle, int32_t *map ) { contrl[0] = 254; contrl[1] = 0; contrl[3] = 0; contrl[6] = handle; vdi (); map = intout[0..1]; } |
GEM-Arrays: |
|
Name: | »Inquire justified graphics text« - Offsets von einem
Ausrichtungspunkt erfragen.
| ||||||||||||||||||||||||||||
VDI-Nummer: | 132
| ||||||||||||||||||||||||||||
Deklaration: | void vqt_justified ( int16_t handle, int16_t x, int16_t y,
int8_t *string, int16_t length, int16_t word_space, int16_t
char_space, int16_t *offsets );
| ||||||||||||||||||||||||||||
Beschreibung: | Die Funktion ermittelt für jedes Zeichen eines Strings die x-
und y-Offsets von einem gegebenen Ausrichtungspunkt. Es gilt:
| ||||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis zurück.
| ||||||||||||||||||||||||||||
Verfügbar: | PC-GEM ab Version 2.0
| ||||||||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||||||||
Querverweis: | Binding
|
C: | void vqt_justified ( int16_t handle, int16_t x, int16_t y,
int8_t *string, int16_t length, int16_t word_space, int16_t
char_space, int16_t *offsets );
| |||||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
void vqt_justified (int16_t handle, int16_t x, int16_t y, int8_t *string, int16_t length, int16_t word_space, int16_t char_space, int16_t *offsets) { int16_t i; intin[0] = word_space; intin[1] = char_space; ptsin[0] = x; ptsin[1] = y; ptsin[2] = length; ptsin[3] = 0; i = 0; while (string[i++]) ; contrl[0] = 132; contrl[1] = 2; contrl[3] = i; contrl[6] = handle; pooff = offsets; vdi (); pooff = ptsout; } | |||||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Face Name and Index« - ermittelt den Namen und
Kurzbeschreibung eines Zeichensatzes.
| ||||||||||
VDI-Nummer: | 130
| ||||||||||
Deklaration: | int16_t vqt_name ( int16_t handle, int16_t element_num, int8_t
*name );
| ||||||||||
Beschreibung: | Die Funktion ermittelt den Namen und ID eines Zeichensatzes. Es
gilt:
Hinweis: Das Element name[32] enthält den Wert 0, falls es sich um einen Pixelfont handelt, und den Wert 1, falls es sich um einen Vektorfont handelt. (ab SpeedoGDOS 4.0) In GEM/5, this function returns nothing for font index 0 or 1; for other indices, the font scaler is used to return data. A good test for a GEM/5 VDI would be to do a vqt_name on font 1, and see if it returned any values - if it did not, GEM/5 is running. Ab NVDI-3 gibt es eine erweiterte Form dieser Funktion. | ||||||||||
Ergebnis: | Die Funktion liefert die ID des Zeichensatzes zurück.
| ||||||||||
Verfügbar: | in allen TOS Version, ab SpeedoGDOS 4.0 in erweiterte Version
| ||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||
Querverweis: | Binding vst_load_fonts vst_name vst_font vqt_xfntinfo
|
C: | int16_t vqt_name ( int16_t handle, int16_t element_num, int8_t
*name );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int16_t vqt_name (int16_t handle, int16_t element_num, int8_t *name) { int16_t tmp; intin[0] = element_num; contrl[0] = 130; contrl[1] = 0; contrl[3] = 1; contrl[6] = handle; vdi (); for (tmp = 0; tmp < 32; tmp++) name[tmp] = intout[tmp+1]; return ( intout[0] ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire face name and ID by name« - Font ID und Namen suchen
| ||||||||||||||||||||
VDI-Nummer: | 230 (Unterfunktion 100)
| ||||||||||||||||||||
Deklaration: | int16_t vqt_name_and_id ( int16_t handle, int16_t font_format,
int8_t *font_name, int8_t *ret_name );
| ||||||||||||||||||||
Beschreibung: | Die Funktion sucht einen Zeichensatz mit einem bestimmten Namen
und Format. Es gilt:
Hinweis: Fehlende oder überschüssige Leerzeichen werden bei der Suche ignoriert. | ||||||||||||||||||||
Ergebnis: | Die Funktion liefert die ID des Zeichensatzes, bzw. den Wert 0,
wenn kein entsprechender Font auffindbar ist.
| ||||||||||||||||||||
Verfügbar: | ab NVDI Version 3.02
| ||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||
Querverweis: | Binding vst_name
|
C: | int16_t vqt_name_and_id ( int16_t handle, int16_t font_format,
int8_t *font_name, int8_t *ret_name );
| ||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t vqt_name_and_id (int16_t handle, int16_t font_format, int8_t *font_name, int8_t *ret_name) { intin[0] = font_format; intin[1..n] = font_name[0..n-1]; contrl[0] = 230; contrl[1] = 0; contrl[3] = n; contrl[5] = 100; contrl[6] = handle; vdi (); ret_name[0..m-1] = intout[1..m]; return ( intout[0] ); } | ||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire pair kerning information« - Korrekturfaktor für
Zeichen mit Pair-Kerning ermitteln
| ||||||||||||||
VDI-Nummer: | 235
| ||||||||||||||
Deklaration: | void vqt_pairkern ( int16_t handle, int16_t ch1, int16_t ch2,
fix31 *x, fix31 *y );
| ||||||||||||||
Beschreibung: | Die Funktion ermittelt den Korrekturfaktor für zwei Zeichen im
Falle des Pair-Kernings. Es gilt:
| ||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis zurück.
| ||||||||||||||
Verfügbar: | ab SpeedoGDOS 4.0 und ab NVDI 3.00
| ||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||
Querverweis: | Binding vqt_trackkern SpeedoGDOS NVDI Kerning
Track-Kerning Pair-Kerning
|
C: | void vqt_pairkern ( int16_t handle, int16_t ch1, int16_t ch2,
fix31 *x, fix31 *y );
| |||||||||||||||||||||||||||||||||
Umsetzung: |
void vqt_pairkern (int16_t handle, int16_t ch1, int16_t ch2, fix31 *x, fix31 *y) { intin[0] = ch1; intin[1] = ch2; contrl[0] = 235; contrl[1] = 0; contrl[3] = 2; contrl[6] = handle; vdi (); *x = intout[0..1]; *y = intout[2..3]; } | |||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire real outline font text extent« - Ermitteln des einen
Text umgebenden Rechteckes.
| ||||||||||||||||||||||||||
VDI-Nummer: | 240 (Unterfunktion 4200)
| ||||||||||||||||||||||||||
Deklaration: | void vqt_real_extent ( int16_t handle, int16_t x, int16_t y,
int8_t *string, int16_t *extent );
| ||||||||||||||||||||||||||
Beschreibung: | Die Funktion ermittelt ein minimales Rechteck, daß einen Text
unter Beachtung der Textattribute voll umgibt.
Beispiel: Der Funktion werden folgende Parameter übergeben:
Hinweis: Die Funktion beachtet sämtliche Texteffekte, Rotation, Schrägstellung, Pair-Kerning, Track-Kerning, Zeichenüberhänge, horizontale und vertikale Ausrichtung. | ||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||||||||||||
Verfügbar: | ab NVDI Version 3.00
| ||||||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||||||
Querverweis: | Binding vqt_extent vqt_f_extent
|
C: | void vqt_real_extent ( int16_t handle, int16_t x, int16_t y,
int8_t *string, int16_t *extent );
| ||||||||||||||||||||||||||||||||||||
Umsetzung: |
void vqt_real_extent (int16_t handle, int16_t x, int16_t y, int8_t *string, int16_t *extent) { intin[0..n-1] = string[0..n-1]; ptsin[0] = x; ptsin[1] = y; contrl[0] = 240; contrl[1] = 1; contrl[3] = n; contrl[5] = 4200; contrl[6] = handle; vdi (); extent[0..7] = ptsout[0..7]; } | ||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire track kerning information« - Korrekturfaktor für
Zeichensätze mit Track-Kerning ermitteln
| ||||||||||
VDI-Nummer: | 234
| ||||||||||
Deklaration: | void vqt_trackkern ( int16_t handle, fix31 *x, fix31 *y );
| ||||||||||
Beschreibung: | Die Funktion liefert den Korrekturfaktor für Zeichensätze mit
Track-Kerning. Es gilt:
| ||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis zurück.
| ||||||||||
Verfügbar: | ab SpeedoGDOS 4.0 und ab NVDI 3.00
| ||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||
Querverweis: | Binding GDOS SpeedoGDOS vqt_pairkern
|
C: | void vqt_trackkern ( int16_t handle, fix31 *x, fix31 *y );
| |||||||||||||||||||||||||||
Umsetzung: |
void vqt_trackkern (int16_t handle, fix31 *x, fix31 *y) { contrl[0] = 234; contrl[1] = 0; contrl[3] = 0; contrl[6] = handle; vdi (); *x = intout[0..1]; *y = intout[2..3]; } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Character Cell Width« - ermittelt die Breite einer
Zeichenzelle.
| ||||||||||||||
VDI-Nummer: | 117
| ||||||||||||||
Deklaration: | int16_t vqt_width ( int16_t handle, int8_t character, int16_t
*cell_width, int16_t *left_delta, int16_t *right_delta );
| ||||||||||||||
Beschreibung: | Die Funktion ermittelt die horizontalen Ausmaße eines Zeichens
des akuellen Zeichensatzes sowie der Zeichenzelle. Es gilt:
Hinweis: Texteffekte und Drehungen werden von der Funktion nicht beachtet. Wendet man die Funktion auf einen Vektorfont an, wird für das Zeichen character die gerundete Schrittweite zurückgegeben. Diese Schrittweite kann nur im Zusammenhang mit v_gtext benutzt werden. Versucht man diese Schrittweiten auf v_ftext anzuwenden, wird man falsche Zeichenpositionen berechnen. Um festzustellen, ob ein Font äquidistant (monospaced) oder proportional ist, sollten nicht alle Zeichenpaare über vqt_width verglichen, sondern zuerst überprüft werden, ob vqt_name() hierüber Informationen zurückgibt. Die Werte in left_delta und right_delta entsprechen exakt den Positionen in der Horizontal-Offset-Table. Fehlt diese Angabe im Zeichensatzkopf (was bei den meisten Bitmap-Fonts der Fall ist), so erhält man als Ergebnis eine Null. | ||||||||||||||
Ergebnis: | Die Funktion liefert den Wert -1, falls die Ausmaße aus
irgendeinem Grund nicht berechnet werden konnten.
| ||||||||||||||
Verfügbar: | Supported by all drivers.
| ||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||
Querverweis: | Binding vst_effects
|
C: | int16_t vqt_width ( int16_t handle, int8_t character, int16_t
*cell_width, int16_t *left_delta, int16_t *right_delta );
| |||||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t vqt_width (int16_t handle, int8_t character, int16_t *cell_width, int16_t *left_delta, int16_t *right_delta) { intin[0] = character; contrl[0] = 117; contrl[1] = 0; contrl[3] = 1; contrl[6] = handle; vdi (); *cell_width = ptsout[0]; *left_delta = ptsout[2]; *right_delta = ptsout[4]; return ( intout[0] ); } | |||||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire extended font information« - Informationen über
einen Zeichensatz ermitteln.
| ||||||||||||||||||||||||||||||
VDI-Nummer: | 229 (Opcode 0)
| ||||||||||||||||||||||||||||||
Deklaration: | int16_t vqt_xfntinfo ( int16_t handle, int16_t flags, int16_t
id, int16_t index, XFNT_INFO *info );
| ||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion ermittelt bestimmte Informationen über einen
Zeichensatz. Es gilt:
Hinweis: Wenn ein von 0 verschiedener Index übergeben wird, sucht die Funktion den entsprechenden Zeichensatz, und liefert die gewünschten Informationen. Ist index = 0 wird der Zeichensatz mit der ID id gesucht; sollte id ebenfalls 0 sein, so werden Informationen über den z.Zt. eingestellten Font zurückgegeben. Bit 8 und 9 von flags unterscheiden sich in der Funktion nur bei Bitmap-Fonts. Ist Bit 8 gesetzt, werden die Höhen geliefert, die ohne Vergrößerung vorhanden sind. Wenn Bit 9 gesetzt ist, werden die Höhen geliefert, bei denen vergrößert wird. Damit die gewünschten Informationen abgelegt werden können, muß die Größe der aufnehmenden Struktur in der Komponente size eingetragen werden. | ||||||||||||||||||||||||||||||
Ergebnis: | Das Funktionsergebnis ist z.Zt. unbekannt.
| ||||||||||||||||||||||||||||||
Verfügbar: | ab NVDI 3.02
| ||||||||||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||||||||||
Querverweis: | Binding vqt_name
|
C: | int16_t vqt_xfntinfo ( int16_t handle, int16_t flags, int16_t
id, int16_t index, XFNT_INFO *info );
| |||||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t vqt_xfntinfo (int16_t handle, int16_t flags, int16_t id, int16_t index, XFNT_INFO *info) { intin[0] = flags; intin[1] = id; intin[2] = index; intin[3..4] = info; contrl[0] = 229; contrl[1] = 0; contrl[3] = 5; contrl[5] = 0; contrl[6] = handle; vdi (); return ( intout[1] ); } | |||||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Cell Array« - ermittelt Informationen über eine
dargestellte Farbtabelle.
| ||||||||||||||||||||||||||||||
VDI-Nummer: | 27
| ||||||||||||||||||||||||||||||
Deklaration: | void vq_cellarray ( int16_t handle, int16_t *pxyarray, int16_t
row_length, int16_t num_rows, int16_t *el_used, int16_t *rows_used,
int16_t *status, int16_t *colarray );
| ||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion gibt Auskunft über die Definition des
Cell-Arrays. Es gilt:
Hinweis: Die Funktion ist nicht auf allen Geräten verfügbar. | ||||||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||||||||||||||||
Verfügbar: | Not supported by any known drivers.
| ||||||||||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||||||||||
Querverweis: | Binding v_cellarray
|
C: | void vq_cellarray ( int16_t handle, int16_t *pxyarray, int16_t
row_length, int16_t num_rows, int16_t *el_used, int16_t *rows_used,
int16_t *status, int16_t *colarray );
| ||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
void vq_cellarray (int16_t handle, int16_t *pxyarray, int16_t row_length, int16_t num_rows, int16_t *el_used, int16_t *rows_used, int16_t *status, int16_t *colarray) { ptsin[0..3] = pxarray[0..3]; contrl[0] = 27; contrl[1] = 2; contrl[3] = 0; contrl[6] = handle; contrl[7] = row_length; contrl[8] = num_rows; vdi (); *el_used = contrl[9]; *rows_used = contrl[10]; *status = contrl[11]; colarray[0..n-1] = intout[0..n-1]; } | ||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire Color Representation« - ermittelt die Intensität
einer Farbe.
| ||||||||||||||||||||
VDI-Nummer: | 26
| ||||||||||||||||||||
Deklaration: | int16_t vq_color ( int16_t handle, int16_t color_index, int16_t
set_flag, int16_t *rgb );
| ||||||||||||||||||||
Beschreibung: | Die Funktion ermittelt die eingestellten Farbintensitäten der
Farbpalette. Es gilt:
Hinweis: Gesetzte und tatsächliche Farbintensität können bei Systemen mit einer CLUT voneinander abweichen, wenn die Anzahl der möglichen Farbabstufungen zu klein ist. Beispiel: Verfügt ein Monitor nur über zwei Intensitäten, so teilt sich der Bereich in die Teilbereiche 0..500 und 501..1000. Die tatsächliche Intensität kann aber nur 0 oder 1000 sein; egal welche Zahl aus dem Bereich von 501 bis 1000 gewählt wird, es wird immer die Intensität 1000 gesetzt. Daher kann z.B. die gesetzte Intensität den Wert 623 und die tatsächliche den Wert 1000 haben. Bei Direct-RGB (keine CLUT) wird meistens die tatsächlich eingestellte Intensität auch als die vom Anwender übergebene Intensität zurückgeliefert, da die Anzahl der Abstufungen ausreichend groß ist. | ||||||||||||||||||||
Ergebnis: | Die Funktion liefert -1, wenn der Farbindex außerhalb der
Grenzen ist.
| ||||||||||||||||||||
Verfügbar: | Alle Treiber.
| ||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||
Querverweis: | Binding vs_color vs_color2
|
C: | int16_t vq_color ( int16_t handle, int16_t color_index, int16_t
set_flag, int16_t *rgb );
| |||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t vq_color (int16_t handle, int16_t color_index, int16_t set_flag, int16_t *rgb) { intin[0] = color_index; intin[1] = set_flag; contrl[0] = 26; contrl[1] = 0; contrl[3] = 2; contrl[6] = handle; vdi (); rgb[0] = intout[1]; rgb[1] = intout[2]; rgb[2] = intout[3]; return ( intout[0] ); } | |||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire device status info« - Status des Ausgabegeräts
erfragen.
| ||||||||||||||||||
VDI-Nummer: | 248
| ||||||||||||||||||
Deklaration: | void vq_devinfo ( int16_t handle, int16_t device, int16_t
*dev_open, int8_t *file_name, int8_t *device_name );
| ||||||||||||||||||
Beschreibung: | Die Funktion überprüft, ob ein Treiber für ein bestimmtes
Ausgabegerät installiert worden ist. Es gilt:
Hinweis: Wenn der Dateiname leer ist, ist der Treiber nicht vorhanden. | ||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||||
Verfügbar: | ab NVDI 3.00
| ||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||
Querverweis: | Binding vq_ext_devinfo vqt_devinfo GDOS SpeedoGDOS
NVDI
|
C: | void vq_devinfo ( int16_t handle, int16_t device, int16_t
*dev_open, int8_t *file_name, int8_t *device_name );
| |||||||||||||||||||||||||||||||||
Umsetzung: |
void vq_devinfo (int16_t handle, int16_t device, int16_t *dev_open, int8_t *file_name, int8_t *device_name) { intin[0] = device; contrl[0] = 248; contrl[1] = 0; contrl[3] = 1; contrl[6] = handle; vdi (); *dev_open = ptsout[0]; dev_name[0..p] = ptsout[1..p-1]; file_name[0..i-1] = intout[0..i-1] } | |||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Extended Inquire Funktion« - ermittelt Informationen über
eine Arbeitsstation.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VDI-Nummer: | 102
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deklaration: | void vq_extnd ( int16_t handle, int16_t owflag, int16_t
*work_out );
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion ermittelt Angaben über die Fähigkeiten einer
Workstation. Es gilt:
Hinweis: Die hier angegebene Belegung des work_out Arrays gilt für den Fall, daß die erweiterten Informationen (owflag = 1) ermittelt werden sollen. Die Informationen in den Feldern 21-24 und 40-43 sind nur dann gültig, wenn work_out[20] einen Wert ungleich 0 enthält. Die nicht bedruckbaren Ränder werden normalerweise nur bei Druckertreibern zurückgeliefert. Sie ermöglichen es einer Applikation, Dokumente zu zentrieren oder dem Benutzer ein zutreffendes Bild der ausgedruckten Seite zu liefern, indem die Ränder im Dokument angezeigt werden. (der bei v_opnwk in work_out[0/1] zurückgelieferte Bereich ist der bedruckbare Bereich). Wenn genauere Pixelgrößen zurückgeliefert werden, sollte man diese besonders beim Drucken zur Positionsberechnung der einzelnen Grafikobjekte benutzen, denn die Benutzung der Werte von v_opnwk in work_out[3..4] kann im schlimmsten Fall auf einem DIN-A4 Blatt zu einer Ungenauigkeit von insgesamt 2 bis 3 mm führen. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein direktes Funktionsergebnis.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verfügbar: | Supported by all drivers.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding v_contourfill vswr_mode v_pline v_pmarker
v_fillarea v_opnwk
|
C: | void vq_extnd ( int16_t handle, int16_t owflag, int16_t
*work_out );
| ||||||||||||||||||||||||||||||
Umsetzung: |
void vq_extnd (int16_t handle, int16_t owflag, int16_t *work_out) { intin[0] = owflag; contrl[0] = 102; contrl[1] = 0; contrl[3] = 1; contrl[6] = handle; vdi (); work_out[0..44] = intout[0..44]; work_out[45..56] = ptsout[0..11]; } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire extended device status info« - Informationen über
einen Treiber ermitteln.
| ||||||||||||||||||||
VDI-Nummer: | 248 (Unterfunktion 4242)
| ||||||||||||||||||||
Deklaration: | int16_t vq_ext_devinfo ( int16_t handle, int16_t device,
int16_t *dev_exists, int8_t *file_path, int8_t *file_name, int8_t
*name );
| ||||||||||||||||||||
Beschreibung: | Die Funktion ermittelt Informationen über einen GDOS-Treiber.
Es gilt:
| ||||||||||||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis den Wert 0, wenn der Treiber
noch nicht geöffnet worden ist.
| ||||||||||||||||||||
Verfügbar: | ab NVDI Version 3.00
| ||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||
Querverweis: | Binding vq_devinfo vq_devinfo GDOS SpeedoGDOS NVDI
|
C: | int16_t vq_ext_devinfo ( int16_t handle, int16_t device,
int16_t *dev_exists, int8_t *file_path, int8_t *file_name, int8_t
*name );
| ||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t vq_ext_devinfo (int16_t handle, int16_t device, int16_t *dev_exists, int8_t *file_path, int8_t *file_name, int8_t *name) { intin[0] = device; intin[1..2] = file_path; intin[3..4] = file_name; intin[5..6] = name; contrl[0] = 248; contrl[1] = 0; contrl[3] = 7; contrl[5] = 4242; contrl[6] = handle; vdi (); *dev_exists = intout[0]; return ( intout[1] ); } | ||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: |
|
VDI-Nummer: | 238
|
Deklaration: | void vq_ptsinsz ( void );
|
Beschreibung: | Einige GDOSe fragen den Treiber mit dieser Funktion wie groß
dessen PTSIN Feld ist.
|
Ergebnis: | Größe des PTSIN Feld.
|
Verfügbar: | Verschiedene GDOS
|
Gruppe: | Auskunftsfunktionen
|
Querverweis: | Binding
|
Name: | »Inquire Screen Information« - liefert genauere Angaben über
das Bildschirmformat
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VDI-Nummer: | 102 (Unterfunktion 1, Opcode 2)
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deklaration: | void vq_scrninfo ( int16_t handle, int16_t *work_out );
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion vq_scrninfo liefert genauere Angaben über das
vorhandene Bildschirmformat. Diese Informationen sind in erster Linie
interessant für Programme, die
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Alle Informationen werden über das work_out Array nach
außen gereicht:
Falls eine Hardware-CLUT (work_out[1] == 1) vorhanden ist:
Falls HiColor, TrueColor oder ähnliches vorhanden ist:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verfügbar: | ab EdDI-Version 1.00.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Achtung: | Das bei NVDI 2.5x beiliegende Enhancer.prg, das diesen Aufruf
für Rechner ohne NVDI simuliert, kopiert manchmal 273 Werte. Es
sollte deshalb darauf geachtet werden, daß work_out 273 Werte fassen
kann.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding Beispiel-Belegung XIMG-Format Rasterformate NVDI Bitmapformat bei Druckertreibern
|
C: | void vq_scrninfo ( int16_t handle, int16_t *work_out );
| ||||||||||||||||||||||||||||||
Umsetzung: |
void vq_scrninfo (int16_t handle, int16_t *work_out) { intin[0] = 2; contrl[0] = 102; contrl[1] = 0; contrl[3] = 1; contrl[5] = 1; contrl[6] = handle; vdi (); work_out[0..272] = intout[0..272]; } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Die folgende Liste enthält Beispiele für das von vq_scrninfo belegte work_out-Array für verschiedene Bildschirmauflösungen:
In 256 Farben auf dem Falcon würden folgende Ausgaben erfolgen:
work_out | Wert | Bedeutung |
0 | 0 | Interleaved Planes, wortweise |
1 | 1 | Hardware-CLUT vorhanden |
2 | 8 | 8 Bit pro Pixel |
3/4 | 256 | 256 verschiedene Farben gleichzeitig möglich |
5 | xxxx | Bitmapbreite in Bytes (erst ab EdDI 1.1) |
6/7 | xxxxL | Bitmapadresse (erst ab EdDI 1.1) |
8 | 6 | 6 Bits für die Rot-Intensität |
9 | 6 | 6 Bits für die Grün-Intensität |
10 | 6 | 6 Bits für die Blau-Intensität |
11 | 0 | kein Bit für Alpha-Channel |
12 | 0 | kein Bit für Genlock |
13 | 0 | kein unbenutzes Bit |
14 | 1 | normale Bitreihenfolge (erst ab EdDI 1.1) |
16 | 0 | Pixelwert für VDI-Farbindex 0 |
17 | 255 | Pixelwert für VDI-Farbindex 1 |
18 | 2 | Pixelwert für VDI-Farbindex 2 |
... | ... | |
271 | 15 | Pixelwert für VDI-Farbindex 255 |
In HiColor auf dem Falcon würden folgende Ausgaben erfolgen:
work_out | Wert | Bedeutung |
0 | 2 | Packed Pixels |
1 | 2 | HiColor bzw. TrueColor |
2 | 16 | 16 Bit pro Pixel |
3/4 | 32768 | 32768 verschiedene Farben gleichzeitig möglich |
5 | xxxx | Bitmapbreite in Bytes (erst ab "EdDI 1.1) |
6/7 | xxxxL | Bitmapadresse (erst ab EdDI 1.1) |
8 | 5 | 5 Bits für die Rot-Intensität |
9 | 5 | 5 Bits für die Grün-Intensität |
10 | 5 | 5 Bits für die Blau-Intensität |
11 | 0 | kein Bit für Alpha-Channel |
12 | 1 | ein Bit für Genlock |
13 | 0 | kein unbenutzes Bit |
14 | 2 | Falcon 15-Bit-Format mit 1 Overlay-Bit (EdDI 1.1) |
16 | 11 | Bit 0 der Rot-Intensität (niederwertigstes Bit) |
befindet sich in Bit 11 des Pixels | ||
17 | 12 | Bit 1 befindet sich in Bit 12 des Pixels |
18 | 13 | ... |
19 | 14 | ... |
20 | 15 | Bit 4 der Rot-Intensität (höchstwertigstes Bit) |
befindet sich in Bit 15 des Pixels | ||
21..31 | -1 | Bits werden nicht für Rot-Intensität benutzt |
32 | 6 | Bit 0 der Grün-Intensität (niederwertigstes Bit) |
befindet sich in Bit 6 des Pixels | ||
33 | 7 | Bit 1 befindet sich in Bit 7 des Pixels |
34 | 8 | ... |
35 | 9 | ... |
36 | 10 | Bit 4 der Grün-Intensität (höchstwertigstes Bit) |
befindet sich in Bit 10 des Pixels | ||
37..37 | -1 | Bits werden nicht für Grün-Intensität benutzt |
48 | 0 | Bit 0 der Blau-Intensität (niederwertigstes Bit) |
befindet sich in Bit 0 des Pixels | ||
49 | 1 | Bit 1 befindet sich in Bit 1 des Pixels |
50 | 2 | ... |
51 | 3 | ... |
52 | 4 | Bit 4 der Blau-Intensität (höchstwertigstes Bit) |
befindet sich in Bit 4 des Pixels | ||
53..63 | -1 | Bits werden nicht für Blau-Intensität benutzt |
64..79 | -1 | kein Alpha-Channel |
80 | 5 | Bit für Genlock |
81..95 | -1 | nicht für Genlock benutzt |
96..127 | -1 | keine unbenutzten Bits |
In HiColor auf einer VGA-Grafikkarte würden folgende Ausgaben erfolgen:
work_out | Wert | Bedeutung |
0 | 2 | Packed Pixels |
1 | 2 | HiColor bzw. TrueColor |
2 | 16 | 16 Bit pro Pixel |
3/4 | 32768 | 32768 verschiedene Farben gleichzeitig möglich |
5 | xxxx | Bitmapbreite in Bytes (erst ab EdDI 1.1) |
6/7 | xxxxL | Bitmapadresse (erst ab EdDI 1.1) |
8 | 5 | 5 Bits für die Rot-Intensität |
9 | 5 | 5 Bits für die Grün-Intensität |
10 | 5 | 5 Bits für die Blau-Intensität |
11 | 0 | kein Bit für Alpha-Channel |
12 | 0 | kein Bit für Genlock |
13 | 1 | ein unbenutzes Bit |
14 | 129 | 15 Bit in Intel-Darstellung |
(gggbbbbb-xrrrrrgg;erst ab EdDI 1.1) | ||
16 | 2 | Bit 0 der Rot-Intensität (niederwertigstes Bit) |
befindet sich in Bit 2 des Pixels | ||
17 | 3 | Bit 1 befindet sich in Bit 3 des Pixels |
18 | 4 | ... |
19 | 5 | ... |
20 | 6 | Bit 4 der Rot-Intensität (höchstwertigstes Bit) |
befindet sich in Bit 6 des Pixels | ||
21..31 | -1 | Bits werden nicht für Rot-Intensität benutzt |
32 | 13 | Bit 0 der Grün-Intensität (niederwertigstes Bit) |
befindet sich in Bit 13 des Pixels | ||
33 | 14 | Bit 1 befindet sich in Bit 14 des Pixels |
34 | 15 | ... |
35 | 0 | ... |
36 | 1 | Bit 4 der Grün-Intensität (höchstwertigstes Bit) |
befindet sich in Bit 1 des Pixels | ||
37..37 | -1 | Bits werden nicht für Grün-Intensität benutzt |
48 | 8 | Bit 0 der Blau-Intensität (niederwertigstes Bit) |
befindet sich in Bit 8 des Pixels | ||
49 | 9 | Bit 1 befindet sich in Bit 9 des Pixels |
50 | 10 | ... |
51 | 11 | ... |
52 | 12 | Bit 4 der Blau-Intensität (höchstwertigstes Bit) |
befindet sich in Bit 12 des Pixels | ||
53..63 | -1 | Bits werden nicht für Blau-Intensität benutzt |
64..79 | -1 | kein Alpha-Channel |
80..95 | -1 | nicht für Genlock benutzt |
96 | 7 | unbenutztes Bit |
97..127 | -1 | keine unbenutzten Bits |
Querverweis: vq_scrninfo Rasterformate NVDI
Name: | Informationen über einen Treiber ermitteln.
| ||||||||
VDI-Nummer: | 180
| ||||||||
Deklaration: | DRV_INFO *v_create_driver_info( int16_t handle, int16_t
driver_id );
| ||||||||
Beschreibung: | Die Funktion liefert Informationen über Gerätetreiber.
| ||||||||
Ergebnis: | Die Funktion liefert einen Zeiger auf ein DRV_INFO Struktur
oder 0L.
| ||||||||
Verfügbar: | NVDI 5
| ||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||
Querverweis: | Binding
|
C: | DRV_INFO *v_create_driver_info( int16_t handle, int16_t
driver_id );
| ||||||||||||||||||||||||||||||
Umsetzung: |
DRV_INFO *v_create_driver_info( int16_t handle, int16_t driver_id ) { int16_t save_conf; intin[0] = driver_id; contrl[0] = 180; contrl[1] = 0; contrl[3] = 1; contrl[5] = 0; contrl[6] = handle; contrl[2] = 0; contrl[4] = 0; save_conf = disable_nvdi_errors(); vdi (); enable_nvdi_errors( save_conf ); if ( contrl[4] >= 2 ) return(*(DRV_INFO **) &intout[0] ); return( 0L ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | Informationen über einen Treiber verwerfen.
| ||||||||
VDI-Nummer: | 181
| ||||||||
Deklaration: | int16_t v_delete_driver_info( int16_t handle, DRV_INFO
*drv_info );
| ||||||||
Beschreibung: |
| ||||||||
Ergebnis: | Unbekannt.
| ||||||||
Verfügbar: | NVDI 5
| ||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||
Querverweis: | Binding v_create_driver_info
|
C: | int16_t v_delete_driver_info( int16_t handle, DRV_INFO
*drv_info );
| |||||||||||||||||||||||||||
Umsetzung: |
int16_t v_delete_driver_info( int16_t handle, DRV_INFO *drv_info ) { *(DRV_INFO **) &intin[0] = drv_info; contrl[0] = 181; contrl[1] = 0; contrl[3] = 2; contrl[5] = 0; contrl[6] = handle; vdi (); return( intout[0] ); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Get character bitmap information« - Informationen über ein
Vektorzeichen ermitteln
| ||||||||||||||||||||||
VDI-Nummer: | 239
| ||||||||||||||||||||||
Deklaration: | void v_getbitmap_info ( int16_t handle, int16_t ch, fix31
*advx, fix31 *advy, fix31 *xoff, fix31 *yoff, int16_t *width, int16_t
*height, int16_t **bitmap );
| ||||||||||||||||||||||
Beschreibung: | Die Funktion liefert Informationen über ein Zeichen eines
Vektorzeichensatzes.
Hinweis: Um auch ohne NVDI nachvollziehbare Ausgaben zu bekommen, sollten die Texteffekte ausgeschaltet sein. Da der Zeiger auf die Bitmap in der Regel in den Zeichencache verweist, sollte man sich die Bitmap direkt nach dem Aufruf kopieren (Tip: AES-Kontextswitch durch wind_update verhindern!) - andernfalls könnte der Zeiger schon wieder ungültig sein. Außerdem sollte man v_getbitmap_info nicht für enorm große Zeichen (z.B. 300 pt und mehr) aufrufen, da diese je nach Cache-Größe evtl. nicht mehr komplett aufgebaut werden können. Die Bitmap enthält in diesem Fall nur einen Teil des Zeichens. Man sollte diese Funktion nicht mißbrauchen, um eine eigene Textausgabe zu bauen - es lohnt sich nicht und Pair-Kerning wäre auch nicht möglich. | ||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis zurück.
| ||||||||||||||||||||||
Verfügbar: | ab SpeedoGDOS 4.00 und ab NVDI 3.00
| ||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||
Querverweis: | Binding vst_effects SpeedoGDOS NVDI
|
C: | void v_getbitmap_info ( int16_t handle, int16_t ch, fix31
*advx, fix31 *advy, fix31 *xoff, fix31 *yoff, int16_t *width, int16_t
*height, int16_t **bitmap );
| |||||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
void v_getbitmap_info (int16_t handle, int16_t ch, fix31 *advx, fix31 *advy, fix31 *xoff, fix31 *yoff, int16_t *width, int16_t *height, int16_t **bitmap) { intin[0] = ch; contrl[0] = 239; contrl[1] = 0; contrl[3] = 1; contrl[6] = handle; vdi (); *width = intout[0]; *height = intout[1]; *advx = intout[2..3]; *advy = intout[4..5]; *xoff = intout[6..7]; *yoff = intout[8..9]; *bitmap = intout[10..11]; } | |||||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Inquire extended device status info« - Informationen über
einen Treiber ermitteln.
| ||||||||||||||||||||||
VDI-Nummer: | -1 (Unterfunktion 4)
| ||||||||||||||||||||||
Deklaration: | void v_get_driver_info ( int16_t device_id, int16_t
info_select, int8_t *info_string );
| ||||||||||||||||||||||
Beschreibung: | Die Funktion liefert Informationen Gerätetreiber und
Zeichensätze.
| ||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis zurück.
| ||||||||||||||||||||||
Verfügbar: | GEM/3
| ||||||||||||||||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||||||||||||||||
Querverweis: | Binding
|
C: | void v_get_driver_info ( int16_t device_id, int16_t
info_select, int8_t *info_string );
| |||||||||||||||||||||||||||||||||
Umsetzung: |
void v_get_driver_info ( int16_t device_id, int16_t info_select, int8_t *info_string ) { intin[0] = device_id; intin[1] = info_select; contrl[0] = -1; contrl[1] = 0; contrl[3] = 2; contrl[5] = 4; contrl[6] = 0; vdi (); if ( info_select != 5 ) { bptr = (int8_t *) intout ; for ( ii = 0; ii < contrl[ 4 ]; ii ++ ) *info_string++ = *bptr++ ; *info_string = 0 ; } else *(int16_t *)info_string = intout[ 0 ] ; } | |||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | Ermitteln der Default Druckereinstellungen.
| ||||||||
VDI-Nummer: | 182 (Unterfunktion 0)
| ||||||||
Deklaration: | int16_t v_read_default_settings( int16_t handle, PRN_SETTINGS
*settings );
| ||||||||
Beschreibung: |
| ||||||||
Ergebnis: | Im Fehlerfall 0.
| ||||||||
Verfügbar: | NVDI 5
| ||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||
Querverweis: | Binding v_write_default_settings
|
C: | int16_t v_read_default_settings( int16_t handle, PRN_SETTINGS
*settings );
| |||||||||||||||||||||||||||
Umsetzung: |
int16_t v_read_default_settings( int16_t handle, PRN_SETTINGS *settings ) { int16_t save_conf; *(PRN_SETTINGS **) &intin[0] = settings; contrl[0] = 182; contrl[1] = 0; contrl[3] = 2; contrl[5] = 0; /* Unterfunktion 0 */ contrl[6] = handle; contrl[2] = 0; contrl[4] = 0; save_conf = disable_nvdi_errors(); vdi (); enable_nvdi_errors( save_conf ); if ( contrl[4] >= 1 ) return( intout[0] ); return( 0 ); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | Setzen der Default Druckereinstellungen.
| ||||||||
VDI-Nummer: | 182 (Unterfunktion 1)
| ||||||||
Deklaration: | int16_t v_write_default_settings( int16_t handle, PRN_SETTINGS
*settings );
| ||||||||
Beschreibung: |
| ||||||||
Ergebnis: | Im Fehlerfall 0.
| ||||||||
Verfügbar: | NVDI 5
| ||||||||
Gruppe: | Auskunftsfunktionen
| ||||||||
Querverweis: | Binding v_read_default_settings
|
C: | int16_t v_write_default_settings( int16_t handle, PRN_SETTINGS
*settings );
| |||||||||||||||||||||||||||
Umsetzung: |
int16_t v_write_default_settings( int16_t handle, PRN_SETTINGS *settings ) { int16_t save_conf; *(PRN_SETTINGS **) &intin[0] = settings; contrl[0] = 182; contrl[1] = 0; contrl[3] = 2; contrl[5] = 1; /* Unterfunktion 1 */ contrl[6] = handle; contrl[2] = 0; contrl[4] = 0; save_conf = disable_nvdi_errors(); vdi (); enable_nvdi_errors( save_conf ); if ( contrl[4] >= 1 ) return( intout[0] ); return( 0 ); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Der von vqt_fontheader gelieferte Zeichensatz-Kopf ist folgendermaßen aufgebaut:
FH_FMVER 0 /* U "D4.0" CR LF NULL NULL 8 bytes */ FH_FNTSZ 8 /* U Font size (bytes) 4 bytes */ FH_FBFSZ 12 /* U Min font buffer size (bytes) 4 bytes */ FH_CBFSZ 16 /* U Min char buffer size (bytes) 2 bytes */ FH_HEDSZ 18 /* U Header size (bytes) 2 bytes */ FH_FNTID 20 /* U Source Font ID 2 bytes */ FH_SFVNR 22 /* U Source Font Version Number 2 bytes */ FH_FNTNM 24 /* U Source Font full name 70 bytes */ FH_MDATE 94 /* U Manufacturing Date 10 bytes */ FH_LAYNM 104 /* U Layout (character set) Name 70 bytes */ FH_CPYRT 174 /* U Copyright Notice 78 bytes */ FH_NCHRL 252 /* U Number of Chars in Layout 2 bytes */ FH_NCHRF 254 /* U Total Number of Chars in Font 2 bytes */ FH_FCHRF 256 /* U Index of first char in Font 2 bytes */ FH_NKTKS 258 /* U Number of kerning tracks in font 2 bytes */ FH_NKPRS 260 /* U Number of kerning pairs in font 2 bytes */ FH_FLAGS 262 /* U Font flags 1 byte: */ /* Bit 0: Extended Mode if set, */ Compact mode (default) if clear */ /* Bit 1: not used */ /* Bit 2: not used */ /* Bit 3: not used */ /* Bit 4: not used */ /* Bit 5: not used */ /* Bit 6: not used */ /* Bit 7: not used */ FH_CLFGS 263 /* U Classification flags 1 byte: */ /* Bit 0: Italic */ /* Bit 1: Monospace */ /* Bit 2: Serif */ /* Bit 3: Display */ /* Bit 4: reserved */ /* Bit 5: reserved */ /* Bit 6: reserved */ /* Bit 7: reserved */ FH_FAMCL 264 /* U Family Classification 1 byte: */ /* 0: Don't care */ /* 1: Serif */ /* 2: Sans serif */ /* 3: Monospace */ /* 4: Script or calligraphic */ /* 5: Decorative */ /* 6-255: not used */ FH_FRMCL 265 /* U Font form Classification 1 byte: */ /* Bits 0-3 (width type): */ /* 0-3: reserved */ /* 4: Condensed */ /* 5: reserved for 3/4 condensed */ /* 6: Semi-condensed */ /* 7: reserved for 1/4 condensed */ /* 8: Normal */ /* 9: reserved for 3/4 expanded */ /* 10: Semi-expanded */ /* 11: reserved for 1/4 expanded */ /* 12: Expanded */ /* 13-15: reserved */ /* Bits 4-7 (Weight): */ /* 0: reserved */ /* 1: Thin */ /* 2: Ultralight */ /* 3: Extralight */ /* 4: Light */ /* 5: Book */ /* 6: Normal */ /* 7: Medium */ /* 8: Semibold */ /* 9: Demibold */ /* 10: Bold */ /* 11: Extrabold */ /* 12: Ultrabold */ /* 13: Heavy */ /* 14: Black */ /* 15-16: reserved */ FH_SFNTN 266 /* U Short Font Name 32 bytes */ FH_SFACN 298 /* U Short Face Name 16 bytes */ FH_FNTFM 314 /* U Font form 14 bytes */ FH_ITANG 328 /* U Italic angle 2 bytes (1/256th deg) */ FH_ORUPM 330 /* U Number of ORUs per em 2 bytes */ FH_WDWTH 332 /* U Width of Wordspace 2 bytes */ FH_EMWTH 334 /* U Width of em-space 2 bytes */ FH_ENWTH 336 /* U Width of en-space 2 bytes */ FH_TNWTH 338 /* U Width of thin-space 2 bytes */ FH_FGWTH 340 /* U Width of figure-space 2 bytes */ FH_FXMIN 342 /* U Font-wide min X value 2 bytes */ FH_FYMIN 344 /* U Font-wide min Y value 2 bytes */ FH_FXMAX 346 /* U Font-wide max X value 2 bytes */ FH_FYMAX 348 /* U Font-wide max Y value 2 bytes */ FH_ULPOS 350 /* U Underline position 2 bytes */ FH_ULTHK 352 /* U Underline thickness 2 bytes */ FH_SMCTR 354 /* U Small caps transformation 6 bytes */ FH_DPSTR 360 /* U Display sups transformation 6 bytes */ FH_FNSTR 366 /* U Footnote sups transformation 6 bytes */ FH_ALSTR 372 /* U Alpha sups transformation 6 bytes */ FH_CMITR 378 /* U Chemical infs transformation 6 bytes */ FH_SNMTR 384 /* U Small nums transformation 6 bytes */ FH_SDNTR 390 /* U Small denoms transformation 6 bytes */ FH_MNMTR 396 /* U Medium nums transformation 6 bytes */ FH_MDNTR 402 /* U Medium denoms transformation 6 bytes */ FH_LNMTR 408 /* U Large nums transformation 6 bytes */ FH_LDNTR 414 /* U Large denoms transformation 6 bytes */ /* Transformation data format: */ /* Y position 2 bytes */ /* X scale 2 bytes (1/4096ths) */ /* Y scale 2 bytes (1/4096ths) */ SIZE_FW FH_LDNTR + 6 /* size of nominal font header */ EXP_FH_METRES SIZE_FW /* offset to expansion field metric resolution (optional) */
Querverweis: vqt_fontheader Header bei Bitmap GDOS-Fonts Vektorfonts
int16_t disable_nvdi_errors ( void ) { int16_t save_conf; NVDI_STRUC *p; if ( get_cookie( 'NVDI', p ) ) { save_conf = p->nvdi_config; p->nvdi_config |= 2; p->nvdi_config &= 0xFFBF; return save_conf; } return 0; }
void enable_nvdi_errors ( int16_t save_conf ) { NVDI_STRUC *p; if ( get_cookie( 'NVDI', p ) ) p->nvdi_config = save_conf; return; }