•  Back 
  •  Kontrollfunktionen 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
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