HomeVDIEscapefunktionenKontrollfunktionen

7.9 Farbtabellenfunktionen

v_color2nearest Ähnlichsten Farbwert suchen
v_color2value Farbwert in Pixelwert wandeln
v_create_ctab Farbtabelle erzeugen
v_create_itab Referenz auf inverse Farbtabelle erzeugen
v_ctab_idx2value Pixelwert zurückliefern
v_ctab_idx2vdi Farbtabellenindex in VDI-Index wandeln
v_ctab_vdi2idx VDI-Index in Farbtabellenindex wandeln
v_delete_ctab Farbtabelle löschen
v_delete_itab Referenz auf inverse Farbtabelle löschen
v_get_ctab_id eindeutige Kennung für neue Farbtabelle liefern
v_value2color Pixelwert in Farbwert wandeln
vq_ctab Farbtabelle erfragen
vq_ctab_entry Farbeintrag erfragen
vq_ctab_id Kennung der Farbtabelle erfragen
vq_dflt_ctab Systemfarbtabelle zurückliefern
vq_px_format Eingestellte Pixelformat und Farbraum ermitteln
vs_ctab Setzen einer Farbtabelle
vs_ctab_entry Farbwert in der Farbtabelle setzen
vs_dflt_ctab Systemfarbtabelle setzen

Querverweis: Workstations des VDI   Style-Guidelines

7.9.1 v_color2nearest

Name: »Inquire Nearest Color Entry«
VDI-Nummer: 204 (Unterfunktion 2)
Deklaration: int32_t v_color2nearest( int16_t handle, int32_t color_space, COLOR_ENTRY *color, COLOR_ENTRY *nearest_color );
Beschreibung: Diese Funktion liefert den ähnlichsten Farbwert für den gewünschten COLOR_ENTRY zurück.
Parameter Bedeutung
   
handle Kennung der Workstation
color_space Farbraum (z.Zt.nur 0 für eingestellten Farbraum oder CSPACE_RGB)
color COLOR_ENTRY der Farbe
nearest_color COLOR_ENTRY der Farbe
Ergebnis: Die Funktion liefert den Farbwert und den Farbraum der ähnlichsten Farbe zurück.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.2 Bindings für v_color2nearest

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

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

   vdi ();

   nearest_color = intout[2..5];

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

Adresse Feldelement Belegung
contrl contrl[0] 204 # 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] 6 # Einträge in intout
contrl+10 contrl[5] 2 # Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..1] color_space
intin+4 intin[2..5] color
intout intout[0..1] Rückgabewert
intout+4 intout[2..5] nearest_color

7.9.3 v_color2value

Name: »Translate Color Entry To Pixel Value«
VDI-Nummer: 204 (Unterfunktion 0)
Deklaration: uint32_t v_color2value( int16_t handle, int32_t color_space, COLOR_ENTRY *color );
Beschreibung: Diese Funktion liefert für einen Farbwert den Pixelwert zurück.
Parameter Bedeutung
   
handle Kennung der Workstation
color_space Farbraum (z.Zt.nur 0 für eingestellten Farbraum oder CSPACE_RGB)
color COLOR_ENTRY der Farbe
Ergebnis: Der Pixelwert
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.4 Bindings für v_color2value

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

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

   vdi ();

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

Adresse Feldelement Belegung
contrl contrl[0] 204 # 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] 2 # Einträge in intout
contrl+10 contrl[5] 0 # Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..1] color_space
intin+4 intin[2..5] color
intout intout[0..1] Rückgabewert

7.9.5 v_create_ctab

