Grafik Buffer

Die Level One Engine verwaltet Grafiken in einem Array. Ein Grafik-Index, llgfx_id, wird beim Create und Load dem Aufrufer zurückgegeben. <§t= GrafikBuffer können erst nach Aufruf von llgfx_SetDisplayMode() erzeugt werden. §> Sobald mit llgfx_SetDisplayMode() der Bildschirm Modus gesetzt und initialisiert ist, können Grafikbuffer erzeugt und geblittet werden. SetDisplayMode erzeugt einen DoubleBuffer und legt Standardmässig 4 fixe Buffer in der Größe des Displaymodes an. Buffer Index 0 ..... der Backbuffer. Buffer Index 1 ..... der Frontbuffer. Buffer Index 2 ..... Stretchbuffer 1. Buffer Index 3 ..... Stretchbuffer 2. Siehe llgfx_SetDisplayMode() Die Stretchbuffer werden von der Engine temporär für Zwischen-Blits verwendet. Sie können jederzeit verwendet werden, es sollten nur keine Grafiken dort verbleiben wegen der Gefahr des Überschreibens. Ladet eine Grafik und erstellt dafür einen Grafikbuffer. Der Buffer hat die Breite und Höhe der Grafik und wird auch mit einer Maske versehen falls die Grafik einen Alpha Kanal besitzt. Unterstützte Formate sind für die Beta Version: PNG Zum Konvertieren anderer Formate das Tool verwenden.

Ladevorgang

Bevor eine Grafik vom Filesystem geladen wird, überprüft die Engine ob die Grafik mit dem Filenamen bereits geladen wurde. Wenn der Filenamen mit einer bereits geladenen Grafik übereinstimmt, dann wird die Nummer des bereits vorhandenen Grafikbuffers zurückgegeben. Es wird intern ein Referenz Zähler erhöht damit bei einer Grafikbuffer Freigabe die üpbrigen Referenzen erhalten bleiben. Die Freigabe erfolgt mit .

Parameter 1: Filename

filename = Pfad der zur ladenden Grafik. Filenamen können Verzeichnisnahmen enthalten. Der Suchpfad beginnt immer mit dem Verzeichnis in dem das Exe Programm liegt, auch wenn über einen link gestartet wird.
|   z.B: "/sprite1.png",      Suchpfad -> [exedir]/sprite1.png
|        "sprite1.png",       Suchpfad -> [exedir]/sprite1.png
|        "menu/sprite1.png",  Suchpfad -> [exedir]/menu/sprite1.png
|        "../sprite1.png",    Suchpfad -> [exedir][curdir]/../sprite1.png
	     
[exedir] = Verzeichnis aus dem das Game gestartet wurde
[curdir] = gesetzt mit llfile_SetCurDir(). ist per default leer
Man kann das Game-Root Verzeichnis nicht verlassen. Mit kann man den Suchpfad innerhalb des Root Verzeichnisses verstellen. Siehe dazu Funktionen.

Parameter 2: Optional LLGFX_COLORKEY flag

Ein COLORKEY flag setzt intern die Colorkeyfarbe automatisch auf die Farbe des linken oberen Pixels der Grafik. Ausserdem wird der Colorkey für den nächsten Blit Aufruf eingeschaltet. Diese Flag soll Tipparbeit ersparen. Alternativ kann eine Colorkey wie folgt gesetzt werden:

Returnwert:

Liefert index des Grafikbuffers zurück. Bei Fehler ist der Returnwert 0. Freigabe mit llgfx_ReleaseGfx(). Vermindert internen Referenzzähler. Wird dieser 0, dann wird die Grafik aus dem Speicher gelöscht.

ReleaseGfx per ID

<§t=void llgfx_ReleaseGfx( llgfx_id gfxid );§>

ReleaseGfx per Name

<§t=int llgfx_ReleaseGfx( const char* filename );§> Return Wert ist 0 bei Erfolg (Grafik gefunden). llgfx_DeleteGfx()Um eine Grafik zu entfernen, selbst wenn noch darauf Referenziert wird. <§t=llgfx_ReleaseGfx( llgfx_id gfxid );§> Vermindert internen Referenzzähler. Wird dieser 0, dann wird die Grafik aus dem Speicher gelöscht.

Code Schnipsel