Referenz - SCREENPTR
Syntax: SCREENPTR
Typ: Funktion
Kategorie: Grafik
SCREENPTR gibt einen Pointer zurück, der auf den Datenbereich (Video-RAM oder Framebuffer, siehe Hinweis unten) der aktiven Bildschirmseite zeigt, oder null, wenn kein Grafikmodus aktiv ist.
SCREENPTR kann dazu verwendet werden, um zu testen, ob ein SCREENRES-Aufruf erfolgreich war, oder um den Videospeicher direkt zu lesen oder zu beschreiben - vorausgesetzt, die Seite wurde zuvor mit SCREENLOCK gesperrt und wird nach dem Speicherzugriff mit SCREENUNLOCK entsperrt.
Um auf die Pixel im Bildschirmpuffer zuzugreifen, müssen die Bildschirmbreite, -höhe, Bytes pro Pixel und Bytes pro Zeile (Pitch) bekannt sein. Diese Informationen können mithilfe von SCREENINFO ermittelt werden.
Der von SCREENPTR zurückgelieferte Pointer ist nur nach einem erfolgreichen SCREENRES-Aufruf gültig und verliert seine Gültigkeit nach jedem weiteren SCREENRES-Aufruf.
Beispiel:
' Bildschirmmodus 320x200x8bpp setzen
' Keine Angaben zu Bildschirmseiten => nur eine aktive Seite = sichtbare Seite
SCREENRES 320, 200
' In 8bpp Modi brauchen Sie einen BYTE PTR für den Speicherzugriff.
DIM framebuffer AS BYTE PTR
framebuffer = SCREENPTR
' Die aktive Seite muss zuerst gesperrt werden, damit ein Zugriff möglich wird.
SCREENLOCK
' Zeichne einen weißen Pixel an den Koordinaten 160, 100
POKE BYTE, framebuffer + (100 * 320) + 160, 15
' Seite entsperren, damit die Änderungen sichtbar werden
SCREENUNLOCK
SLEEP
Hinweis:
Da FreeBASICs Gfxlib intern immer zwei Seiten vorhält (Double Buffering), zeigt SCREENPTR immer auf die zweite Seite, die im Hintergrund zur Bearbeitung bereitliegt. Die vordere Seite dient nur der Anzeige. Dies hat bei der Verwendung allerdings keine Bedeutung, da FreeBASIC automatisch zwischen diesen zwei Seiten wechselt.
Unterschiede zu QB: neu in FreeBASIC
Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb steht SCREENPTR nicht zur Verfügung und kann nur über __SCREENPTR aufgerufen werden.
Siehe auch:
SCREENRES, SCREENLOCK, Grafik
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|