Zu Ihrer Unterstützung ist unten das Autodoc für die neue V40-Funktion
WriteChunkyPixels beigefügt. Alle CD32-Entwickler sollten das volle
OS V40 auf ihren Entwicklungsmaschinen haben, sowie V40 Autodocs,
Includes, Libs and fds. Archive der V40-Workbench-Disk, V40-Kickfiles
und V40-Entwicklungsdateien können von unserer nichtöffentlichen
Entwickler-Konferenz bei BIX (US), ADPS (Europa) und CIX (UK) herunter
geladen werden.


graphics.library/WriteChunkyPixels         graphics.library/WriteChunkyPixels

   NAME
    WriteChunkyPixels -- schreibt den Farben-Kennwert (pen number
        value) einer rechteckigen Gruppe von Pixeln, beginnend am mit
        x,y gekennzeichneten Ort und weiterlaufend bis zu einer anderen
        x,y-Position innerhalb eines bestimmten Rastports. (V40)

   SYNOPSIS
    WriteChunkyPixels(rp,xstart,ystart,xstop,ystop,array,bytesperrow)
                      A0 D0     D1     D2    D3    A2     D4

    VOID WriteChunkyPixels(struct  RastPort *, LONG, LONG,
         LONG, LONG, UBYTE *, LONG);

   FUNKTION
        Für jedes Pixel in einem rechteckigen Bereich decodieren der Farb-
        Kennwert-Nummer (pen number) aus einer linearen Anordnung (linear
        array) von Kennwert-Nummern in die Bit-Ebenen, die zur Beschreibung
        eines bestimmten Rastports verwendet werden.

   EINGABEN
    rp     -  Zeiger auf eine RastPort-Strukture
    (xstart,ystart) -  Anfangspunkt im RastPort
    (xstop,ystop)   -  Endpunkt im RastPort
    array  - Zeiger auf ein Array von UBYTEs, von dem die Pixel-Daten
                 zu holen sind.
    bytesperrow - Die Zahl der Bytes pro Reihe im Quell-Array. Sie sollte
                 mindestens so groß sein wie die Zahl der Pixel, die je Linie
                 geschrieben werden.

   RÜCKGABE

   ANMERKUNG
    xstop muss >= xstart sein
    ystop muss >= ystart sein
    Das Quell-Array kann im FAST RAM liegen.

   ===chunky-to-planar Umwandlungs-HW:

   GfxBase->ChunkyToPlanarPtr ist entweder NULL oder ein Zeiger auf
   ein HW-Register, das zur Unterstützung im Prozess der Umwandlung
   aus 8-Bit-Chunky-Pixeldaten in das Bit-Plane-Format der Custom-
   Chips des Amiga zur Bilddarstellung verwendet wird. Wenn NULL
   zurück gegeben wird, ist solche Hardware nicht vorhanden.

   Wenn ein Erweiterungsgerät Hardware zur Verfügung stellt, welche
   kompatibel arbeitet, dann kann es während des Bootens die HW-Adresse
   in diesen Zeiger installieren und das System verwendet sie.

   Dieser Zeiger kann zum direkten Zugang zur Umwandlung Chunky-to-Planar
   verwendet werden, wenn mehr gewünscht wird als die einfache Chunky-
   Pixel-Kopie, die mit WriteChunkyPixels() ausgeführt wird.

   Wenn die Hardware direkt verwendet wird, sollte nur auf sie zugegriffen
   werden, wenn dieser Auftrag (task) den Blitter kontrolliert (über
   OwnBlitter()), denn dies ist der notwendige Ausschluss (locking), um
   die Anwendung dieses Gerätes zu vermitteln.

   Die Hardware kann als Gerät angesehen werden, welches 32 8-Bit-Pixel
   akzeptiert und 8 Langworte an Bitplane-Daten ausgibt.

   Um korrekt zu arbeiten, müssen genau 8 Langworte (die 32 Pixel
   enthalten) Chunky-Daten nach *(GfxBase->ChunkyToPlanarPtr) geschrieben
   werden. Nachdem die Daten geschrieben wurden, können die Bitplane-
   Daten (beginnend mit Ebene (plane) 0) als jeweils ein Langwort zurück
   gelesen werden. Es nicht erforderlich alle 8 Langworte zurück zu
   lesen, wenn die Bitplanes höherer Ordnung nicht benötigt werden.

   Da (zur Zeit) WriteChunkyPixels nicht besonders schnell auf Systemen
   ohne die chunky-to-planar-Hardware ist, können zeitkritische
   Anwendungen (Spiele usw.) ihre eigenen angepassten Umwandlungs-
   Routinen anwenden, wenn GfxBase->ChunkyToPlanarPtr NULL ist und
   andernfalls WriteChunkyPixels() aufrufen.

   Dieser Zeiger ist nur vorhanden in GfxBase in der Version >= 40 der
   graphics.library, deshalb sollte das geprüft werden, ehe der Zeiger
   gelesen wird.

   BUGS
        Nicht besonders schnell auf Systemen ohne Hardware zur
        Chunky-to-Planar-Umwandlung.

   SIEHE AUCH
    WritePixel()  graphics/rastport.h

Nähste Seite
Vorige Seite