Name: »Create Color Table« - Farbtabelle erzeugen
VDI-Nummer: 206 (Unterfunktion 8)
Deklaration: COLOR_TAB *v_create_ctab( int16_t handle, int32_t color_space, uint32_t px_format );
Beschreibung: Diese Funktion legt eine Farbtabelle im Farbraum color_space für eine Bitmap mit px_format & PX_BITS Bits an. Die Farbtabelle ist mit den Standardfarben für diese Bittiefe initialisiert. Die Applikation kann die Farbtabelle beschreiben und die Farbeinträge ändern. Wenn die Farben geändert werden muß aber über v_get_ctab_id eine neue Kennung angefordert werden und im Strukturelement eingetragen werden. Andernfalls würde mit Fehlfarben ausgegeben werden.

Die Farbtabelle kann nach Gebrauch mit v_delete_ctab freigegeben werden.
Parameter Bedeutung
   
handle Kennung der Workstation
color_space Farbraum (z.Zt.nur 0 für eingestellten Farbraum oder CSPACE_RGB)
px_format Pixelformat (nur die unteren 8 Bit werden ausgewertet, d.h. Bits pro Pixel)
Ergebnis: Die Funktion liefert den Zeiger auf die Farbtabelle zurück.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.6 Bindings für v_create_ctab

