HomeVDIVDI-BindingsAusgabefunktionen

7.4 Attributfunktionen

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

7.4.1 Bitmap-Attribute

vsr_bg_color Hintergrundfarbe setzen
vsr_fg_color Vordergrundfarbe setzen

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

7.4.2 Fülltyp-Attribute

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:

vsf_bg_color Hintergrundfarbe setzen
vsf_color Füllfarbe auswählen.
vsf_fg_color Vordergrundfarbe setzen
vsf_interior Auswahl des Fülltyps.
vsf_perimeter Rahmen zeichnen oder nicht.
vsf_style Füllmuster auswählen.
vsf_udpat Eigenes Füllmuster definieren.
vsf_xperimeter Sets fill parameter visibility

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

7.4.3 Linien-Attribute

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:

v_bez_qual Qualität der Bezier-Spline-Erzeugung setzen.
vsl_bg_color Hintergrundfarbe setzen
vsl_color Linienfarbe auswählen.
vsl_ends Linienenden definieren.
vsl_fg_color Vordergrundfarbe setzen
vsl_type Liniendarstellung einstellen.
vsl_udsty Eigene Liniendarstellung definieren.
vsl_width Linienbreite definieren.

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

7.4.4 Markierungs-Attribute

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:

vsm_bg_color Hintergrundfarbe setzen
vsm_color Markierungsfarbe festlegen.
vsm_fg_color Vordergrundfarbe setzen
vsm_height Markierungsgröße festlegen.
vsm_type Markierungstyp auswählen.

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

7.4.5 Text-Attribute

Diese Gruppe von Funktionen ermöglicht es, verschiedene Attribute des Text-Handlings zu manipulieren. Zu diesem Zweck stehen die folgenden Routinen zur Verfügung:

v_topbot Textgröße festlegen.
vst_alignment Horizontale und vertikale Ausrichtung eines Texts bestimmen.
vst_arbpt Setzen der Zeichenzellenhöhe in Punkten.
vst_arbpt32 Setzen der Zeichenzellenhöhe in Punkten (fix31).
vst_bg_color Hintergrundfarbe setzen
vst_charmap Wahl der Zeichensatzindizierung (Atari/Bitstream).
vst_color Farbe für Textausgaben festlegen.
vst_effects Texteffekte auswählen.
vst_error Setzen der GDOS Fehlerbehandlung.
vst_fg_color Vordergrundfarbe setzen
vst_font Zeichensatz auswählen.
vst_height Textgröße festlegen.
vst_kern Setzen des Kerning-Modus.
vst_map_mode Wahl der Zeichensatzindizierung (Atari/Bitstream/Unicode).
vst_name Zeichensatz suchen und einstellen.
vst_point Größe der Zeichenzelle festlegen.
vst_rotation Drehung der Textausgabe.
vst_scratch Bestimmen der Größe des Scratch-Buffers.
vst_setsize Setzen der Zeichenzellenbreite in Punkten.
vst_setsize32 Setzen der Zeichenzellenbreite in Punkten (fix31).
vst_skew Setzen des Neigungsgrades für Kursivschrift.
vst_track_offset Offset für Track-Kerning einstellen.
vst_width Zeichenbreite in Pixeln setzen.

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

7.4.6 übergeordnete Attribute

Diese Gruppe von Funktionen ermöglicht die Festlegung des Schreibmodus sowie der Intenstität einer Farbe; sie umfaßt die folgenden Routinen:

v_ps_halftone Sets PostScript halftoning type
v_setrgb Farbe festlegen.
v_setrgbi Farbe festlegen.
vs_bkcolor Setzen der Hintergrundfarbe
vs_color Farbintensität einer Farbe festlegen.
vs_color2 Farbintensität und Farbe für Attribute festlegen.
vs_grayoverride Fine-tunes grey level
vswr_mode Schreibmodus auswählen.

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

7.4.6.1 vsr_bg_color

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

7.4.6.2 Bindings für vsr_bg_color

