VDI
VDI-Bindings
Ausgabefunktionen
Diese Bibliothek enthält Funktionen, die das Einstellen
bestimmter Attribute ermöglichen. Dabei stehen die folgenden
Kategorien zur Verfügung:
Hinweis: Die eingestellten Attribute gelten dabei für
eine einzelne Workstation, und behalten ihre Gültigkeit, bis das
Programm terminiert, oder die Attribute anders eingestellt werden.
Querverweis: Workstations des VDI Style-Guidelines
Hinweis: Die eingestellten Attribute gelten dabei für
eine einzelne Workstation, und behalten ihre Gültigkeit, bis das
Programm terminiert, oder die Attribute anders eingestellt werden.
Querverweis:
Workstations des VDI Style-Guidelines Grundlagen des VDI
Diese Gruppe von Funktionen ermöglicht es, verschiedene
Attribute zum Füllen von Flächen zu manipulieren. Zu diesem Zweck
stehen die folgenden Routinen zur Verfügung:
Die eingestellten Attribute gelten dabei für eine einzelne
Workstation, und behalten ihre Gültigkeit, bis das Programm
terminiert, oder die Attribute anders eingestellt werden.
Querverweis:
Workstations des VDI Fülltyp und Musterindex Style-Guidelines Grundlagen des VDI
Diese Gruppe von Funktionen ermöglicht es, verschiedene
Attribute zum Zeichnen von Linien zu manipulieren. Zu diesem Zweck
stehen die folgenden Routinen zur Verfügung:
Die eingestellten Attribute gelten dabei für eine einzelne
Workstation, und behalten ihre Gültigkeit, bis das Programm
terminiert, oder die Attribute anders eingestellt werden.
Querverweis:
Workstations des VDI Style-Guidelines
Diese Gruppe von Funktionen ermöglicht es, verschiedene
Attribute zum Zeichnen von Markierungen zu manipulieren. Zu diesem
Zweck stehen die folgenden Routinen zur Verfügung:
Hinweis: Die eingestellten Attribute gelten dabei für
eine einzelne Workstation, und behalten ihre Gültigkeit, bis das
Programm terminiert, oder die Attribute anders eingestellt werden.
Querverweis: Workstations des VDI Style-Guidelines
Diese Gruppe von Funktionen ermöglicht es, verschiedene
Attribute des Text-Handlings zu manipulieren. Zu diesem Zweck stehen
die folgenden Routinen zur Verfügung:
Hinweis: Die eingestellten Attribute gelten dabei für
eine einzelne Workstation, und behalten ihre Gültigkeit, bis das
Programm terminiert, oder die Attribute anders eingestellt werden.
Querverweis: Workstations des VDI Style-Guidelines
Diese Gruppe von Funktionen ermöglicht die Festlegung des
Schreibmodus sowie der Intenstität einer Farbe; sie umfaßt die
folgenden Routinen:
Hinweis: Die eingestellten Attribute gelten dabei für
eine einzelne Workstation, und behalten ihre Gültigkeit, bis das
Programm terminiert, oder die Attribute anders eingestellt werden.
Querverweis: Workstations des VDI Style-Guidelines
Name: |
»Set Background Color« - Hintergrundfarbe setzen
|
VDI-Nummer: |
201 (Unterfunktion 4)
|
Deklaration: |
int16_t vsr_bg_color ( int16_t handle, int32_t color_space,
COLOR_ENTRY *fg_color );
|
Beschreibung: |
Diese Funktionen setzen die Hintergrundfarbe für Bitmaps.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color_space |
Farbraum (z.Zt. nur 0 für eingestellten Farbraum oder
CSPACE_RGB)
|
fg_color |
COLOR_ENTRY der Hintergrundfarbe
|
|
Ergebnis: |
-1 = falsche Unterfunktionsnummer
0 = Funktion nicht vorhanden
1 = alles in Ordnung
|
Verfügbar: |
ab NVDI 5.00
|
Gruppe: |
Bitmap-Attribute
|
Querverweis: |
Binding
|
Name: |
»Set Foreground Color« - Vordergrundfarbe setzen
|
VDI-Nummer: |
200 (Unterfunktion 4)
|
Deklaration: |
int16_t vsr_fg_color ( int16_t handle, int32_t color_space,
COLOR_ENTRY *fg_color );
|
Beschreibung: |
Diese Funktionen setzen die Vordergrundfarbe für Bitmaps.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color_space |
Farbraum (z.Zt. nur 0 für eingestellten Farbraum oder
CSPACE_RGB)
|
fg_color |
COLOR_ENTRY der Vordergrundfarbe
|
|
Ergebnis: |
-1 = falsche Unterfunktionsnummer
0 = Funktion nicht vorhanden
1 = alles in Ordnung
|
Verfügbar: |
ab NVDI 5.00
|
Gruppe: |
Bitmap-Attribute
|
Querverweis: |
Binding
|
Die folgende Abbildung zeigt die möglichen Kombinationen von
Fülltyp und Musterindex. Die erste Ziffer gibt dabei den Fülltyp,
die zweite den Index des Musters an.
Hinweis: Ein Fülltyp mit dem Wert 1, gefolgt von einem
beliebigen Musterindex, entspricht immer dem Fülltyp 2 mit
Musterindex 8. Der Index 1 ist bei Mustern vom Typ 2 immer das Muster
mit der geringsten Intensität auf dem jeweiligen Ausgabegerät, und
darüber hinaus auch immer monochrom.
Querverweis: vsf_interior vsf_style
Replace: In diesem Modus überschreibt das VDI den
Hintergrund mit der Vordergrundfarbe, falls das entsprechende Bit
gesetzt ist, bzw. mit der Farbe Weiß, wenn das entsprechende Bit den
Wert 0 besitzt. Die logische Verknüpfung lautet:
Neu := (Vordergrund AND Maske) OR (Hintergrund AND NOT Maske)
Übertragen auf das Arbeiten mit Bleistift und Papier kann man
sich dies wie folgt vorstellen: zunächst malt man eine Figur auf
weißes Papier, schneidet sie aus, und klebt sie dann auf die Grafik.
Transparent: In diesem Modus werden alle Bits der zu
zeichnenden Form die den Wert 0 besitzen (also nicht gesetzt sind) vom
VDI ignoriert. Es werden also nur die Bits ausgegeben, die gesetzt
sind. Die logische Verknüpfung lautet in diesem Fall:
Neu := (Vordergrund AND Maske) OR (Farbe AND NOT Maske)
Auch hier wieder der Vergleich beim Arbeiten mit Papier und
Bleistift: Dieser Modus entspricht dem Replace-Modus, nur daß nicht
auf normales Papier, sondern auf eine durchsichtige (transparente)
Folie gezeichnet wird.
XOR: In diesem Modus werden die Bits des Hintergrundes
und der zu zeichnenden Figur mit einem Exklusiv-ODER verknüpft, wobei
eine interessante und nützliche Eigenschaft auftritt:
Wird die Figur nämlich ein zweites Mal in diesem Modus
gezeichnet, so ist sie plötzlich wieder verschwunden. Begründung:
Die XOR-Verknüpfung eines Bits mit sich selbst ergibt immer den
inversen Wert. Deshalb läßt sich dieser Modus hervorragend für
einfache Animationen wie eine Gummibox einsetzen; das Kochrezept
lautet:
1. |
Objekt einmal ausgeben
|
2. |
Objekt erneut ausgeben (es ist nun wieder verschwunden)
|
3. |
Objekt in der Größe oder Position verändern.
|
4. |
Zurück zu Schritt 1.
|
Die logische Verknüpfung lautet: Neu := (Maske XOR Farbe)
Im allgemeinen läßt sich über diesen Modus nur aussagen, daß
aus der Farbe Schwarz die Farbe Weiß wird, und umgekehrt; alles
andere ist nicht fest definiert.
Reverse Transparent: In diesem Modus werden nur die
Pixel berücksichtigt, die im zu zeichnenden Bild auf den Wert 0
gesetzt sind. Die logische Verknüpfung lautet in diesem Fall:
Neu := (Farbe AND Maske) OR (Vordergrund AND NOT Maske)
Auch dieser Modus bietet interessante Einsatzmöglichkeiten; so
kann er z.B. mit dem Transparent-Modus gemeinsam angewendet werden, um
Text mit einer zusätzlichen Hintergrundfarbe erscheinen zu lassen.
Die folgende Abbildung soll die unterschiedlichen
VDI-Schreibmodi noch einmal verdeutlichen:
Querverweis: vswr_mode
Name: |
»Set Background Color« - Hintergrundfarbe setzen
|
VDI-Nummer: |
201 (Unterfunktion 1)
|
Deklaration: |
int16_t vsf_bg_color ( int16_t handle, int32_t color_space,
COLOR_ENTRY *fg_color );
|
Beschreibung: |
Diese Funktione setzt die Hintergrundfarbe für Objekte.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color_space |
Farbraum (z.Zt. nur 0 für eingestellten Farbraum oder
CSPACE_RGB)
|
fg_color |
COLOR_ENTRY der Hintergrundfarbe
|
|
Ergebnis: |
-1 = falsche Unterfunktionsnummer
0 = Funktion nicht vorhanden
1 = alles in Ordnung
|
Verfügbar: |
ab NVDI 5.00
|
Gruppe: |
Fülltyp-Attribute
|
Querverweis: |
Binding
|
Name: |
»Set Fill Color Index« - bestimmt die Farbe mit der ein
Polygon ausgefüllt wird.
|
VDI-Nummer: |
25
|
Deklaration: |
int16_t vsf_color ( int16_t handle, int16_t color_index );
|
Beschreibung: |
Die Funktion legt die Füllfarbe für Polygone fest. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color_index |
gewünschte Farbe
|
Hinweis: Die Farbindizes 0 und 1 sind immer verfügbar;
alle weiteren hängen vom jeweiligen Ausgabegerät ab. Ein ungültiger
Farbindex wird durch den Wert 1 ersetzt. Der Farbindex hat keine
Auswirkung auf mehrfarbige Muster; er sollte in diesem Fall auf 1
gesetzt werden.
|
Ergebnis: |
Die Funktion liefert die tatsächlich eingestellte Farbe
zurück.
|
Verfügbar: |
Supported by all drivers.
|
Gruppe: |
Fülltyp-Attribute
|
Querverweis: |
Binding v_fillarea v_contourfill vr_recfl v_bar
v_pieslice v_circle v_ellipse v_ellpie v_rfbox vsf_udpat
|
Name: |
»Set Foreground Color« - Vordergrundfarbe setzen
|
VDI-Nummer: |
200 (Unterfunktion 1)
|
Deklaration: |
int16_t vsf_fg_color ( int16_t handle, int32_t color_space,
COLOR_ENTRY *fg_color );
|
Beschreibung: |
Diese Funktionen setzen die Vordergrundfarbe für gefüllte
Objekt.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color_space |
Farbraum (z.Zt. nur 0 für eingestellten Farbraum oder
CSPACE_RGB)
|
fg_color |
COLOR_ENTRY der Vordergrundfarbe
|
|
Ergebnis: |
-1 = falsche Unterfunktionsnummer
0 = Funktion nicht vorhanden
1 = alles in Ordnung
|
Verfügbar: |
ab NVDI 5.00
|
Gruppe: |
Fülltyp-Attribute
|
Querverweis: |
Binding
|
Name: |
»Set Fill Interior Style« - bestimmt den Füllmustertyp.
|
VDI-Nummer: |
23
|
Deklaration: |
int16_t vsf_interior ( int16_t handle, int16_t style );
|
Beschreibung: |
Die Funktion bestimmt den Fülltyp. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
style |
gewünschter Fülltyp
0 = |
leer
|
1 = |
deckend
|
2 = |
gemustert
|
3 = |
schraffiert
|
4 = |
frei definierbar
|
|
Hinweis: Bei Übergabe eines ungültigen Typs wird der
Fülltyp leer angenommen.
|
Ergebnis: |
Die Funktion liefert den tatsächlich ausgewählten Fülltyp
zurück.
|
Verfügbar: |
Supported by all drivers.
|
Gruppe: |
Fülltyp-Attribute
|
Querverweis: |
Binding v_fillarea v_contourfill vr_recfl v_bar
v_pieslice v_circle v_ellipse v_ellpie v_rfbox vsf_style
vsf_udpat
|
Name: |
»Set Fill Perimeter Visibility« - bestimmt, ob eine Umrandung
um Füllbereiche gezeichnet wird.
|
VDI-Nummer: |
104
|
Deklaration: |
int16_t vsf_perimeter ( int16_t handle, int16_t per_vis );
|
Beschreibung: |
Die Funktion schaltet die automatische Umrahmung der
Füllfläche ein oder aus. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
per_vis |
gewünschter Modus
0 = |
keine Umrahmung
|
<> 0 = |
Umrahmung
|
|
Hinweis: Der Rand wird bei aktivierter Umrahmung
(default) in der aktuellen Füllfarbe und als durchgehende Linie
gezeichnet.
|
Ergebnis: |
Die Funktion liefert den tatsächlich eingestellten Modus
zurück.
|
Verfügbar: |
Supported by all drivers.
|
Gruppe: |
Fülltyp-Attribute
|
Querverweis: |
Binding vsf_xperimeter v_fillarea v_contourfill vr_recfl
v_bar v_pieslice v_circle v_ellipse v_ellpie v_rfbox
|
Name: |
»Set Fill Style Index« - bestimmt das Füllmuster.
|
VDI-Nummer: |
24
|
Deklaration: |
int16_t vsf_style ( int16_t handle, int16_t style_index );
|
Beschreibung: |
Die Funktion bestimmt das Füllmuster. Es gilt:
Hinweis: Die Funktion hat nur dann einen Sinn, wenn als
Fülltyp nicht leer, deckend oder frei definierbar gewählt
wurde. Nicht verfügbare Indizes werden durch den Musterindex 1
ersetzt.
|
Ergebnis: |
Die Funktion liefert das tatsächlich eingestellte Füllmuster.
|
Verfügbar: |
Supported by all drivers.
|
Gruppe: |
Fülltyp-Attribute
|
Querverweis: |
Binding v_fillarea v_contourfill vr_recfl v_bar
v_pieslice v_circle v_ellipse v_ellpie v_rfbox vsf_interior
|
Name: |
»Set User Defined Fill Pattern« - definiert ein neues
Füllmuster.
|
VDI-Nummer: |
112
|
Deklaration: |
void vsf_udpat ( int16_t handle, int16_t *pfill_pat, int16_t
planes );
|
Beschreibung: |
Die Funktion definiert ein neues Füllmüster. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
pfill_pat |
Zeiger auf ein Feld mit planes Zeilen zu je 16
Einträgen.
|
planes |
Anzahl der Farbebenen
|
Hinweis: Jede Zeile gibt das Füllmuster für eine
Farbebene wieder. Der erste Eintrag in einer Zeile entspricht dabei
der ersten Zeile des Musters usw.
Mehrfarbige Muster werden im Standardformat übergeben und
müssen die gleiche Ebenenanzahl haben wie der Bildschirm. Die
Ausnahme von dieser Regel sind die Direct RGB-Modi (mehr als 8 Ebenen
mit direkter RGB-Zuordnung) wie True-Color. Hier wird das Muster immer
als True-Color Muster mit 32-Bit-Pixeln (xRGB) übergeben.
Bei Mehrfarbmustern sollte man die Füllfarbe auf 1 setzen und
als Schreibmodus REPLACE anwählen.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
Supported by all drivers.
|
Gruppe: |
Fülltyp-Attribute
|
Querverweis: |
Binding vsf_interior
|
C: |
void vsf_udpat ( int16_t handle, int16_t *pfill_pat, int16_t
planes );
|
Umsetzung: |
void vsf_udpat (int16_t handle, int16_t *pfill_pat,
int16_t planes)
{
intin[0..16n-1] = pfill_pat[0..16n-1];
contrl[0] = 112;
contrl[1] = 0;
contrl[3] = planes * 16;
contrl[6] = handle;
vdi ();
}
|
GEM-Arrays: |
|
Name: |
»Set Fill Perimeter Visibility« - bestimmt, ob eine Umrandung
um Füllbereiche gezeichnet wird.
|
VDI-Nummer: |
104
|
Deklaration: |
int16_t vsf_xperimeter ( int16_t handle, int16_t on_off,
int16_t f_or_l );
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
on_off |
gewünschter Modus
0 = |
Turn perimeter outlining off
|
1 = |
Turn perimeter outlining on
|
-1 = |
Do not change perimeter outlining
|
|
f_or_l |
Linientyp analog zu vsl_type
0 = |
Use normal fill color for perimeter
|
1 = |
Use line style attributes for perimeter
|
|
|
Ergebnis: |
Die Funktion liefert den tatsächlich eingestellten Modus
zurück.
|
Verfügbar: |
GEM/3 Release 3.1
|
Gruppe: |
Fülltyp-Attribute
|
Querverweis: |
Binding vsf_perimeter v_fillarea v_contourfill vr_recfl
v_bar v_pieslice v_circle v_ellipse v_ellpie v_rfbox
|
Name: |
»Set Background Color« - Hintergrundfarbe setzen
|
VDI-Nummer: |
201 (Unterfunktion 2)
|
Deklaration: |
int16_t vsl_bg_color ( int16_t handle, int32_t color_space,
COLOR_ENTRY *fg_color );
|
Beschreibung: |
Diese Funktionen setzen die Hintergrundfarbe für Linien.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color_space |
Farbraum (z.Zt. nur 0 für eingestellten Farbraum oder
CSPACE_RGB)
|
fg_color |
COLOR_ENTRY der Hintergrundfarbe
|
|
Ergebnis: |
-1 = falsche Unterfunktionsnummer
0 = Funktion nicht vorhanden
1 = alles in Ordnung
|
Verfügbar: |
ab NVDI 5.00
|
Gruppe: |
Linien-Attribute
|
Querverweis: |
Binding
|
Name: |
»Set Polyline Color Index« - setzt die Linienfarbe.
|
VDI-Nummer: |
17
|
Deklaration: |
int16_t vsl_color ( int16_t handle, int16_t color_index );
|
Beschreibung: |
Die Funktion wählt die Linien-Farbe. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color_index |
Linienfarbe
|
Hinweis: Die Farb-Indizes 0 und 1 sind auf allen
Geräten verfügbar; alle anderen Werte hängen vom jeweiligen
Ausgabegerät ab.
Bei ungültigem Index wird die Linienfarbe auf den Wert 1
gesetzt.
|
Ergebnis: |
Die Funktion liefert die tatsächlich gesetzte Linienfarbe.
|
Verfügbar: |
Vorhanden bei allen Treibern.
|
Gruppe: |
Linien-Attribute
|
Querverweis: |
Binding v_pline v_arc v_ellarc v_rbox
|
Name: |
»Set Polyline End Styles« - setzt die Form der Linienenden.
|
VDI-Nummer: |
108
|
Deklaration: |
void vsl_ends ( int16_t handle, int16_t beg_style, int16_t
end_style );
|
Beschreibung: |
Die Funktion legt das Aussehen der Linien-Enden fest. Es gilt:
Parameter |
Bedeutung Symbole
|
|
|
handle |
Kennung der Workstation
|
beg_style |
Anfang der Linie
0 = |
eckig
|
1 = |
Pfeilform
|
2 = |
abgerundet
|
|
end_style |
Ende der Linie (analog)
|
Hinweis: Standardmäßig besitzen alle Linien einen
eckigen Abschluß. Das Ende der Linie ist bei der Pfeilspitze die
Spitze selbst, bei den abgerundeten Ecken jedoch das Zentrum des
Halbkreises, welches das Ende darstellt.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
Supported by all devices.
|
Gruppe: |
Linien-Attribute
|
Querverweis: |
Binding v_pline v_arc v_ellarc v_rbox
|
C: |
void vsl_ends ( int16_t handle, int16_t beg_style, int16_t
end_style );
|
Umsetzung: |
void vsl_ends (int16_t handle, int16_t beg_style,
int16_t end_style)
{
intin[0] = beg_style;
intin[1] = end_style;
contrl[0] = 108;
contrl[1] = 0;
contrl[3] = 2;
contrl[6] = handle;
vdi ();
}
|
GEM-Arrays: |
|
Name: |
»Set Foreground Color« - Vordergrundfarbe setzen
|
VDI-Nummer: |
200 (Unterfunktion 2)
|
Deklaration: |
int16_t vsl_fg_color ( int16_t handle, int32_t color_space,
COLOR_ENTRY *fg_color );
|
Beschreibung: |
Diese Funktionen setzen die Vordergrundfarbe für Linien.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color_space |
Farbraum (z.Zt. nur 0 für eingestellten Farbraum oder
CSPACE_RGB)
|
fg_color |
COLOR_ENTRY der Vordergrundfarbe
|
|
Ergebnis: |
-1 = falsche Unterfunktionsnummer
0 = Funktion nicht vorhanden
1 = alles in Ordnung
|
Verfügbar: |
ab NVDI 5.00
|
Gruppe: |
Linien-Attribute
|
Querverweis: |
Binding
|
Name: |
»Set Polyline Type« - setzt den Linientyp.
|
VDI-Nummer: |
15
|
Deklaration: |
int16_t vsl_type ( int16_t handle, int16_t style );
|
Beschreibung: |
Die Funktion wählt die Liniendarstellung aus. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
style |
Stil der Linie
1 = |
durchgezogen
|
2 = |
langer Strich
|
3 = |
punktiert
|
4 = |
Strich, Punkt
|
5 = |
Strich
|
6 = |
Strich, Punkt, Punkt
|
7 = |
frei definierbar, vsl_udsty
|
|
Hinweis: Linienstile ab dem Wert 8 sind vom jeweiligen
Ausgabegerät abhängig. Ist ein gewählter Stil nicht verfügbar, so
wird der Linienstil 'durchgezogen' gewählt.
Über die Funktion vq_extnd können die vorhandenen Linientypen
ermittelt werden.
|
Ergebnis: |
Die Funktion liefert den tatsächlich eingestellten Linientyp.
|
Verfügbar: |
Supported by all devices.
|
Gruppe: |
Linien-Attribute
|
Querverweis: |
Binding v_pline v_arc v_ellarc v_rbox vsl_udsty
|
Name: |
»Set User defined Line Style Pattern« - setzt den frei
definierten Linientyp.
|
VDI-Nummer: |
113
|
Deklaration: |
void vsl_udsty ( int16_t handle, int16_t pattern );
|
Beschreibung: |
Die Funktion legt den frei-definierbaren Linientyp von vsl_type
fest. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
pattern |
Linienmuster
|
Hinweis: Das Bit-15 des Parameters pattern legt
den ersten Punkt der Linie fest. Der Standardwert ist eine komplett
durchgezogene Linie.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
Supported by all devices.
|
Gruppe: |
Linien-Attribute
|
Querverweis: |
Binding vsl_type
|
Name: |
»Set Polyline Width« - setzt die Linienbreite.
|
VDI-Nummer: |
16
|
Deklaration: |
int16_t vsl_width ( int16_t handle, int16_t width );
|
Beschreibung: |
Die Funktion setzt die Linienbreite. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
width |
Linienbreite (ungerade)
|
Hinweis: Die Breite der Linie bezieht sich immer auf
Koordinaten in x-Richtung. Die tatsächlich gesetzte Breite ist
kleiner oder gleich der gewählten Breite. Die Funktion ist
nicht auf allen Ausgabegeräten verfügbar.
Linien die breiter als 1 Pixel sind werden von den meisten
Treibern nur ohne Muster gezeichnet.
|
Ergebnis: |
Die Funktion liefert die tatsächlich eingestellte
Strichstärke.
|
Verfügbar: |
Supported by all devices.
|
Gruppe: |
Linien-Attribute
|
Querverweis: |
Binding v_pline v_arc v_ellarc v_rbox
|
Name: |
»Set Bezier quality« - Qualität der Bezier-Spline-Erzeugung
setzen.
|
VDI-Nummer: |
5 (Escape 99, Opcode 32)
|
Deklaration: |
int16_t v_bez_qual ( int16_t handle, int16_t qual, int16_t
*set_qual );
|
Beschreibung: |
Die Funktion setzt einen neuen Faktor, der die Qualität und
Geschwindigkeit bestimmt, mit der Bezier-Splines gezeichnet werden. Es
gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
qual |
gewünschte Qualität in Prozent
|
set_qual |
eingestellte Qualität in Prozent (Steht bei GEM/3 Release
3.1 nicht zur Verfügung).
|
Hinweis: Die Qualität der Beziers kann wie üblich in
Prozent (d.h. von 0 bis 100) eingestellt werden.
|
Ergebnis: |
Die Funktion liefert set_qual als Returnwert zurück.
|
Verfügbar: |
ab GEM/3 Release 3.1, ab SpeedoGDOS 4.00 und ab NVDI 2.10.
|
Gruppe: |
Linien-Attribute
|
Querverweis: |
Binding v_bez_on v_bez_off v_bez v_bez_fill
v_set_app_buff
|
Name: |
»Set Background Color« - Hintergrundfarbe setzen
|
VDI-Nummer: |
201 (Unterfunktion 3)
|
Deklaration: |
int16_t vsm_bg_color ( int16_t handle, int32_t color_space,
COLOR_ENTRY *fg_color );
|
Beschreibung: |
Diese Funktionen setzen die Hintergrundfarbe für Marker.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color_space |
Farbraum (z.Zt. nur 0 für eingestellten Farbraum oder
CSPACE_RGB)
|
fg_color |
COLOR_ENTRY der Hintergrundfarbe
|
|
Ergebnis: |
-1 = falsche Unterfunktionsnummer
0 = Funktion nicht vorhanden
1 = alles in Ordnung
|
Verfügbar: |
ab NVDI 5.00
|
Gruppe: |
Markierungs-Attribute
|
Querverweis: |
Binding
|
Name: |
»Set Polymarker Color Index« - bestimmt die Farbe von
Markierungspunkten.
|
VDI-Nummer: |
20
|
Deklaration: |
int16_t vsm_color ( int16_t handle, int16_t color_index );
|
Beschreibung: |
Die Funktion bestimmt die Farbe der Marker. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color_index |
gewünschte Farbe
|
Hinweis: Die Farb-Indizes 0 und 1 sind immer verfügbar,
alle weiteren hängen vom jeweiligen Ausgabegerät ab. Ein ungültiger
Farbindex wird durch den Wert 1 ersetzt.
|
Ergebnis: |
Die Funktion liefert den tatsächlich gewählten Farbindex.
|
Verfügbar: |
Supported by all devices.
|
Gruppe: |
Markierungs-Attribute
|
Querverweis: |
Binding v_pmarker
|
Name: |
»Set Foreground Color« - Vordergrundfarbe setzen
|
VDI-Nummer: |
200 (Unterfunktion 3)
|
Deklaration: |
int16_t vsm_fg_color ( int16_t handle, int32_t color_space,
COLOR_ENTRY *fg_color );
|
Beschreibung: |
Diese Funktionen setzen die Vordergrundfarbe für Marker.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color_space |
Farbraum (z.Zt. nur 0 für eingestellten Farbraum oder
CSPACE_RGB)
|
fg_color |
COLOR_ENTRY der Vordergrundfarbe
|
|
Ergebnis: |
-1 = falsche Unterfunktionsnummer
0 = Funktion nicht vorhanden
1 = alles in Ordnung
|
Verfügbar: |
ab NVDI 5.00
|
Gruppe: |
Markierungs-Attribute
|
Querverweis: |
Binding
|
Name: |
»Set Polymarker Height« - bestimmt die Höhe von
Markierungspunkten.
|
VDI-Nummer: |
19
|
Deklaration: |
int16_t vsm_height ( int16_t handle, int16_t height );
|
Beschreibung: |
Die Funktion setzt die Höher der Marker. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
height |
Höhe der Marker bzgl. y-Richtung
|
Die Anzahl der verfügbaren Höhen kann beim Öffnen der
virtuellen Workstation per v_opnvwk ermittelt werden.
Hinweis: Die Breite der Marker wird automatisch
angepaßt. Bei einer ungültigen Höhe wird vom VDI die nächst
passende gewählt. Der Punkt kann in seiner Größe nicht
verändert werden.
|
Ergebnis: |
Die Funktion liefert die tatsächlich gewählte Größe.
|
Verfügbar: |
Supported by all devices.
|
Gruppe: |
Markierungs-Attribute
|
Querverweis: |
Binding v_pmarker
|
C: |
int16_t vsm_height ( int16_t handle, int16_t height );
|
Umsetzung: |
int16_t vsm_height (int16_t handle, int16_t height)
{
ptsin[0] = 0;
ptsin[1] = height;
contrl[0] = 19;
contrl[1] = 1;
contrl[3] = 0;
contrl[6] = handle;
vdi ();
return ( ptsout[1] );
}
|
GEM-Arrays: |
Hinweis: Die Komponente set_height_x beschreibt
die ausgewählte Markerhöhe bzgl. der x-Richtung; in PC-GEM wird
stets der Wert 0 geliefert.
|
Name: |
»Set Polymarker Type« - bestimmt die Art der
Markierungspunkte
|
VDI-Nummer: |
18
|
Deklaration: |
int16_t vsm_type ( int16_t handle, int16_t typ );
|
Beschreibung: |
Die Funktion bestimmt das Aussehen der Marker. Es gilt:
Parameter |
Bedeutung Symbole
|
|
|
handle |
Kennung der Workstation
|
typ |
Typ des Markers
1 = |
Punkt (feste Größe)
|
2 = |
Plus
|
3 = |
Stern
|
4 = |
Quadrat
|
5 = |
Andreaskreuz
|
6 = |
Raute
|
|
Hinweis: Bei Übergabe einer ungültigen Nummer wird der
dritte Typ gewählt. Der Punkt kann in seiner Größe nicht
verändert werden. Auf bestimmten Geräten können weitere
Marker-Typen existieren.
|
Ergebnis: |
Die Funktion liefert die tatsächlich ausgewählte Markierung.
|
Verfügbar: |
Supported by all devices.
|
Gruppe: |
Markierungs-Attribute
|
Querverweis: |
Binding v_pmarker vsm_height
|
Name: |
»Set Graphic Text Alignment« - bestimmt die Ausrichtung für
Textausgaben.
|
VDI-Nummer: |
39
|
Deklaration: |
void vst_alignment ( int16_t handle, int16_t hor_in, int16_t
vert_in, int16_t *hor_out, int16_t *vert_out );
|
Beschreibung: |
Die Funktion bestimmt die horizontale und vertikale Ausrichtung
eines Textes.
Beispiel:
Der Funktion werden folgende Parameter übergeben:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
hor_in |
horizontale Ausrichtung
0 = |
linksbündig (default)
|
1 = |
zentriert
|
2 = |
rechtsbündig
|
|
vert_in |
vertikale Ausrichtung
0 = |
Basislinie (default)
|
1 = |
Halblinie
|
2 = |
Zeichenoberkante
|
3 = |
Zeichenzellenunterkante
|
4 = |
Zeichenunterkante
|
5 = |
Zeichenzellenoberkante
|
|
hor_out |
ausgewählte horizontale Ausrichtung
|
vert_out |
ausgewählte vertikale Ausrichtung
|
Hinweis: Standardeinstellung ist der linke Rand der
Basislinie. Bei falscher Eingabe für die horizontale Ausrichtung wird der
Text linksjustiert. Eine fehlerhafte Angabe der vertikalen Ausrichtung
bewirkt Ausrichtung an der Basislinie.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
Supported by all drivers.
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding v_gtext v_justified
|
C: |
void vst_alignment ( int16_t handle, int16_t hor_in, int16_t
vert_in, int16_t *hor_out, int16_t *vert_out );
|
Umsetzung: |
void vst_alignment (int16_t handle, int16_t hor_in,
int16_t vert_in, int16_t *hor_out,
int16_t *vert_out)
{
intin[0] = hor_in;
intin[1] = vert_in;
contrl[0] = 39;
contrl[1] = 0;
contrl[3] = 2;
contrl[6] = handle;
vdi ();
*hor_out = intout[0];
*vert_out = intout[1];
}
|
GEM-Arrays: |
|
Name: |
»Set character cell height by arbitrary points« - Setzen der
Zeichenzellenhöhe in Punkten.
|
VDI-Nummer: |
246
|
Deklaration: |
int16_t vst_arbpt ( int16_t handle, int16_t point, int16_t
*chwd, int16_t *chht, int16_t *cellwd, int16_t *cellht );
|
Beschreibung: |
Die Funktion setzt die aktuelle Zeichenhöhe in Printerpunkten.
Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
point |
gewünschte Zeichenhöhe
|
chwd |
resultierende Zeichenbreite
|
chht |
resultierende Zeichenhöhe
|
cellwd |
resultierende Zeichenzellenbreite
|
cellht |
resultierende Zeichenzellenhöhe
|
Hinweis: Im Gegensatz zu vst_point erlaubt die Funktion
die Skalierung in jeder Punktgröße, unabhängig davon,
welche Angaben in EXTEND.SYS stehen.
Wenn man negative Werte einstellt, werden die Zeichen an der
x-Achse gespiegelt. Bei den zurückgelieferten Zeichenbreiten handelt
es sich um gerundete Werte, die man nicht ohne weiteres zur
Breitenberechnung benutzen kann.
|
Ergebnis: |
Die Funktion liefert die gesetzte Zeichenhöhe in Punkten
zurück.
|
Verfügbar: |
Beim FSM-GDOS und SpeedoGDOS ab Version 4.00
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding vst_arbpt32 vst_point vst_setsize SpeedoGDOS
NVDI
|
C: |
int16_t vst_arbpt ( int16_t handle, int16_t point, int16_t
*chwd, int16_t *chht, int16_t *cellwd, int16_t *cellht );
|
Umsetzung: |
int16_t vst_arbpt (int16_t handle, int16_t point,
int16_t *chwd, int16_t *chht,
int16_t *cellwd, int16_t *cellht)
{
intin[0] = point;
contrl[0] = 246;
contrl[1] = 0;
contrl[3] = 1;
contrl[5] = 0;
contrl[6] = handle;
vdi ();
*chwd = ptsout[0];
*chht = ptsout[1];
*cellwd = ptsout[2];
*cellht = ptsout[3];
return ( intout[0] );
}
|
GEM-Arrays: |
|
Name: |
»Set character cell height by arbitrary points« - Setzen der
Zeichenzellenhöhe in Punkten.
|
VDI-Nummer: |
246
|
Deklaration: |
fix31 vst_arbpt32 ( int16_t handle, fix31 point, int16_t *chwd,
int16_t *chht, int16_t *cellwd, int16_t *cellht );
|
Beschreibung: |
Die Funktion setzt die aktuelle Zeichenhöhe in Printerpunkten.
Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
point |
gewünschte Zeichenhöhe
|
chwd |
resultierende Zeichenbreite
|
chht |
resultierende Zeichenhöhe
|
cellwd |
resultierende Zeichenzellenbreite
|
cellht |
resultierende Zeichenzellenhöhe
|
Hinweis: Im Gegensatz zu vst_point erlaubt die Funktion
die Skalierung in jeder Punktgröße, unabhängig davon,
welche Angaben in EXTEND.SYS stehen.
Wenn man negative Werte einstellt, werden die Zeichen an der
x-Achse gespiegelt. Bei den zurückgelieferten Zeichenbreiten handelt
es sich um gerundete Werte, die man nicht ohne weiteres zur
Breitenberechnung benutzen kann.
|
Ergebnis: |
Die Funktion liefert die gesetzte Zeichenhöhe in 1/65536
Punkten zurück.
Aus der SpeedoGDOS Dokumentation geht das nicht hervor. Es ist
möglich das hier nur die Zeichenhöhe in Punkte zurückgeliefert
wird.
|
Verfügbar: |
Beim FSM-GDOS, SpeedoGDOS ab Version 4.00 und ab NVDI 3.00. In
der Doku zu NVDI 3.00 wird die Funktion fälschlicherweise vst_arbpt
genannt.
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding vst_point vst_setsize SpeedoGDOS NVDI
|
C: |
fix31 vst_arbpt32 ( int16_t handle, fix31 point, int16_t *chwd,
int16_t *chht, int16_t *cellwd, int16_t *cellht );
|
Umsetzung: |
fix31 vst_arbpt32 (int16_t handle, fix31 point,
int16_t *chwd, int16_t *chht,
int16_t *cellwd, int16_t *cellht)
{
intin[0..1] = point;
contrl[0] = 246;
contrl[1] = 0;
contrl[3] = 2;
contrl[6] = handle;
vdi ();
*chwd = ptsout[0];
*chht = ptsout[1];
*cellwd = ptsout[2];
*cellht = ptsout[3];
return ( intout[0..1] );
}
|
GEM-Arrays: |
|
Name: |
»Set Background Color« - Hintergrundfarbe setzen
|
VDI-Nummer: |
201 (Unterfunktion 0)
|
Deklaration: |
int16_t vst_bg_color ( int16_t handle, int32_t color_space,
COLOR_ENTRY *fg_color );
|
Beschreibung: |
Diese Funktionen setzen die Hintergrundfarbe für Text.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color_space |
Farbraum (z.Zt. nur 0 für eingestellten Farbraum oder
CSPACE_RGB)
|
fg_color |
COLOR_ENTRY der Hintergrundfarbe
|
|
Ergebnis: |
-1 = falsche Unterfunktionsnummer
0 = Funktion nicht vorhanden
1 = alles in Ordnung
|
Verfügbar: |
ab NVDI 5.00
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding
|
Name: |
»Set character mapping mode« - wählt die Art der
Zeichensatzindizierung
|
VDI-Nummer: |
236
|
Deklaration: |
void vst_charmap ( int16_t handle, int16_t mode );
|
Beschreibung: |
Die Funktion legt die Art der Zeichensatzindizierung fest. Es
gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
mode |
Art der Indizierung
0 = |
direktes Mapping, d.h. keine Umsetzung des Zeichen-Index
|
1 = |
Zeichen-Index wird als ASCII-Wert interpretiert
|
|
Für SpeedoGDOS gilt:
mode |
Art der Indizierung
0 = |
Atari characters
|
1 = |
Bitstream
|
|
Hinweis: Durch Umschalten auf direktes Mapping ändert
sich die Anzahl der vorhandenen Zeichen pro Font von 256 auf die
tatsächlich verfügbare Zahl an Zeichen.
Ab NVDI 4.00 gibt es einer erweiterte Version: vst_map_mode
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück
|
Verfügbar: |
SpeedoGDOS 4.0, NVDI 3.00
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding vst_map_mode vqt_fontinfo ASCII-Tabelle
|
Name: |
»Set Graphic Text Color Index« - bestimmt die Farbe der
Textausgaben.
|
VDI-Nummer: |
22
|
Deklaration: |
int16_t vst_color ( int16_t handle, int16_t color_index );
|
Beschreibung: |
Die Funktion setzt die Text-Farbe. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color_index |
gewünschte Textfarbe
|
Hinweis: Die Farb-Indizes 0 und 1 sind immer verfügbar;
alle weiteren sind vom verwendeten Ausgabegerät abhängig. Bei Angabe
eines ungültigen Indexes wird der Wert 1 angenommen.
|
Ergebnis: |
Die Funktion liefert die tatsächlich eingestellte Farbe.
|
Verfügbar: |
Supported by all drivers.
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding v_gtext v_justified
|
Name: |
»Set Graphic Text Special Effects« - legt Spezialeffekte für
Textausgaben fest.
|
VDI-Nummer: |
106
|
Deklaration: |
int16_t vst_effects ( int16_t handle, int16_t effect );
|
Beschreibung: |
Die Funktion legt verschiedene Texteffekte fest. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
effect |
Texteffekt in Bit-Darstellung
0x00 = |
normal
|
0x01 = |
fett
|
0x02 = |
hell
|
0x04 = |
kursiv
|
0x08 = |
unterstrichen
|
0x10 = |
hohl
|
0x20 = |
schattiert
|
|
Hinweis: Die Texteffekte können durch eine
Oder-Verknüpfung auch gemischt werden; nicht verfügbare Effekte
werden nicht gesetzt.
|
Ergebnis: |
Die Funktion liefert den ausgewählten Texteffekt.
|
Verfügbar: |
Supported by all drivers.
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding v_gtext v_justified
|
Name: |
»Set Outline Font error mode« - Setzen der GDOS
Fehlerbehandlung.
|
VDI-Nummer: |
245
|
Deklaration: |
void vst_error ( int16_t handle, int16_t mode, int16_t
*errorvar );
|
Beschreibung: |
Die Funktion bestimmt die Art der GDOS-Fehlerbehandlung. Es
gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
mode |
Art der Fehlerbehandlung
0 = |
Ausgabe in globale Variable
|
1 = |
Ausgabe auf Bildschirm (default)
|
|
errorvar |
Adresse der Fehlervariablen, die mit Null initialisiert sein
sollte. Folgende Fehlercodes gelten für SpeedoGDOS 4.xx:
1 = |
Out of system memory (Misc cache)
|
2 = |
Error opening font file
|
3 = |
Error reading font file
|
4 = |
Error while writiing out cache buffer
|
5 = |
Font scaler error
|
6 = |
(not implemented
|
7 = |
Not enough memory for scratch buffer
|
8 = |
Out of system memory (character cache)
|
255 = |
Misc Speedo Error
|
Bei SpeedoGDOS 5.0 scheint sich die Bedeutung geändert zu
haben:
1 = |
Nicht ausreichend Fontdaten geladen
|
3 = |
Unzulässige Font-Spezifikationen angefordert
|
4 = |
Fontformat-Fehler (Sehr häufig ein kundenspezifischer Font,
der nur für ein bestimmtes Programm lizensiert ist.)
|
5 = |
Requested specs not compatible with output module
|
7 = |
Rules requested; not supported
|
8 = |
Modus nicht verfügbar
|
10 = |
Font nicht angegeben
|
11 = |
Squeezing/Clipping requested but not supported
|
12 = |
Zeichen-Daten nicht verfügbar
|
13 = |
Track-Kerning Daten nicht verfügbar
|
14 = |
Paar-Kerning Daten nicht verfügbar
|
NVDI >= 3.01 benutzt die Fehler-Nummern von SpeedoGDOS 5.0,
wenn Speedo-Fonts bearbeitet werden. Ausserdem werden diverse
Fehler-Nummern >= 0x1000 berichtet, wenn TrueType-Fonts bearbeitet
werden:
|
Hinweis: Die Fehlervariable errorvar sollte vor
dem Aufruf der folgenden GDOS-Funktionen abgefragt werden:
v_gtext v_ftext
v_justified vst_point
vst_height vst_font
vst_arbpt vqt_advance
vst_setsize vqt_fontinfo
vqt_name vqt_width
vqt_extent vqt_f_extent
v_opnwk v_opnvwk
vst_load_fonts vst_unload_fonts
|
Ergebnis: |
Diese Funktion liefert kein Ergebnis.
|
Verfügbar: |
Beim FSM-GDOS, Font-GDOS, SpeedoGDOS ab Version 4.00, und NVDI
ab Version 3.01.
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding GDOS SpeedoGDOS
|
Name: |
»Set Foreground Color« - Vordergrundfarbe setzen
|
VDI-Nummer: |
200 (Unterfunktion 0)
|
Deklaration: |
int16_t vst_fg_color ( int16_t handle, int32_t color_space,
COLOR_ENTRY *fg_color );
|
Beschreibung: |
Diese Funktionen setzen die Vordergrundfarbe für Text.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color_space |
Farbraum (z.Zt. nur 0 für eingestellten Farbraum oder
CSPACE_RGB)
|
fg_color |
COLOR_ENTRY der Vordergrundfarbe
|
|
Ergebnis: |
-1 = falsche Unterfunktionsnummer
0 = Funktion nicht vorhanden
1 = alles in Ordnung
|
Verfügbar: |
ab NVDI 5.00
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding
|
Name: |
»Set Text Face« - wählt einen Zeichensatz für die
Textausgabe.
|
VDI-Nummer: |
21
|
Deklaration: |
int16_t vst_font ( int16_t handle, int16_t font );
|
Beschreibung: |
Die Funktion wählt einen Zeichensatz für nachfolgende
Textausgaben aus. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
font |
Index des Zeichensatzes
|
Hinweis: Die Namen und Indizes der Zeichensätze können
über die Funktion vqt_name ermittelt werden. Ob Zeichensätze
unterstützt werden, hängt vom jeweiligen Ausgabegerät ab.
Sollte der Zeichensatz font nicht vorhanden sein, wird
auf den Systemzeichensatz umgeschaltet.
|
Ergebnis: |
Die Funktion liefert die Nummer des tatsächlich gewählten
Zeichensatzes.
|
Verfügbar: |
Supported by all drivers.
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding vst_load_fonts vqt_name v_gtext v_justified
|
Name: |
»Set Character Height, absolute Mode« - bestimmt die
Zeichenhöhe bei Textausgaben.
|
VDI-Nummer: |
12
|
Deklaration: |
void vst_height ( int16_t handle, int16_t height, int16_t
*char_width, int16_t *char_height, int16_t *cell_width, int16_t
*cell_height );
|
Beschreibung: |
Die Funktion legt die absolute Zeichenhöhe bei Textausgaben
fest. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
height |
Zeichenhöhe
|
char_width |
gewählte Zeichenbreite
|
char_height |
gewählte Zeichenhöhe
|
cell_width |
Zeichenzellenbreite
|
cell_height |
Zeichenzellenhöhe
|
Hinweis: Falls die gewünschte Zeichenhöhe nicht
verfügbar ist, wird automatisch die nächstkleinere gewählt. Bei
Proportionalfonts enthalten die Ausgabeparameter die Breite des
breitesten Zeichens im Zeichensatz.
Die meisten Bildschirmtreiber können bei dieser Funktion
vorhandene Zeichensätze beliebig verkleinern, oder auf das doppelte
vergrößern. Dies gilt insbesondere für den im ROM implementierten
Bildschirmtreiber.
Bei Vektorfonts stellen die ausgegebenen Breiten von
char_width und cell_width gerundete Werte dar.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
Supported by all drivers.
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding v_gtext v_justified vst_point
|
C: |
void vst_height ( int16_t handle, int16_t height, int16_t
*char_width, int16_t *char_height, int16_t *cell_width, int16_t
*cell_height );
|
Umsetzung: |
void vst_height (int16_t handle, int16_t height,
int16_t *char_width, int16_t *char_height,
int16_t *cell_width, int16_t *cell_height)
{
ptsin[0] = 0;
ptsin[1] = height;
contrl[0] = 12;
contrl[1] = 1;
contrl[3] = 0;
contrl[6] = handle;
vdi ();
*char_width = ptsout[0];
*char_height = ptsout[1];
*cell_width = ptsout[2];
*cell_height = ptsout[3];
}
|
GEM-Arrays: |
|
Name: |
»Set kerning mode« - Kerning Modus setzen
|
VDI-Nummer: |
237
|
Deklaration: |
void vst_kern ( int16_t handle, int16_t tmode, int16_t pmode,
int16_t *tracks, int16_t *pairs );
|
Beschreibung: |
Die Funktion erlaubt das Setzen des gewünschten Kerning-Modus.
Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
tmode |
Track-Kerning
0 = |
kein Kerning
|
1 = |
normales Kerning
|
2 = |
enges Kerning
|
3 = |
sehr enges Kerning
|
|
pmode |
Pair-Kerning
0 = |
ausschalten
|
1 = |
einschalten
|
|
tracks |
gesetzter Track-Kerning Modus
|
pairs |
Anzahl der Kerning-Paare im Zeichensatz
|
Hinweis: Informationen für Track-Kerning sind in den
meisten Speedo-Fonts enthalten. TrueType-Fonts bieten normalerweise
kein Track-Kerning; anders ist dies jedoch bei den neuen TrueType-GX-Fonts.
Unter NVDI kann per vst_track_offset ein selbstdefiniertes
Track-Kerning eingestellt werden.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
ab SpeedoGDOS 4.00 und ab NVDI 3.00
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding vqt_pairkern vqt_trackkern vst_track_offset
|
C: |
void vst_kern ( int16_t handle, int16_t tmode, int16_t pmode,
int16_t *tracks, int16_t *pairs );
|
Umsetzung: |
void vst_kern (int16_t handle, int16_t tmode, int16_t pmode,
int16_t *tracks, int16_t *pairs)
{
intin[0] = tmode;
intin[1] = pmode;
contrl[0] = 237;
contrl[1] = 0;
contrl[3] = 2;
contrl[6] = handle;
vdi ();
*tracks = intout[0];
*pairs = intout[1];
}
|
GEM-Arrays: |
|
Name: |
»Set character mapping mode« - wählt die Art der
Zeichensatzindizierung
|
VDI-Nummer: |
236
|
Deklaration: |
int16_t vst_map_mode ( int16_t handle, int16_t mode );
|
Beschreibung: |
Die Funktion legt die Art der Zeichensatzindizierung fest. Es
gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
mode |
Art der Indizierung
0 = |
direktes Mapping, d.h. keine Umsetzung des Zeichen-Index
|
1 = |
ASCII-Wert
|
2 = |
Unicode
|
|
Hinweis: Durch Umschalten auf direktes Mapping ändert
sich die Anzahl der vorhandenen Zeichen pro Font von 256 auf die
tatsächlich verfügbare Zahl an Zeichen.
Wenn man Unicode anwählt und feststellen möchte, ob ein
bestimmtes Zeichen im eingestellten Font existiert, kann man vqt_width
für dieses Zeichen aufrufen. Sollte vqt_width als Index -1
zurückliefern, existiert das Zeichen nicht. Alternativ zu vqt_width
kann man auch vqt_char_index aufrufen und den fraglichen Unicode in
einen direkten Index wandeln lassen.
|
Ergebnis: |
Die Funktion liefert das ausgewählte Mapping.
|
Verfügbar: |
NVDI 4.0
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding vst_charmap vqt_fontinfo ASCII-Tabelle
|
Name: |
»Set text face by name« - Zeichensatz suchen und einstellen
|
VDI-Nummer: |
230 (Opcode 0)
|
Deklaration: |
int16_t vst_name ( int16_t handle, int16_t font_format, int8_t
*font_name, int8_t *ret_name );
|
Beschreibung: |
Die Funktion sucht einen Zeichensatz, und stellt ihn ein. Es
gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
font_format |
gewünschtes Zeichensatz-Format
1 = |
Bitmap-Font
|
2 = |
Speedo
|
4 = |
TrueType
|
8 = |
Type-1
|
|
font_name |
gewünschter Zeichensatz-Name
|
ret_name |
Name des eingestellten Fonts
|
Hinweis: Fehlende oder überschüssige Leerzeichen
werden bei der Suche ignoriert. Wenn in den angegebenen Formaten kein
Zeichensatz des gesuchten Namens vorhanden ist, wird der System-Font
gesetzt.
|
Ergebnis: |
Die Funktion liefert die ID des eingestellten Zeichensatzes
zurück.
|
Verfügbar: |
Die Funktion steht unter NVDI ab Version 3.02 zur Verfügung.
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding vqt_name vqt_xfntinfo
|
C: |
int16_t vst_name ( int16_t handle, int16_t font_format, int8_t
*font_name, int8_t *ret_name );
|
Umsetzung: |
int16_t vst_name (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] = 0;
contrl[6] = handle;
vdi ();
ret_name[0..m-1] = intout[1..m];
return ( intout[0] );
}
|
GEM-Arrays: |
|
Name: |
»Set Character Height, Points Mode« - bestimmt die
Zeichenzellengröße bei Textausgaben.
|
VDI-Nummer: |
107
|
Deklaration: |
int16_t vst_point ( int16_t handle, int16_t point, int16_t
*char_width, int16_t *char_height, int16_t *cell_width, int16_t
*cell_height );
|
Beschreibung: |
Die Funktion setzt die Zeichenzellengröße, d.h. den Abstand
zweier Basislinien. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
point |
Zeichenzellenhöhe
|
char_width |
gewählte Zeichenbreite
|
char_height |
gewählte Zeichenhöhe
|
cell_width |
gewählte Zeichenzellenbreite
|
cell_height |
gewählte Zeichenzellenhöhe
|
Der Abstand wird in Point gemessen. Hierunter versteht man 1/72
Zoll oder ca. 0.353mm.
Hinweis: Falls die gewünschte Zeichenhöhe nicht
verfügbar ist, wird die nächstkleinere gewählt. Bei proportionalen
Zeichensätzen werden für Breite/Höhe die maximal möglichen Werte
zurückgeliefert.
Bei Vektorfonts kann man mit dieser Funktion nur die
vordefinierten Höhen anwählen (in der Regel sind das
8,9,10,11,12,14,18,24,36, und 48 pt).
Achtung: Der Bildschirmtreiber im ROM kann vorhandene
Zeichensätze auf die jeweils doppelte Größe skalieren, so daß es
nicht ohne weiteres möglich ist, zwischen skalierten und
tatsächlich vorhandenen Fonts zu unterscheiden. Man kann sich hier
mit einer Routine behelfen, die alle vorhandenen Punktgrößen
ermittelt, da vst_point bei Angabe einer falschen Größe die
nächstkleinere und vorhandene Größe wählt. Wenn man auf diese Art
und Weise feststellt, daß alle Punktgrößen vorhanden sind,
liegt offensichtlich ein Vektorfont vor.
|
Ergebnis: |
Die Funktion liefert die Zeichenzellenhöhe in Point.
|
Verfügbar: |
Supported by all drivers.
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding v_gtext v_justified vst_height
|
C: |
int16_t vst_point ( int16_t handle, int16_t point, int16_t
*char_width, int16_t *char_height, int16_t *cell_width, int16_t
*cell_height );
|
Umsetzung: |
int16_t vst_point (int16_t handle, int16_t point,
int16_t *char_width, int16_t *char_height,
int16_t *cell_width, int16_t *cell_height)
{
intin[0] = point;
contrl[0] = 107;
contrl[1] = 0;
contrl[3] = 1;
contrl[6] = handle;
vdi ();
*char_width = ptsout[0];
*char_height = ptsout[1];
*cell_width = ptsout[2];
*cell_height = ptsout[3];
return ( intout[0] );
}
|
GEM-Arrays: |
|
Name: |
»Set Character Baseline Vector« - Bestimmt die Ausrichtung
der Basislinie für Textausgaben.
|
VDI-Nummer: |
13
|
Deklaration: |
int16_t vst_rotation ( int16_t handle, int16_t angle );
|
Beschreibung: |
Die Funktion legt die Ausrichtung der Basislinie für Textausgaben
fest. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
angle |
gewünschte Ausrichtung der Basislinie
|
Hinweis: Der Winkel wird in 1/10 Grad angegeben. Für
Bitmapfonts ist die Rotation nur in 90-Grad-Schritten möglich; bei
Vektorfonts stufenlos. Auf einigen Geräten ist diese Funktion
nicht verfügbar.
|
Ergebnis: |
Die Funktion liefert den tatsächlich gewählten Winkel.
|
Verfügbar: |
Supported by all drivers. For specific character rotation
abilities, check the values returned in vq_extnd().
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding v_gtext v_justified
|
Name: |
»Set scratch buffer allocation mode« - Scratch-Buffers
|
VDI-Nummer: |
244
|
Deklaration: |
void vst_scratch ( int16_t handle, int16_t mode );
|
Beschreibung: |
Die Funktion legt die Art fest, mit der der Scratch-Buffers
angelegt werden soll. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
mode |
Art des Buffers
0 = |
Berücksichtigung von Bitmap- und Vektorfonts (default)
|
1 = |
Größe richtet sich nach den Bitmap-Fonts. Auf Texteffekte
für Vektorfonts sollte verzichtet werden.
|
2 = |
keinen Scratch-Buffer anlegen, und auf Texteffekte verzichten
|
|
Hinweis: Der Scratch-Buffer dient der Generierung von
Texteffekten. Da Vektor-Zeichensätze frei skalierbar sind, kann dem
Scratch-Buffer keine eindeutige Größe zugeordnet werden.
|
Ergebnis: |
Diese Funktion liefert kein Ergebnis.
|
Verfügbar: |
Beim FSM-GDOS und SpeedoGDOS ab Version 4.00.
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding GDOS SpeedoGDOS vst_effects
|
Name: |
»Set character cell width by arbitrary points« - Setzen der
Zeichenzellenbreite in Punkten.
|
VDI-Nummer: |
252
|
Deklaration: |
int16_t vst_setsize ( int16_t handle, int16_t point, int16_t
*chwd, int16_t *chht, int16_t *cellwd, int16_t *cellht );
|
Beschreibung: |
Die Funktion setzt die Zeichenbreite in Pixel. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
point |
gewünschte Zeichenbreite
|
chwd |
resultierende Zeichenbreite
|
chht |
resultierende Zeichenhöhe
|
cellwd |
resultierende Zeichenzellenbreite
|
cellht |
resultierende Zeichenzellenhöhe
|
Hinweis: Durch einen Aufruf von vst_point, vst_arbpt
oder vst_height wird die durch den Funktionsaufruf gesetzte Breite
wieder aufgehoben, und die vom jeweiligen Zeichen verlangte Breite
eingestellt. Bei negativen Breiten werden die Zeichen an der y-Achse
gespiegelt.
|
Ergebnis: |
Die Funktion liefert die gesetzte Zeichenzellenbreite in
Punkten zurück.
|
Verfügbar: |
Beim FSM-GDOS und SpeedoGDOS ab Version 4.00.
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding vst_setsize32 vst_point vst_height vst_arbpt
|
C: |
int16_t vst_setsize ( int16_t handle, int16_t point, int16_t
*chwd, int16_t *chht, int16_t *cellwd, int16_t *cellht );
|
Umsetzung: |
int16_t vst_setsize (int16_t handle, int16_t point,
int16_t *chwd, int16_t *chht,
int16_t *cellwd, int16_t *cellht)
{
intin[0] = point;
contrl[0] = 252;
contrl[1] = 0;
contrl[3] = 1;
contrl[6] = handle;
vdi ();
*chwd = ptsout[0];
*chht = ptsout[1];
*cellwd = ptsout[2];
*cellht = ptsout[3];
return ( intout[0] );
}
|
GEM-Arrays: |
|
Name: |
»Set character cell width in arbitrary points« - Setzen der
Zeichenzellenbreite in Punkten.
|
VDI-Nummer: |
252
|
Deklaration: |
fix31 vst_setsize32 ( int16_t handle, fix31 point, int16_t
*chwd, int16_t *chht, int16_t *cellwd, int16_t *cellht );
|
Beschreibung: |
Die Funktion setzt die Zeichenbreite in 1/65536 Punkten. Es
gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
point |
gewünschte Zeichenbreite
|
chwd |
resultierende Zeichenbreite
|
chht |
resultierende Zeichenhöhe
|
cellwd |
resultierende Zeichenzellenbreite
|
cellht |
resultierende Zeichenzellenhöhe
|
Hinweis: Durch einen Aufruf von vst_point, vst_arbpt
oder vst_height wird die durch den Funktionsaufruf gesetzte Breite
wieder aufgehoben, und die vom jeweiligen Zeichen verlangte Breite
eingestellt. Bei negativen Breiten werden die Zeichen an der y-Achse
gespiegelt.
|
Ergebnis: |
Die Funktion liefert die gesetzte Zeichenzellenbreite in
1/65536 Punkten zurück.
|
Verfügbar: |
ab SpeedoGDOS 4.00 und ab NVDI 3.00. In der Doku zu NVDI 3.00
wird die Funktion fälschlicherweise vst_setsize genannt.
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding vst_point vst_height vst_arbpt
|
C: |
fix31 vst_setsize32 ( int16_t handle, fix31 point, int16_t
*chwd, int16_t *chht, int16_t *cellwd, int16_t *cellht );
|
Umsetzung: |
fix31 vst_setsize32 (int16_t handle, fix31 point,
int16_t *chwd, int16_t *chht,
int16_t *cellwd, int16_t *cellht)
{
intin[0..1] = point;
contrl[0] = 252;
contrl[1] = 0;
contrl[3] = 2;
contrl[6] = handle;
vdi ();
*chwd = ptsout[0];
*chht = ptsout[1];
*cellwd = ptsout[2];
*cellht = ptsout[3];
return ( intout[0..1] );
}
|
GEM-Arrays: |
|
Name: |
»Set outline font skew« - Setzen des Neigungsgrades für
kursive Schrift.
|
VDI-Nummer: |
253
|
Deklaration: |
int16_t vst_skew ( int16_t handle, int16_t skew );
|
Beschreibung: |
Die Funktion setzt den Neigungsgrad für Kursivschrift. Es
gilt:
Parameter |
Bedeutung
|
handle |
Kennung der Workstation
|
skew |
gewünschter Winkel
|
Hinweis: Der Winkel wird in zehntel Grad angegeben und
darf zwischen -90° und +90° variieren. Wie überall im VDI sind auch
hier die Winkel entgegen dem Uhrzeigersinn gerichtet. Positive Winkel
führen zu einer Neigung nach links, wogegen negative Winkel Zeichen
nach rechts neigen.
Diese Funktion kann eigentlich nur als nette Spielerei angesehen
werden, da die erzeugten Zeichen grundsätzlich schlechter aussehen,
als ein richtiger Italic Zeichensatz.
|
Ergebnis: |
Die Funktion liefert den gesetzten Neigungsgrad zurück.
|
Verfügbar: |
Beim FSM-GDOS, SpeedoGDOS ab Version 4.00 und ab NVDI 3.00.
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding vst_effects SpeedoGDOS NVDI
|
Name: |
»Set track-kerning offset« - Offset für Trackkerning setzen
|
VDI-Nummer: |
237 (Opcode 255)
|
Deklaration: |
void vst_track_offset ( int16_t handle, fix31 offset, int16_t
pairmode, int16_t *tracks, int16_t *pairs );
|
Beschreibung: |
Die Funktion ermöglicht es, ein selbstdefiniertes
Track-Kerning einzustellen. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
offset |
gewünschter Abstand
|
pairmode |
Pair-Kerning
0 = |
ausschalten
|
1 = |
einschalten
|
|
tracks |
gesetzter Track-Kerning Modus
|
pairs |
Anzahl der Kerning-Paare im Zeichensatz
|
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
Die Funktion steht unter NVDI ab Version 3.00 zur Verfügung.
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding vqt_pairkern vqt_trackkern vst_kern
|
Name: |
»Set character width (absolute mode)« - Zeichenbreite in
Pixeln setzen
|
VDI-Nummer: |
231
|
Deklaration: |
void vst_width ( int16_t handle, int16_t width, int16_t
*char_width, int16_t *char_height, int16_t *cell_width, int16_t
*cell_height );
|
Beschreibung: |
Die Funktion setzt die Zeichenbreite in Pixeln. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
width |
gewünschte Zeichenbreite
|
char_width |
ausgewählte Zeichenbreite
|
char_height |
ausgewählte Zeichenhöhe
|
cell_width |
ausgewählte Zeichenzellenbreite
|
cell_height |
ausgewählte Zeichenzellenhöhe
|
Hinweis: Durch den nächsten Aufruf von vst_height,
vst_point oder vst_arbpt32 wird die gesetzte Breite wieder
zurückgesetzt. Zum Einstellen des Breiten-Höhen Verhältnisses ist
vst_setsize32 besser geeignet, da diese Funktion eine feinere
Einstellung ermöglicht.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
ab SpeedoGDOS 4.20 und ab NVDI 3.00
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding vst_arbpt vst_height vst_point vst_setsize
|
C: |
void vst_width ( int16_t handle, int16_t width, int16_t
*char_width, int16_t *char_height, int16_t *cell_width, int16_t
*cell_height );
|
Umsetzung: |
void vst_width (int16_t handle, int16_t width,
int16_t *char_width, int16_t *char_height,
int16_t *cell_width, int16_t *cell_height)
{
ptsin[0] = width;
contrl[0] = 231;
contrl[1] = 1;
contrl[3] = 0;
contrl[6] = handle;
vdi ();
*char_width = ptsout[0];
*char_height = ptsout[1];
*cell_width = ptsout[2];
*cell_height = ptsout[3];
}
|
GEM-Arrays: |
|
Name: |
»Set Character Height, absolute Mode« - bestimmt die
Zeichenhöhe bei Textausgaben.
|
VDI-Nummer: |
5 (Escape 18501)
|
Deklaration: |
void v_topbot ( int16_t handle, int16_t height, int16_t
*char_width, int16_t *char_height, int16_t *cell_width, int16_t
*cell_height );
|
Beschreibung: |
This call is an alternative to vst_height. It uses top to
bottom distance for text scaling, instead of top to baseline distance.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
height |
Zeichenhöhe
|
char_width |
gewählte Zeichenbreite
|
char_height |
gewählte Zeichenhöhe
|
cell_width |
Zeichenzellenbreite
|
cell_height |
Zeichenzellenhöhe
|
Hinweis: Falls die gewünschte Zeichenhöhe nicht
verfügbar ist, wird automatisch die nächstkleinere gewählt. Bei
Proportionalfonts enthalten die Ausgabeparameter die Breite des
breitesten Zeichens im Zeichensatz.
Die meisten Bildschirmtreiber können bei dieser Funktion
vorhandene Zeichensätze beliebig verkleinern, oder auf das doppelte
vergrößern. Dies gilt insbesondere für den im ROM implementierten
Bildschirmtreiber.
Bei Vektorfonts stellen die ausgegebenen Breiten von
char_width und cell_width gerundete Werte dar.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
GEM/3 Release 3.1
|
Gruppe: |
Text-Attribute
|
Querverweis: |
Binding v_gtext v_justified vst_point vst_height
|
C: |
void v_topbot ( int16_t handle, int16_t height, int16_t
*char_width, int16_t *char_height, int16_t *cell_width, int16_t
*cell_height );
|
Umsetzung: |
void v_topbot (int16_t handle, int16_t height,
int16_t *char_width, int16_t *char_height,
int16_t *cell_width, int16_t *cell_height)
{
ptsin[0] = 0;
ptsin[1] = height;
contrl[0] = 5;
contrl[1] = 1;
contrl[3] = 0;
contrl[5] = 18501;
contrl[6] = handle;
vdi ();
*char_width = ptsout[0];
*char_height = ptsout[1];
*cell_width = ptsout[2];
*cell_height = ptsout[3];
}
|
GEM-Arrays: |
|
Name: |
»Set background color« - Setzen der Hintergrundfarbe.
|
VDI-Nummer: |
5 (Escape 102)
|
Deklaration: |
void vs_bkcolor ( int16_t handle, int16_t color );
|
Beschreibung: |
This call sets the background color for the device associated
with handle, usually a camera device.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
color |
Background color index
|
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
GEM/3 Release 3.1
|
Gruppe: |
übergeordnete Attribute
|
Querverweis: |
Binding
|
Name: |
»Set Color Representation« - legt die Farbintensität fest.
|
VDI-Nummer: |
14
|
Deklaration: |
void vs_color ( int16_t handle, int16_t index, int16_t *rgb_in
);
|
Beschreibung: |
Die Funktion wählt die Farbintensität zu den einzelnen
Farbregistern. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
index |
Farbnummer
|
rgb_in[0] |
Rotanteil in Promille
|
rgb_in[1] |
Grünanteil in Promille
|
rgb_in[2] |
Blauanteil in Promille
|
Da nicht jedes Ausgabegerät über 1000 mögliche
Farbabstufungen verfügen muß, können für verschiedene
Eingabeintensitäten der RGB-Farben, die tatsächlich eingestellten
Intensitäten gleich sein.
Hinweis: Die Funktion kann nur benutzt werden, falls
eine Lookup-Table Unterstützung vorhanden ist. Sollte eine ungültige
Farbnummer übergeben werden, wird der nächste erreichbare Wert
angenommen.
Bei Geräten mit einer CLUT (Grafiksysteme bis 8 Planes d.h. 256
Farben) wirken sich die Einstellungen sofort auf alle Punkte aus, die
bisher auf dem Bildschirm mit dem Farbindex index gezeichnet
wurden.
Wichtig: Aus diesem Grund sollten die ersten 16
Farbnummern nicht verändert werden, da diese vom AES benutzt werden.
Bei mehr als 256 gleichzeitig darstellbaren Farben benutzen
Grafiksysteme in der Regel keine CLUT sondern eine direkte
RGB-Zuordnung pro Pixel. Die einzelnen Pixel enthalten dann statt
eines Farbindex einen direkten RGB-Wert (z.B. je 8 Bit für R,G und B
und 8 Bit Overlay). Bei einer solchen Organisation stellt das VDI pro
Workstation 256 lokale Farbstifte und eine Pseudopalette zur
Verfügung, für die man mit vs_color() die Farbwerte setzen kann.
Eine Änderung wirkt sich also erst dann aus, wenn man wieder mit dem
Farbstift zeichnet und wirkt sich immer nur auf die mit handle
bezeichnete Workstation aus.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
Supported by all devices.
|
Gruppe: |
übergeordnete Attribute
|
Querverweis: |
Binding v_pline v_pmarker v_gtext v_fillarea
v_cellarray v_contourfill vr_recfl v_bar v_arc v_pieslice
v_circle v_ellarc v_ellpie v_ellipse v_rbox v_rfbox
v_justified vq_color vq_scrninfo
|
C: |
void vs_color ( int16_t handle, int16_t index, int16_t *rgb_in
);
|
Umsetzung: |
void vs_color (int16_t handle, int16_t index, int16_t *rgb_in)
{
int16_t i;
intin[0] = index;
for (i=1; i<4; i++)
intin[i] = *rgb_in++;
contrl[0] = 14;
contrl[1] = 0;
contrl[3] = 4;
contrl[6] = handle;
vdi ();
}
|
GEM-Arrays: |
|
Name: |
»Set Color Representation-2« - Farbintensität und Farbe für
Attribute festlegen.
|
VDI-Nummer: |
138 (Opcode 0,1,2)
|
Deklaration: |
void vs_color2 ( int16_t handle, int16_t *rgb, int16_t index );
|
Beschreibung: |
Die Funktion legt die Farbintensität und Farbe für bestimmte
Attributfunktionen fest. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
rgb[0] |
Rotanteil in Promille
|
rgb[1] |
Grünanteil in Promille
|
rgb[2] |
Blauanteil in Promille
|
index |
Farbnummer
|
Hinweis: Die Funktion steht direkt nur unter
PC-GEM zur Verfügung. Sie kann jedoch auf dem Atari nachgebildet
werden, was von einigen Applikationen (z.B. Kandinsky und GEM) auch
tatsächlich gemacht wird.
Sie arbeitet ähnlich wie vs_color, mit dem Unterschied, daß
bei einem Opcode von
0 |
die Textfarbe,
|
1 |
die Füllfarbe,
|
2 |
die Linienfarbe
|
geändert wird, und somit die entsprechenden Aufrufe von
vsl_color etc. nicht mehr notwendig sind. Ob der Name der Funktion
(vs_color2) wirklich stimmt, kann mangels Dokumentation leider
nicht mit Sicherheit gesagt werden.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
Obige Aussage kann nicht bestätigt werden. Es ist zu vermuten
das hier eigentlich die Funktion v_setrgb gemeint. Allerdings ist die
Übergabe der Parameter etwas anderst.
|
Gruppe: |
übergeordnete Attribute
|
Querverweis: |
Binding v_setrgb vs_color vswr_mode
|
Name: |
»Override gray level«
|
VDI-Nummer: |
133
|
Deklaration: |
void vs_grayoverride ( int16_t handle, int16_t grayval );
|
Beschreibung: |
This call overrides the grey level specified with the vsf_style
call patterns 2,1 through 2,8. The application should specify the
closest index in the normal fill pattern set and follow it with a
vs_grayoverride call to "fine-tune" that gray level one
devices that support such fine tuning. This call is currently
implemented in the PostScript driver.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
grayval |
Gray value in tenths of a percent
0 white
1000 black
|
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
GEM/3 Release 3.1
|
Gruppe: |
übergeordnete Attribute
|
Querverweis: |
Binding
|
Name: |
»PostScript halftoning« - Set PostScript halftoning.
|
VDI-Nummer: |
5 (Escape 32)
|
Deklaration: |
void v_ps_halftone( int16_t handle, int16_t index, int16_t
angle, int16_t frequency );
|
Beschreibung: |
The call v_ps_halftone controls the parameters for PostScript
halftoning. It provides direct access to analogous PostScript language
parameters. It is implemented only for the PostScript driver.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
index |
Halftone type
0: Dot screen
1: Line screen
2: Ellipse screen
3: Custom (user-defined)
|
angle |
Hallftone screen angle
|
frequency |
Hallftone screen frequency
|
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
GEM/3 Release 3.1
|
Gruppe: |
übergeordnete Attribute
|
Querverweis: |
Binding
|
Name: |
»Set Color Representation« - legt die Farbintensität fest.
|
VDI-Nummer: |
138
|
Deklaration: |
void v_setrgb( int16_t handle, int16_t type, int16_t r, int16_t
g, int16_t b );
|
Beschreibung: |
Die Funktion wählt die Farbintensität zu den einzelnen
Farbregistern. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
type |
0: Textfarbe
1: Füllfarbe
2: Linienfarbe
3: Markerfarbe
|
r |
Rotanteil in Promille
|
g |
Grünanteil in Promille
|
b |
Blauanteil in Promille
|
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
ab NVDI 5.00
Es handelt sich dabei angeblich um eine alte GEM/3-Funktion.
Allerdings konnte solch eine Funktion bis jetzt nicht gefunden werden.
|
Gruppe: |
übergeordnete Attribute
|
Querverweis: |
Binding
|
Name: |
»Set Color Representation« - legt die Farbintensität fest.
|
VDI-Nummer: |
5 (Escape 18500)
|
Deklaration: |
void v_setrgbi( int16_t handle, int16_t primtype, int16_t r,
int16_t g, int16_t b, int16_t i );
|
Beschreibung: |
This call overrides a previously set color specification with
an RGB triple (color devices) or intensity (monochrome devices). This
call is currently implemented only for the PostScript driver.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
primtype |
Primitive type:
17: line
20: marker
22: text
25: fill
|
r |
Rotanteil in Promille
|
g |
Grünanteil in Promille
|
b |
Blauanteil in Promille
|
i |
Intensity
|
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
GEM/3 Release 3.1
|
Gruppe: |
übergeordnete Attribute
|
Querverweis: |
Binding v_setrgb
|
C: |
void v_setrgbi( int16_t handle, int16_t primtype, int16_t r,
int16_t g, int16_t b, int16_t i );
|
Umsetzung: |
void v_setrgbi( int16_t handle, int16_t primtype,
int16_t r, int16_t g, int16_t b, int16_t i )
{
intin[0] = primtype;
intin[1] = r;
intin[2] = g;
intin[3] = b;
intin[4] = i;
contrl[0] = 5;
contrl[1] = 0;
contrl[3] = 5;
contrl[5] = 18500;
contrl[6] = handle;
vdi ();
}
|
GEM-Arrays: |
|
VDI
VDI-Bindings
Ausgabefunktionen