C: COLOR_TAB *v_create_ctab( int16_t handle, int32_t color_space, uint32_t px_format );
Umsetzung:
COLOR_TAB *v_create_ctab( int16_t handle, int32_t color_space,
                          uint32_t px_format )
{
   intin[0..1] = color_space;
   intin[2..3] = px_format;

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

   vdi ();

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

Adresse Feldelement Belegung
contrl contrl[0] 206 # 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+10 contrl[5] 8 # Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..1] color_space
intin+4 intin[2..3] px_format
intout intout[0..1] Rückgabewert

7.9.7 v_create_itab

Name: »Create Inverse Color Table Reference« - Referenz auf inverse Farbtabelle erzeugen
VDI-Nummer: 208 (Unterfunktion 0)
Deklaration: ITAB_REF v_create_itab( int16_t handle, COLOR_TAB *ctab, int16_t bits );
Beschreibung: Diese Funktion legt eine inverse Farbtabelle der übergebenen Farbtabelle an und liefert eine Referenz darauf zurück. Programme müssen diese Funktion nur dann aufrufen, wenn sie Bitmaps, die Ziel einer vr_transfer_bits-Operation sind, selber verwalten (wenn die Offscreen-Bitmap vom VDI erzeugt wird, d.h durch v_opnbm oder v_open_bm, erledigt das VDI das automatisch). Siehe auch Beschreibung von vr_transfer_bits.
Parameter Bedeutung
   
handle Kennung der Workstation
ctab Zeiger auf Farbtabelle
bits bevorzugte Auflösung der inversen Farbtabelle (3-5)
Ergebnis: Die Funktion liefert die Referenz auf eine inverse Farbtabelle zurück.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.8 Bindings für v_create_itab

C: ITAB_REF v_create_itab( int16_t handle, COLOR_TAB *ctab, int16_t bits );
Umsetzung:
ITAB_REF v_create_itab( int16_t handle, COLOR_TAB *ctab,
                        int16_t bits )
{
   intin[0..1] = ctab;
   intin[2] = bits;
   intin[3] = 0;
   intin[4] = 0;

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

   vdi ();

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

Adresse Feldelement Belegung
contrl contrl[0] 208 # 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] 2 # Einträge in intout
contrl+10 contrl[5] 0 # Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..1] ctab
intin+4 intin[2] bits
intin+6 intin[3] 0
intin+8 intin[4] 0
intout intout[0..1] Rückgabewert

7.9.9 v_ctab_idx2value

Name: »Inquire Color Table Value« - Pixelwert zurückliefern
VDI-Nummer: 206 (Unterfunktion 5)
Deklaration: uint32_t v_ctab_idx2value( int16_t handle, int16_t index );
Beschreibung: Diese Funktion liefert für einen Eintrag in der Farbtabelle den Pixelwert zurück. Wenn der übergebene index größer als die Anzahl der Farbstifte ist, wird der Pixelwert der Farbe Schwarz zurückgeliefert.
Parameter Bedeutung
   
handle Kennung der Workstation
index Farbtabellenindex
Ergebnis: Die Funktion liefert den Pixelwert zurück.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.10 Bindings für v_ctab_idx2value

C: uint32_t v_ctab_idx2value( int16_t handle, int16_t index );
Umsetzung:
uint32_t v_ctab_idx2value( int16_t handle, int16_t index )
{
   intin[0] = index;

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

   vdi ();

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

Adresse Feldelement Belegung
contrl contrl[0] 206 # 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] 2 # Einträge in intout
contrl+10 contrl[5] 5 # Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] index
intout intout[0..1] Rückgabewert

7.9.11 v_ctab_idx2vdi

Name: »Translate Color Table Index To Vdi Color Index« - Farbtabellenindex in VDI-Index wandeln
VDI-Nummer: 206 (Unterfunktion 3)
Deklaration: int16_t v_ctab_idx2vdi( int16_t handle, int16_t index );
Beschreibung: Diese Funktion konvertiert den Farbtabellenindex in einen VDI-Farbindex.
Parameter Bedeutung
   
handle Kennung der Workstation
index Index für die Farbtabelle


Für Auflösungen bis zu 256 Farben ist index der Index für den COLOR_ENTRY in der aktuellen Farbtabelle und gleichzeitig auch der tatsächliche Pixelwert, der in der Bitmap eingetragen wird. Bei Grafikformaten mit mehr als 256 Farben bezeichnet index weiterhin den Eintrag in der Farbtabelle; der Pixelwert wird aber vom VDI als direkter RGB-Wert in der Bitmap ausgegeben.
Ergebnis: Die Funktion liefert alter VDI-Farbindex für vsl_color oder ähnliche Funktionen
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.12 Bindings für v_ctab_idx2vdi

C: int16_t v_ctab_idx2vdi( int16_t handle, int16_t index );
Umsetzung:
int16_t v_ctab_idx2vdi( int16_t handle, int16_t index )
{
   intin[0] = index;

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

   vdi ();

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

Adresse Feldelement Belegung
contrl contrl[0] 206 # 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+10 contrl[5] 3 # Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] index
intout intout[0] Rückgabewert

7.9.13 v_ctab_vdi2idx

Name: »Translate Vdi Color Index To Color Table Index« - VDI-Index in Farbtabellenindex wandeln
VDI-Nummer: 206 (Unterfunktion 4)
Deklaration: int16_t v_ctab_idx2vdi( int16_t handle, int16_t vdi_index );
Beschreibung: Diese Funktion konvertiert den VDI-Farbindex in einen Farbtabellenindex.
Parameter Bedeutung
   
handle Kennung der Workstation
vdi_index Index für die Farbtabelle


Für Auflösungen bis zu 256 Farben ist index der Index für den COLOR_ENTRY in der aktuellen Farbtabelle und gleichzeitig auch der tatsächliche Pixelwert, der in der Bitmap eingetragen wird. Bei Grafikformaten mit mehr als 256 Farben bezeichnet index weiterhin den Eintrag in der Farbtabelle; der Pixelwert wird aber vom VDI als direkter RGB-Wert in der Bitmap ausgegeben.
Ergebnis: Die Funktion liefert den Index für die Farbtabelle zurück.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.14 Bindings für v_ctab_vdi2idx

C: int16_t v_ctab_idx2vdi( int16_t handle, int16_t vdi_index );
Umsetzung:
int16_t v_ctab_idx2vdi( int16_t handle, int16_t vdi_index )
{
   intin[0] = vdi_index;

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

   vdi ();

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

Adresse Feldelement Belegung
contrl contrl[0] 206 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+10 contrl[5] 4
contrl+12 contrl[6] handle
intin intin[0] vdi_index
intout intout[0] Rückgabewert

7.9.15 v_delete_ctab

Name: »Delete Color Table« - Farbtabelle löschen
VDI-Nummer: 206 (Unterfunktion 9)
Deklaration: int16_t v_delete_ctab( int16_t handle, COLOR_TAB *ctab );
Beschreibung: Diese Funktion gibt eine mit v_create_ctab erzeugte Farbtabelle wieder frei.
Parameter Bedeutung
   
handle Kennung der Workstation
ctab Zeiger auf Farbtabelle
Ergebnis: 0: Fehler
1: alles in Ordnung
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding   v_create_ctab

7.9.16 Bindings für v_delete_ctab

C: int16_t v_delete_ctab( int16_t handle, COLOR_TAB *ctab );
Umsetzung:
int16_t v_delete_ctab( int16_t handle, COLOR_TAB *ctab )
{
   intin[0..1] = ctab;

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

   vdi ();

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

Adresse Feldelement Belegung
contrl contrl[0] 206 # 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+10 contrl[5] 9 # Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..1] ctab
intout intout[0] Rückgabewert

7.9.17 v_delete_itab

Name: »Delete Inverse Color Table Reference« - Referenz auf inverse Farbtabelle löschen
VDI-Nummer: 208 (Unterfunktion 1)
Deklaration: int16_t v_delete_itab( int16_t handle, ITAB_REF *itab );
Beschreibung: Diese Funktion gibt den Speicher für eine inverse Farbtabelle frei.
Parameter Bedeutung
   
handle Kennung der Workstation
itab Referenz auf inverse Farbtabelle
Ergebnis: 0: Fehler
1: alles in Ordnung
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.18 Bindings für v_delete_itab

C: int16_t v_delete_itab( int16_t handle, ITAB_REF *itab );
Umsetzung:
int16_t  v_delete_itab( int16_t handle, ITAB_REF *itab )
{
   intin[0..1] = itab;

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

   vdi ();

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

Adresse Feldelement Belegung
contrl contrl[0] 208 # 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] 2 # Einträge in intout
contrl+10 contrl[5] 1 # Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..1] itab
intout intout[0] Rückgabewert

7.9.19 v_get_ctab_id

Name: »Get Unique Color Table Id« - eindeutige Kennung für neue Farbtabelle liefern
VDI-Nummer: 206 (Unterfunktion 6)
Deklaration: int32_t v_get_ctab_id( int16_t handle );
Beschreibung: Wenn ein Programm eine eigene Farbtabelle aufbaut, muß vom VDI eine eindeutige Kennung angefordert werden, damit unterschiedliche Tabellen auch unterschiedliche Kennungen haben.GET UNIQUE COLOR TABLE ID; liefert für diesen Fall eine Kennung zurück.
Parameter Bedeutung
   
handle Kennung der Workstation
Ergebnis: Die Funktion liefert ein eindeutige Kennung für eine neue Farbtabelle zurück.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.20 Bindings für v_get_ctab_id

C: int32_t v_get_ctab_id( int16_t handle );
Umsetzung:
int32_t v_get_ctab_id( int16_t handle )
{
   contrl[0] = 206
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 6;
   contrl[6] = handle;

   vdi ();

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

Adresse Feldelement Belegung
contrl contrl[0] 206 # 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] 0 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 6 # Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0..1] Rückgabewert

7.9.21 v_value2color

Name: »Translate Pixel Value To Color Entry«
VDI-Nummer: 204 (Unterfunktion 1)
Deklaration: int32_t v_value2color( int16_t handle, uint32_t value, COLOR_ENTRY *color );
Beschreibung: Diese Funktion liefert die Farbe eines Pixelwertes zurück.
Parameter Bedeutung
   
handle Kennung der Workstation
value Pixelwert
color COLOR_ENTRY der Farbe
Ergebnis: Die Funktion liefert den Farbwert und den eingestellten Farbraum zurück.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.22 Bindings für v_value2color

C: int32_t v_value2color( int16_t handle, uint32_t value, COLOR_ENTRY *color );
Umsetzung:
int32_t v_value2color( int16_t handle, uint32_t value,
                       COLOR_ENTRY *color )
{
   intin[0..1] = value;

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

   vdi ();

   color = intout[2..5];

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

Adresse Feldelement Belegung
contrl contrl[0] 204 # 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] 6 # Einträge in intout
contrl+10 contrl[5] 1 # Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..1] value
intout intout[0..1] Rückgabewert
intout+4 intout[2..5] color

7.9.23 vq_ctab

Name: »Inquire Current Color Table« - Farbtabelle erfragen
VDI-Nummer: 206 (Unterfunktion 0)
Deklaration: int16_t vq_ctab( int16_t handle, int32_t ctab_length, COLOR_TAB *ctab );
Beschreibung: Diese Funktion kopiert die aktuelle Farbtabelle, die das VDI unter dem übergebenen handle verwaltet, in den Bereich auf den ctab zeigt. Sollte die Farbtabelle länger als ctab_length sein, wird kein Wert in intout zurückgeliefert, contrl[4] ist dann 0. Eine Farbtabelle enthält maximal 256 Einträge (da das VDI maximal 256 Farbstifte unterstützt können es nicht mehr sein) und daher ergibt sich die Maximallänge aus der Größe des Header plus 256 * sizeof( COLOR_ENTRY ).
Parameter Bedeutung
   
handle Kennung der Workstation
ctab_length Länge des Speicherbereichs, auf den ctab zeigt.
ctab Farbtabellen
Ergebnis: Die Funktion liefert 0 oder 1 für Fehler oder alles in Ordnug.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.24 Bindings für vq_ctab

C: int16_t vq_ctab( int16_t handle, int32_t ctab_length, COLOR_TAB *ctab );
Umsetzung:
int16_t vq_ctab( int16_t handle, int32_t ctab_length,
                 COLOR_TAB *ctab )
{
   intin[0..1] = ctab_length;

         intout zeigt auf ctab

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

   vdi ();

   if ( contrl[4] )
     return( 1 );                   /* alles in Ordnung */
   else
     return( 0 );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 206 # 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] n # Einträge in intout
contrl+10 contrl[5] 0 # Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..1] ctab_length
intout intout[0..n] ctab

7.9.25 vq_ctab_entry

Name: »Inquire Color Table Entry« - Farbteintrag erfragen
VDI-Nummer: 206 (Unterfunktion 1)
Deklaration: int32_t vq_ctab_entry( int16_t handle, int16_t index, COLOR_ENTRY *color );
Beschreibung: Diese Funktion liefert den Farbraum und die Farbe eines Farbtabelleneintrags zurück.
Parameter Bedeutung
   
handle Kennung der Workstation
index Farbtabellenindex
color Farbeintrag
Ergebnis: Die Funktion liefert Farbraum zurück.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.26 Bindings für vq_ctab_entry

C: int32_t vq_ctab_entry( int16_t handle, int16_t index, COLOR_ENTRY *color );
Umsetzung:
int32_t vq_ctab_entry( int16_t handle, int16_t index,
                       COLOR_ENTRY *color )
{
   intin[0] = index;

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

   vdi ();

   color = intout[2..5];

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

Adresse Feldelement Belegung
contrl contrl[0] 206 # 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] 6 # Einträge in intout
contrl+10 contrl[5] 1 # Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] index
intout intout[0..1] Returnwert
intout+4 intout[2..5] color

7.9.27 vq_ctab_id

Name: »Inquire Current Color Table Id« - Kennung der Farbtabelle erfragen
VDI-Nummer: 206 (Unterfunktion 2)
Deklaration: int32_t vq_ctab_id( int16_t handle );
Beschreibung: Diese Funktion liefert die Kennung der aktuellen Farbtabelle für handle zurück. Ein Programm kann anhand dieser Kennung feststellen, ob die Farbtabelle des Gerätes, das es benutzt, verändert worden ist.
Parameter Bedeutung
   
handle Kennung der Workstation
Ergebnis: Die Funktion liefert die Kennung der aktuellen Farbtabelle zurück.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.28 Bindings für vq_ctab_id

C: int32_t vq_ctab_id( int16_t handle );
Umsetzung:
int32_t vq_ctab_id( int16_t handle )
{
   contrl[0] = 206;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 2;
   contrl[6] = handle;

   vdi ();

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

Adresse Feldelement Belegung
contrl contrl[0] 206 # 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] 0 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 2 # Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0..1] Returnwert

7.9.29 vq_dflt_ctab

Name: »Inquire Default Color Table« - Systemfarbtabelle zurückliefern
VDI-Nummer: 206 (Unterfunktion 7)
Deklaration: int16_t vq_dflt_ctab( int16_t handle, int32_t ctab_length, COLOR_TAB *ctab );
Beschreibung: Diese Funktion kopiert die bevorzugte Systemfarbtabelle für die eingestellte Farbanzahl in den Bereich auf den ctab; zeigt. Sollte die Farbtabelle länger als ctab_length sein, wird kein Wert in intout zurückgeliefert, contrl[4] ist dann 0. Eine Farbtabelle enthält maximal 256 Einträge (da das VDI maximal 256 Farbstifte untersützt können es nicht mehr sein) und daher ergibt sich die Maximallänge aus der Größe des Header plus 256 * sizeof( COLOR_ENTRY ).
Parameter Bedeutung
   
handle Kennung der Workstation
ctab_length Länge des Speicherbereichs, auf den ctab zeigt
ctab Speicherbreich in den die Farbtabelle kopiert wird.
Ergebnis: Die Funktion liefert 0 oder 1 für Fehler oder alles in Ordnug.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.30 Bindings für vq_dflt_ctab

C: int16_t vq_dflt_ctab( int16_t handle, int32_t ctab_length, COLOR_TAB *ctab );
Umsetzung:
int16_t vq_dflt_ctab( int16_t handle, int32_t ctab_length,
                      COLOR_TAB *ctab )
{
   intin[0..1] = ctab_length;

   intout zeigt auf ctab

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

   vdi ();

   if ( contrl[4] )
     return( 1 );                   /* alles in Ordnung */
   else
     return( 0 );
}
GEM-Arrays:

Adresse Feldelement Belegung
contrl contrl[0] 206 # 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] n # Einträge in intout
contrl+10 contrl[5] 7 # Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] ctab_length
intout intout[0..n] ctab

7.9.31 vq_px_format

Name: »Inquire pixel format and colour space«
VDI-Nummer: 204 (Unterfunktion 3)
Deklaration: int32_t vq_px_format( int16_t handle, uint32_t *px_format );
Beschreibung: Diese Funktion liefert das eingestellte Pixelformat und den eingestellten Farbraum zurück.
Parameter Bedeutung
   
handle Kennung der Workstation
px_format Enthält nach dem Aufruf das eingestellte Pixelformat.
Ergebnis: Die Funktion liefert den Farbraum.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.32 Bindings für vq_px_format

C: int32_t vq_px_format( int16_t handle, uint32_t *px_format );
Umsetzung:
int32_t  vq_px_format( int16_t handle, uint32_t *px_format )
{
   contrl[0] = 204;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 3;
   contrl[6] = handle;

   vdi ();

   px_format = intout[2..3];

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

Adresse Feldelement Belegung
contrl contrl[0] 204 # 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] 0 # Einträge in intin
contrl+8 contrl[4] 4 # Einträge in intout
contrl+10 contrl[5] 3 # Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0..1] Rückgabewert
intout+4 intout[2..3] px_format

7.9.33 vs_ctab

Name: »Set Color Table«
VDI-Nummer: 205 (Unterfunktion 0)
Deklaration: int16_t vs_ctab( int16_t handle, COLOR_TAB *ctab );
Beschreibung: Die Funktion kopiert die Farbtabelle, setzt bei vorhandener CLUT die Farben in der Hardware und liefert die Anzahl der gesetzten Farbeinträge zurück. Wenn irgendwie möglich, sollten Programme die Farben des Bildschirms nicht verändern!
Parameter Bedeutung
   
handle Kennung der Workstation
ctab Farbtabelle
Ergebnis: Die Funktion liefert die Anzahl der gesetzten Einträge zurück.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.34 Bindings für vs_ctab

C: int16_t vs_ctab( int16_t handle, COLOR_TAB *ctab );
Umsetzung:
int16_t vs_ctab( int16_t handle, COLOR_TAB *ctab )
{
   contrl[0] = 205;
   contrl[1] = 0;
   contrl[3] = ctab->length / 2;  /* Länge der Farbtabelle / 2 */
   contrl[5] = 0;
   contrl[6] = handle;

   intin zeigt auf ctab

   vdi ();

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

Adresse Feldelement Belegung
contrl contrl[0] 205 # 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] 1 # Einträge in intout
contrl+10 contrl[5] 0 # Sub-Opcode
contrl+12 contrl[6] handle
intin intin durch ctab ersetzen
intout intout[0] Rückgabewert

7.9.35 vs_ctab_entry

Name: »Set Color Table Entry«
VDI-Nummer: 205 (Unterfunktion 1)
Deklaration: int16_t vs_ctab_entry( int16_t handle, int16_t index, int32_t color_space, COLOR_ENTRY *color );
Beschreibung: Diese Funktion setzt einen Farbwert in der Farbtabelle, d.h. bei Modi mit bis zu 256 Farben wird ein CLUT-Eintrag verändert. Wenn irgendwie möglich, sollten Programme die Farben des Bildschirms nicht verändern!
Parameter Bedeutung
   
handle Kennung der Workstation
index Farbtabellenindex
color_space Farbtabellenindex
color Farbtabellenindex
Ergebnis: Die Funktion liefert die Anzahl der gesetzten Einträge zurück.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.36 Bindings für vs_ctab_entry

C: int16_t vs_ctab_entry( int16_t handle, int16_t index, int32_t color_space, COLOR_ENTRY *color );
Umsetzung:
int16_t vs_ctab_entry( int16_t handle, int16_t index,
                       int32_t color_space, COLOR_ENTRY *color )
{
   intin[0] = index;
   intin[1..2] = color_space;
   intin[3..6] = color;


   contrl[0] = 205;
   contrl[1] = 0;
   contrl[3] = 7;
   contrl[5] = 1;
   contrl[6] = handle;

   vdi ();

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

Adresse Feldelement Belegung
contrl contrl[0] 205 # 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] 7 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 1 # Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] index
intin+2 intin[1..2] color_space
intin+6 intin[3..6] color
intout intout[0] Rückgabewert

7.9.37 vs_dflt_ctab

Name: »Set Default Color Table« - Systemfarbtabelle setzen
VDI-Nummer: 205 (Unterfunktion 2)
Deklaration: int16_t vs_dflt_ctab( int16_t handle );
Beschreibung: Die Funktion stellt die Systemfarbtabelle für die aktuelle Bittiefe ein.
Parameter Bedeutung
   
handle Kennung der Workstation
Ergebnis: Die Funktion liefert die Anzahl der gesetzten Einträge zurück.
Verfügbar: ab NVDI 5.00
Gruppe: Farbtabellenfunktionen
Querverweis: Binding

7.9.38 Bindings für vs_dflt_ctab

C: int16_t vs_dflt_ctab( int16_t handle );
Umsetzung:
int16_t vs_dflt_ctab( int16_t handle )
{
   contrl[0] = 205;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 2;
   contrl[6] = handle;

   vdi ();

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

Adresse Feldelement Belegung
contrl contrl[0] 205 # 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] 0 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 2 # Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0] Rückgabewert

HomeVDIEscapefunktionenKontrollfunktionen