C: int16_t vsr_bg_color ( int16_t handle, int32_t color_space, COLOR_ENTRY *fg_color );
Umsetzung:
int16_t vsr_bg_color( int16_t handle, int32_t color_space,
                      COLOR_ENTRY *fg_color )
{
   intin[0..1] = color_space;
   intin[2..5] = fg_color;

   contrl[0] = 201;
   contrl[1] = 0;
   contrl[3] = 6;
   contrl[5] = 4;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 201 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 6 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 4
contrl+12 contrl[6] handle
intin intin[0..1] color_space
intin+4 intin[2..5] fg_color
intout intout[0] Return-Wert

7.4.6.3 vsr_fg_color

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

7.4.6.4 Bindings für vsr_fg_color

C: int16_t vsr_fg_color ( int16_t handle, int32_t color_space, COLOR_ENTRY *fg_color );
Umsetzung:
int16_t vsr_fg_color( int16_t handle, int32_t color_space,
                      COLOR_ENTRY *fg_color )
{
   intin[0..1] = color_space;
   intin[2..5] = fg_color;

   contrl[0] = 200;
   contrl[1] = 0;
   contrl[3] = 6;
   contrl[5] = 4;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 200 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 6 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 4
contrl+12 contrl[6] handle
intin intin[0..1] color_space
intin+4 intin[2..5] fg_color
intout intout[0] Return-Wert

7.4.6.5 Grafische Übersicht von Fülltyp und Musterindex

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

7.4.6.6 Beschreibung der VDI-Schreibmodi

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

7.4.6.7 vsf_bg_color

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

7.4.6.8 Bindings für vsf_bg_color

C: int16_t vsf_bg_color ( int16_t handle, int32_t color_space, COLOR_ENTRY *fg_color );
Umsetzung:
int16_t vsf_bg_color( int16_t handle, int32_t color_space,
                      COLOR_ENTRY *fg_color )
{
   intin[0..1] = color_space;
   intin[2..5] = fg_color;

   contrl[0] = 201;
   contrl[1] = 0;
   contrl[3] = 6;
   contrl[5] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 201 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 6 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 1
contrl+12 contrl[6] handle
intin intin[0..1] color_space
intin+4 intin[2..5] fg_color
intout intout[0] Return-Wert

7.4.6.9 vsf_color

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

7.4.6.10 Bindings für vsf_color

C: int16_t vsf_color ( int16_t handle, int16_t color_index );
Umsetzung:
int16_t vsf_color (int16_t handle, int16_t color_index)
{
   intin[0] = color_index;

   contrl[0] = 25;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 25 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] color_index
intout intout[0] Return-Wert

7.4.6.11 vsf_fg_color

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

7.4.6.12 Bindings für vsf_fg_color

C: int16_t vsf_fg_color ( int16_t handle, int32_t color_space, COLOR_ENTRY *fg_color );
Umsetzung:
int16_t vsf_fg_color( int16_t handle, int32_t color_space,
                      COLOR_ENTRY *fg_color )
{
   intin[0..1] = color_space;
   intin[2..5] = fg_color;

   contrl[0] = 200;
   contrl[1] = 0;
   contrl[3] = 6;
   contrl[5] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 200 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 6 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 1
contrl+12 contrl[6] handle
intin intin[0..1] color_space
intin+4 intin[2..5] fg_color
intout intout[0] Return-Wert

7.4.6.13 vsf_interior

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

7.4.6.14 Bindings für vsf_interior

C: int16_t vsf_interior ( int16_t handle, int16_t style );
Umsetzung:
int16_t vsf_interior (int16_t handle, int16_t style)
{
   intin[0] = style;

   contrl[0] = 23;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 23 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] style
intout intout[0] Return-Wert

7.4.6.15 vsf_perimeter

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

7.4.6.16 Bindings für vsf_perimeter

C: int16_t vsf_perimeter ( int16_t handle, int16_t per_vis );
Umsetzung:
int16_t vsf_perimeter (int16_t handle, int16_t per_vis)
{
   intin[0] = per_vis;

   contrl[0] = 104;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 104 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] per_vis
intout intout[0] Return-Wert

7.4.6.17 vsf_style

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:
Parameter Bedeutung
   
handle Kennung der Workstation
style_index Index des Musters


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

7.4.6.18 Bindings für vsf_style

C: int16_t vsf_style ( int16_t handle, int16_t style_index );
Umsetzung:
int16_t vsf_style (int16_t handle, int16_t style_index)
{
   intin[0] = style_index;

   contrl[0] = 24;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 24 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] style_index
intout intout[0] Return-Wert

7.4.6.19 vsf_udpat

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

7.4.6.20 Bindings für vsf_udpat

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:

Adresse Feldelement Belegung
contrl contrl[0] 112 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 16*n # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] pfill_pat[0]
... ... ...
... ... ...
intin+32n-2 intin[16n-1] pfill_pat[16n-1]

7.4.6.21 vsf_xperimeter

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

7.4.6.22 Bindings für vsf_xperimeter

C: int16_t vsf_xperimeter ( int16_t handle, int16_t on_off, int16_t f_or_l );
Umsetzung:
int16_t vsf_xperimeter (int16_t handle, int16_t on_off,
                        int16_t f_or_l )
{
   intin[0] = on_off;
   intin[1] = f_or_l;

   contrl[0] = 104;
   contrl[1] = 0;
   contrl[3] = 2;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 104 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] on_off
intin+2 intin[1] f_or_l
intout intout[0] Return-Wert

7.4.6.23 vsl_bg_color

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

7.4.6.24 Bindings für vsl_bg_color

C: int16_t vsl_bg_color ( int16_t handle, int32_t color_space, COLOR_ENTRY *fg_color );
Umsetzung:
int16_t vsl_bg_color( int16_t handle, int32_t color_space,
                      COLOR_ENTRY *fg_color )
{
   intin[0..1] = color_space;
   intin[2..5] = fg_color;

   contrl[0] = 201;
   contrl[1] = 0;
   contrl[3] = 6;
   contrl[5] = 2;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 201 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 6 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 2
contrl+12 contrl[6] handle
intin intin[0..1] color_space
intin+4 intin[2..5] fg_color
intout intout[0] Return-Wert

7.4.6.25 vsl_color

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

7.4.6.26 Bindings für vsl_color

C: int16_t vsl_color ( int16_t handle, int16_t color_index );
Umsetzung:
int16_t vsl_color (int16_t handle, int16_t color_index)
{
   intin[0] = color_index;

   contrl[0] = 17;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 17 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] color_index
intout intout[0] Return-Wert

7.4.6.27 vsl_ends

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

7.4.6.28 Bindings für vsl_ends

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:

Adresse Feldelement Belegung
contrl contrl[0] 108 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] beg_style
intin+2 intin[1] end_style

7.4.6.29 vsl_fg_color

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

7.4.6.30 Bindings für vsl_fg_color

C: int16_t vsl_fg_color ( int16_t handle, int32_t color_space, COLOR_ENTRY *fg_color );
Umsetzung:
int16_t vsl_fg_color( int16_t handle, int32_t color_space,
                      COLOR_ENTRY *fg_color )
{
   intin[0..1] = color_space;
   intin[2..5] = fg_color;

   contrl[0] = 200;
   contrl[1] = 0;
   contrl[3] = 6;
   contrl[5] = 2;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 200 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 6 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 2
contrl+12 contrl[6] handle
intin intin[0..1] color_space
intin+4 intin[2..5] fg_color
intout intout[0] Return-Wert

7.4.6.31 vsl_type

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

7.4.6.32 Bindings für vsl_type

C: int16_t vsl_type ( int16_t handle, int16_t style );
Umsetzung:
int16_t vsl_type (int16_t handle, int16_t style)
{
   intin[0] = style;

   contrl[0] = 15;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 15 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] style
intin+2 intin[1] Return-Wert

7.4.6.33 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

7.4.6.34 Bindings für vsl_udsty

C: void vsl_udsty ( int16_t handle, int16_t pattern );
Umsetzung:
void vsl_udsty (int16_t handle, int16_t pattern)
{
   intin[0] = pattern;

   contrl[0] = 113;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 113 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] pattern

7.4.6.35 vsl_width

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

7.4.6.36 Bindings für vsl_width

C: int16_t vsl_width ( int16_t handle, int16_t width );
Umsetzung:
int16_t vsl_width (int16_t handle, int16_t width)
{
   ptsin[0] = width;
   ptsin[1] = 0;

   contrl[0] = 16;
   contrl[1] = 1;
   contrl[3] = 0;
   contrl[6] = handle;

   vdi ();

   return ( ptsout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 16 # Opcode der Funktion
contrl+2 contrl[1] 1 # Einträge in ptsin
contrl+4 contrl[2] 1 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
ptsin ptsin[0] width
ptsin+2 ptsin[1] 0
ptsout ptsout[0] Return-Wert
ptsout+2 ptsout[1] 0

7.4.6.37 v_bez_qual

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 den alten Qualitäts-Faktor zurück.

Das GEM/3 und NVDI Binding liefert set_qual zusätzlich 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

7.4.6.38 Bindings für v_bez_qual

C: int16_t v_bez_qual ( int16_t handle, int16_t qual, int16_t *set_qual );

Für GEM/3 Release 3.1 gilt:
int16_t v_bez_qual ( int16_t handle, int16_t qual );
Umsetzung:
int16_t v_bez_qual (int16_t handle, int16_t qual,
                    int16_t *set_qual)
{
   intin[0] = 32;
   intin[1] = 1;
   intin[2] = qual;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 3;
   contrl[5] = 99;
   contrl[6] = handle;

   vdi ();

   *set_qual = intout[0];

   return intout[0];
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 3 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 99 Unterfunktion
contrl+12 contrl[6] handle
intin intin[0] 32
intin+2 intin[1] 1
intin+4 intin[2] qual
intout intout[0] set_qual

7.4.6.39 vsm_bg_color

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

7.4.6.40 Bindings für vsm_bg_color

C: int16_t vsm_bg_color ( int16_t handle, int32_t color_space, COLOR_ENTRY *fg_color );
Umsetzung:
int16_t vsm_bg_color( int16_t handle, int32_t color_space,
                      COLOR_ENTRY *fg_color )
{
   intin[0..1] = color_space;
   intin[2..5] = fg_color;

   contrl[0] = 201;
   contrl[1] = 0;
   contrl[3] = 6;
   contrl[5] = 3;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 201 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 6 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 3
contrl+12 contrl[6] handle
intin intin[0..1] color_space
intin+4 intin[2..5] fg_color
intout intout[0] Return-Wert

7.4.6.41 vsm_color

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

7.4.6.42 Bindings für vsm_color

C: int16_t vsm_color ( int16_t handle, int16_t color_index );
Umsetzung:
int16_t vsm_color (int16_t handle, int16_t color_index)
{
   intin[0] = color_index;

   contrl[0] = 20;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 20 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] color_index
intout intout[0] Return-Wert

7.4.6.43 vsm_fg_color

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

7.4.6.44 Bindings für vsm_fg_color

C: int16_t vsm_fg_color ( int16_t handle, int32_t color_space, COLOR_ENTRY *fg_color );
Umsetzung:
int16_t vsm_fg_color( int16_t handle, int32_t color_space,
                      COLOR_ENTRY *fg_color )
{
   intin[0..1] = color_space;
   intin[2..5] = fg_color;

   contrl[0] = 200;
   contrl[1] = 0;
   contrl[3] = 6;
   contrl[5] = 3;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 200 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 6 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 3
contrl+12 contrl[6] handle
intin intin[0..1] color_space
intin+4 intin[2..5] fg_color
intout intout[0] Return-Wert

7.4.6.45 vsm_height

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

7.4.6.46 Bindings für vsm_height

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:

Adresse Feldelement Belegung
contrl contrl[0] 19 # Opcode der Funktion
contrl+2 contrl[1] 1 # Einträge in ptsin
contrl+4 contrl[2] 1 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
ptsin ptsin[0] 0
ptsin+2 ptsin[1] height
ptsout ptsout[0] set_height_x
ptsout+2 ptsout[1] Return-Wert


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.

7.4.6.47 vsm_type

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

7.4.6.48 Bindings für vsm_type

C: int16_t vsm_type ( int16_t handle, int16_t typ );
Umsetzung:
int16_t vsm_type (int16_t handle, int16_t typ)
{
   intin[0] = typ;

   contrl[0] = 18;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 18 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] type
intout intout[0] Return-Wert

7.4.6.49 vst_alignment

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

7.4.6.50 Bindings für vst_alignment

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:

Adresse Feldelement Belegung
contrl contrl[0] 39 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] hor_in
intin+2 intin[1] vert_in
intout intout[0] hor_out
intout+2 intout[1] vert_out

7.4.6.51 vst_arbpt

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

7.4.6.52 Bindings für vst_arbpt

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] = 2;
   contrl[6] = handle;

   vdi ();

   *chwd   = ptsout[0];
   *chht   = ptsout[1];
   *cellwd = ptsout[2];
   *cellht = ptsout[3];

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 246 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 2 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] point
ptsout ptsout[0] chwd
ptsout+2 ptsout[1] chht
ptsout+4 ptsout[2] cellwd
ptsout+6 ptsout[3] cellht
intout intout[0] Return-Wert

7.4.6.53 vst_arbpt32

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

7.4.6.54 Bindings für vst_arbpt32

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:

Adresse Feldelement Belegung
contrl contrl[0] 246 Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 2 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0..1] point
intout intout[0..1] Return-Wert
ptsout ptsout[0] chwd
ptsout+2 ptsout[1] chht
ptsout+4 ptsout[2] cellwe
ptsout+6 ptsout[3] cellht

7.4.6.55 vst_bg_color

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

7.4.6.56 Bindings für vst_bg_color

C: int16_t vst_bg_color ( int16_t handle, int32_t color_space, COLOR_ENTRY *fg_color );
Umsetzung:
int16_t vst_bg_color( int16_t handle, int32_t color_space,
                      COLOR_ENTRY *fg_color )
{
   intin[0..1] = color_space;
   intin[2..5] = fg_color;

   contrl[0] = 201;
   contrl[1] = 0;
   contrl[3] = 6;
   contrl[5] = 0;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 201 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 6 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 0
contrl+12 contrl[6] handle
intin intin[0..1] color_space
intin+4 intin[2..5] fg_color
intout intout[0] Return-Wert

7.4.6.57 vst_charmap

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

7.4.6.58 Bindings für vst_charmap

C: void vst_charmap ( int16_t handle, int16_t mode );
Umsetzung:
void vst_charmap (int16_t handle, int16_t mode)
{
   intin[0] = mode;

   contrl[0] = 236;
   contrl[1] = 0;
   contrl[3] = 2;
   contrl[6] = handle;

   vdi ();

}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 236 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] mode

7.4.6.59 vst_color

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

7.4.6.60 Bindings für vst_color

C: int16_t vst_color ( int16_t handle, int16_t color_index );
Umsetzung:
int16_t vst_color (int16_t handle, int16_t color_index)
{
   intin[0] = color_index;

   contrl[0] = 22;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 22 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] color_index
intout intout[0] Return-Wert

7.4.6.61 vst_effects

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

7.4.6.62 Bindings für vst_effects

C: int16_t vst_effects ( int16_t handle, int16_t effect );
Umsetzung:
int16_t vst_effects (int16_t handle, int16_t effect)
{
   intin[0] = effect;

   contrl[0] = 106;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 106 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] effect
intout intout[0] Return-Wert

7.4.6.63 vst_error

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.)
7 = Rules requested; not supported
8 = Modus nicht verfügbar
10 = Font nicht angegeben
12 = Zeichen-Daten nicht verfügbar
13 = Track-Kerning Daten nicht verfügbar
14 = Paar-Kerning Daten nicht verfügbar


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 und SpeedoGDOS ab Version 4.00
Gruppe: Text-Attribute
Querverweis: Binding   GDOS   SpeedoGDOS

7.4.6.64 Bindings für vst_error

C: void vst_error ( int16_t handle, int16_t mode, int16_t *errorvar );
Umsetzung:
void vst_error ( int16_t handle, int16_t mode,
                 int16_t *errorvar )
{
   intin[0] = mode;
   intin[1..2] = errorvar;

   contrl[0] = 245;
   contrl[1] = 0;
   contrl[3] = 3;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 245 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 1 # Einträge in ptsout
contrl+6 contrl[3] 3 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] mode
intin+2 intin[1..2] errorvar

7.4.6.65 vst_fg_color

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

7.4.6.66 Bindings für vst_fg_color

C: int16_t vst_fg_color ( int16_t handle, int32_t color_space, COLOR_ENTRY *fg_color );
Umsetzung:
int16_t vst_fg_color( int16_t handle, int32_t color_space,
                      COLOR_ENTRY *fg_color )
{
   intin[0..1] = color_space;
   intin[2..5] = fg_color;

   contrl[0] = 200;
   contrl[1] = 0;
   contrl[3] = 6;
   contrl[5] = 0;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 200 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 6 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 0
contrl+12 contrl[6] handle
intin intin[0..1] color_space
intin+4 intin[2..5] fg_color
intout intout[0] Return-Wert

7.4.6.67 vst_font

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

7.4.6.68 Bindings für vst_font

C: int16_t vst_font ( int16_t handle, int16_t font );
Umsetzung:
int16_t vst_font (int16_t handle, int16_t font)
{
   intin[0] = font;

   contrl[0] = 21;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 21 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] font
intout intout[0] Return-Wert

7.4.6.69 vst_height

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

7.4.6.70 Bindings für vst_height

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:

Adresse Feldelement Belegung
contrl contrl[0] 12 # Opcode der Funktion
contrl+2 contrl[1] 1 # Einträge in ptsin
contrl+4 contrl[2] 2 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
ptsin ptsin[0] 0
ptsin+2 ptsin[1] height
ptsout ptsout[0] char_width
ptsout+2 ptsout[1] char_height
ptsout+4 ptsout[2] cell_width
ptsout+6 ptsout[3] cell_height

7.4.6.71 vst_kern

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

7.4.6.72 Bindings für vst_kern

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:

Adresse Feldelement Belegung
contrl contrl[0] 237 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] tmode
intin+2 intin[1] pmode
intout intout[0] tracks
intout+2 intout[1] pairs

7.4.6.73 vst_map_mode

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

7.4.6.74 Bindings für vst_map_mode

C: int16_t vst_map_mode ( int16_t handle, int16_t mode );
Umsetzung:
int16_t vst_charmap (int16_t handle, int16_t mode)
{
   intin[0] = mode;
   intin[1] = 1;       /* Mapping zurückliefern */

   contrl[0] = 236;
   contrl[1] = 0;
   contrl[3] = 2;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 236 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] mode
intin+2 intin[1] 1
intout intout[0] Return-Wert

7.4.6.75 vst_name

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

7.4.6.76 Bindings für vst_name

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:

Adresse Feldelement Belegung
contrl contrl[0] 230 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] m # Einträge in intout
contrl+10 contrl[5] 0 Unterfunktion
contrl+12 contrl[6] handle
intin intin[0] font_format
intin+2 intin[1..n] font_name[0..n-1]
intout intout[0] Return-Wert
intout+2 intout[1..m] ret_name[0..m-1]

7.4.6.77 vst_point

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

7.4.6.78 Bindings für vst_point

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:

Adresse Feldelement Belegung
contrl contrl[0] 107 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 2 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] point
intout intout[0] Return-Wert
ptsout ptsout[0] char_width
ptsout+2 ptsout[1] char_height
ptsout+4 ptsout[2] cell_width
ptsout+6 ptsout[3] cell_height

7.4.6.79 vst_rotation

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

7.4.6.80 Bindings für vst_rotation

C: int16_t vst_rotation ( int16_t handle, int16_t angle );
Umsetzung:
int16_t vst_rotation (int16_t handle, int16_t angle)
{
   intin[0] = angle;

   contrl[0] = 13;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 13 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] angle
intout intout[0] Return-Wert

7.4.6.81 vst_scratch

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

7.4.6.82 Bindings für vst_scratch

C: void vst_scratch ( int16_t handle, int16_t mode );
Umsetzung:
void vst_scratch ( int16_t handle, int16_t mode );
{
   intin[0] = mode;

   contrl[0] = 244;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 244 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 1 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] mode

7.4.6.83 vst_setsize

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

7.4.6.84 Bindings für vst_setsize

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:

Adresse Feldelement Belegung
contrl contrl[0] 252 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 2 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] point
intout intout[0] Return-Wert
ptsout ptsout[0] chwd
ptsout+2 ptsout[1] chht
ptsout+4 ptsout[2] cellwd
ptsout+6 ptsout[3] cellht

7.4.6.85 vst_setsize32

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

7.4.6.86 Bindings für vst_setsize32

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:

Adresse Feldelement Belegung
contrl contrl[0] 252 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 2 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0..1] point
intout intout[0..1] Return-Wert
ptsout ptsout[0] chwd
ptsout+2 ptsout[1] chht
ptsout+4 ptsout[2] cellwd
ptsout+6 ptsout[3] cellht

7.4.6.87 vst_skew

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

7.4.6.88 Bindings für vst_skew

C: int16_t vst_skew ( int16_t handle, int16_t skew );
Umsetzung:
int16_t vst_skew (int16_t handle, int16_t skew)
{
   intin[0] = skew;

   contrl[0] = 253;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 253 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] skew
intout intout[0] Return-Wert

7.4.6.89 vst_track_offset

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

7.4.6.90 Bindings für vst_track_offset

C: void vst_track_offset ( int16_t handle, fix31 offset, int16_t pairmode, int16_t *tracks, int16_t *pairs );
Umsetzung:
void vst_track_offset (int16_t handle, fix31 offset,
                       int16_t pairmode, int16_t *tracks,
                       int16_t *pairs)
{
   intin[0] = 255;
   intin[1] = pairmode;
   intin[2..3] = offset;

   contrl[0] = 237;
   contrl[1] = 0;
   contrl[3] = 4;
   contrl[6] = handle;

   vdi ();

   *tracks = intout[0];
   *pairs  = intout[1];
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 237 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 4 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] 255
intin+2 intin[1] pairmode
intin+4 intin[2..3] offset
intout intout[0] tracks
intout+2 intout[1] pairs

7.4.6.91 vst_width

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

7.4.6.92 Bindings für vst_width

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:

Adresse Feldelement Belegung
contrl contrl[0] 231 # Opcode der Funktion
contrl+2 contrl[1] 1 # Einträge in ptsin
contrl+4 contrl[2] 2 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
ptsin ptsin[0] width
ptsout ptsout[0] char_width
ptsout+2 ptsout[1] char_height
ptsout+4 ptsout[2] cell_width
ptsout+6 ptsout[3] cell_height

7.4.6.93 v_topbot

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

7.4.6.94 Bindings für v_topbot

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:

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 1 # Einträge in ptsin
contrl+4 contrl[2] 4 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 18501
contrl+12 contrl[6] handle
ptsin ptsin[0] 0
ptsin+2 ptsin[1] height
ptsout ptsout[0] char_width
ptsout+2 ptsout[1] char_height
ptsout+4 ptsout[2] cell_width
ptsout+6 ptsout[3] cell_height

7.4.6.95 vswr_mode

Name: »Set writing Mode« - bestimmt den Schreibmodus fast aller Grafikfunktionen.
VDI-Nummer: 32
Deklaration: int16_t vswr_mode ( int16_t handle, int16_t mode );
Beschreibung: Die Funktion bestimmt, auf welche Art Quellpixel und Zielpixel verknüpft werden, um die resultierenden Farbwerte zu ermitteln. Es gilt:
Parameter Bedeutung
   
handle Kennung der Workstation
mode Schreibmodus
1 = Replace
2 = Transparent
3 = XOR
4 = Reverse Transparent


Hinweis: Der normale Schreibmodus ist der Replace-Modus. Die Anzahl der verfügbaren Modi kann über die Funktion vq_extnd ermittelt werden; bei Übergabe eines nicht vorhandenen Modus wird der Replace-Modus benutzt.
Ergebnis: Die Funktion liefert den tatsächlich eingestellten Schreibmodus.
Verfügbar: Supported by all devices.
Gruppe: übergeordnete Attribute
Querverweis: Binding   v_pline   v_pmarker   v_gtext   v_fillarea   v_contourfill   vr_recfl   v_bar   v_arc   v_pieslice   v_circle   v_ellarc   v_ellpie   v_ellipse   v_rbox   v_rfbox   v_justified   Beschreibung der VDI-Schreibmodi

7.4.6.96 Bindings für vswr_mode

C: int16_t vswr_mode ( int16_t handle, int16_t mode );
Umsetzung:
int16_t vswr_mode (int16_t handle, int16_t mode)
{
   intin[0] = mode;

   contrl[0] = 32;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 32 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] mode
intout intout[0] Return-Wert

7.4.6.97 vs_bkcolor

Name: »« - 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

7.4.6.98 Bindings für vs_bkcolor

C: void vs_bkcolor ( int16_t handle, int16_t color );
Umsetzung:
void vs_bkcolor (int16_t handle, int16_t color)
{
   intin[0] = color;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 102;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 102
contrl+12 contrl[6] handle
intin intin[0] color

7.4.6.99 vs_color

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

7.4.6.100 Bindings für vs_color

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:

Adresse Feldelement Belegung
contrl contrl[0] 14 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 4 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] index
intin+2 intin[1..3] rgb_in[0..2]

7.4.6.101 vs_color2

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

7.4.6.102 Bindings für vs_color2

C: void vs_color2 ( int16_t handle, int16_t *rgb, int16_t index );
Umsetzung:
void vs_color2 (int16_t handle, int16_t *rgb, int16_t index)
{
   int16_t i;

   for (i=0; i<3; i++)
      intin[i] = *rgb;

   intin[3] = index;

   contrl[0] = 138;
   contrl[1] = 0;
   contrl[3] = 4;
   contrl[5] = opcode;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 138 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 4 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] opcode
contrl+12 contrl[6] handle
intin intin[0..2] rgb
intin+6 intin[3] index

7.4.6.103 vs_grayoverride

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

7.4.6.104 Bindings für vs_grayoverride

C: void vs_grayoverride ( int16_t handle, int16_t grayval );
Umsetzung:
void vs_grayoverride (int16_t handle, int16_t grayval)
{
   intin[0] = grayval;

   contrl[0] = 133;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 133 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+12 contrl[6] handle
intin intin[0] grayval

7.4.6.105 v_ps_halftone

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

7.4.6.106 Bindings für v_ps_halftone

C: void v_ps_halftone( int16_t handle, int16_t index, int16_t angle, int16_t frequency );
Umsetzung:
void v_ps_halftone( int16_t handle, int16_t index,
                    int16_t angle, int16_t frequency )
{
   intin[0] = index;
   intin[1] = angle;
   intin[2] = frequency;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 3;
   contrl[5] = 32;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 3 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 32
contrl+12 contrl[6] handle
intin intin[0] index
intin+2 intin[1] angle
intin+4 intin[2] frequency

7.4.6.107 v_setrgb

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

7.4.6.108 Bindings für v_setrgb

C: void v_setrgb( int16_t handle, int16_t type, int16_t r, int16_t g, int16_t b );
Umsetzung:
void v_setrgb( int16_t handle, int16_t type, int16_t r,
               int16_t g, int16_t b )
{
   intin[0] = r;
   intin[1] = g;
   intin[2] = b;

   contrl[0] = 138;
   contrl[1] = 0;
   contrl[3] = 3;
   contrl[5] = type;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 138 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 3 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] type
contrl+12 contrl[6] handle
intin intin[0] r
intin+2 intin[1] g
intin+4 intin[2] b

7.4.6.109 v_setrgbi

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

7.4.6.110 Bindings für v_setrgbi

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:

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 5 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 18500 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intin intin[0] primtype
intin+2 intin[1] r
intin+4 intin[2] g
intin+6 intin[3] b
intin+8 intin[4] i

HomeVDIVDI-BindingsAusgabefunktionen