Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File7.10.24 v_opnbm TOS Name: »Open Bitmap« - öffnet eine Offscreen Bitmap VDI-Nummer: 100 (Unterfunktion 1) Deklaration: void v_opnbm ( int16_t *work_in, MFDB *bitmap, int16_t *handle, int16_t *work_out ); Beschreibung: Die Funktion v_opnbm dient zur Erzeugung von Offscreen-Bitmaps. Man kann ihr entweder die Größe eines Bitmap angeben, die Sie allozieren soll, oder ihr eine Bitmap übergeben. Die Bitmap wird im gleichen Format wie die des Bildschirms verwaltet, wodurch schnelles Kopieren zwischen beiden möglich ist. Parameter Bedeutung handle graf_handle work_in[0..10] Wie bei v_opnwk/v_opnvwk definiert work_in[11] Breite -1 (z.B. 1279) work_in[12] Höhe -1 (z.B. 959) work_in[13] Breite eines Pixels in Mikrometern work_in[14] Höhe eines Pixels in Mikrometern work_in[15..19] Reserviert, sollte 0 enthalten Die Funktion steht ab EdDI-Version 1.00 zur Verfügung. Ab EdDI 1.1 kann v_opnbm mit zusätzlichen Parametern in work_in[15..19] aufgerufen werden. Es wird dann versucht, eine Bitmap in dem durch diese Parameter beschriebenen Format zu öffnen. Sollte für das angegebene Format kein Treiber vorhanden sein, kann die Bitmap nicht erzeugt werden. Es gilt: work_in[15..16] Anzahl der darstellbaren Farben work_in[17] Anzahl der Planes work_in[18] Pixelformat work_in[19] Bitreihenfolge Pixelformat und Bitreihenfolge werden bei vq_scrninfo genauer beschrieben. Mit den folgenden Parametern kann z.B. eine Offscreen-Bitmap mit 256 Farben und Interleaved Planes erzeugt werden: work_in[15..16] = 256; /* 256 Farben */ work_in[17] = 8; /* 8 Farbebenen */ work_in[18] = 0; /* Interleaved Planes */ work_in[19] = 1; /* normale Bitreihenfolge */ Achtung: Der Eintrag work_in[11] sollte bei Addition von 1 ohne Rest durch 16 teilbar sein. Andernfalls rundet der VDI Treiber auf den nächsthöheren ohne Rest teilbaren Wert. Wird für Pixelbreite und -Höhe 0 angegeben, so werden die Werte des Bildschirms benutzt. Nach erfolgreichem Aufruf enthält der Parameter handle die Kennung der erzeugten Bitmap. Hinweis: Die Benutzung von Offscreen-Bitmaps bietet sich auch dann an, wenn man Effekte wie starkes Flackern vermeiden möchte. In diesem Fall baut man Teile der Grafik in der Bitmap auf und überträgt die Bitmap mit vrt_cpyfm oder vro_cpyfm auf den Bildschirm. Ergebnis: Informationen werden über das work_out Array bzw. den Memory-Form-Definiton-Block (MFDB) nach außen gereicht: Parameter Bedeutung work_out[0..1] wie bei v_opnwk/v_opnvwk definiert work_out[2] 0 work_out[3..38] wie bei v_opnwk/v_opnvwk definiert work_out[39] 0 (keine Hardw.-Palette vorh., da Bitmap) work_out[39..56] wie bei v_opnwk/v_opnvwk definiert bitmap Zeiger auf einen MFDB Falls bitmap->fd_addr gleich NULL ist, so wird anhand der Größenangaben in work_in Speicher für die Bitmap angefordert (die Bitmap wird im Gegensatz zu v_opnvwk gelöscht). Um eine Bitmap im gerätespezifischen Format zu öffnen, muß bitmap->fd_nplanes eine Null oder die Ebenenanzahl des Schirms enthalten (work_out[4] bei vq_extnd). Ist bitmap->fd_nplanes 1, wird eine monochrome Bitmap angelegt. Die Einträge des MFDB (fd_addr, fd_w, fd_h, fd_wdwidth, fd_stand, fd_nplanes) werden vom VDI-Treiber gesetzt und an die aufrufende Applikation zurückgegeben. Wenn nicht nicht genügend Speicher vorhanden ist, wird der Inhalt des MFDBs nicht verändert; ein Null-Handle wird zurückgegeben. Wenn bitmap->fd_addr ungleich NULL ist, wird dieser Eintrag als Zeiger auf eine Bitmap interpretiert. Wenn die Bitmap im Standardformat vorliegt, wird sie ins gerätespezifische Format umgewandelt. Liegt sie schon im gerätespezifischen Format vor, so wird sie nicht umgewandelt. Falls die Auflösung der Bitmap (d.h. die Anzahl der Farben und Planes) nicht unterstützt wird, gibt v_opnbm ein Null-Handle zurück. Verfügbar: Die Funktion steht ab EdDI-Version 1.00 zur Verfügung. Ab EdDI 1.1 kann v_opnbm mit zusätzlichen Parametern aufgerufen weren. Gruppe: Kontrollfunktionen Querverweis: Binding NVDI Off-Screen-Bitmaps v_clsbm