SCREENRES

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » S » SCREENRES

Syntax: SCREENRES (Breite, Höhe[, [Farbtiefe][, [Seitenzahl][, [Flags][, Bildwiederholrate]]]])
Typ: Funktion
Kategorie: Grafik

SCREENRES initiiert ein Grafikfenster. Der Befehl entspricht der SCREEN-Anweisung aus Version 0.10. Die Syntax ist ähnlich dem jetzigen SCREEN-Befehl, jedoch ist es möglich, eine benutzerdefinierte Bildschirmauflösung anzugeben.

VORSICHT: Geben Sie keine Auflösung an, welche die aktuelle Bildschirmgröße übersteigt!
Benutzen Sie im Zweifelsfall vorher SCREENINFO, um die aktuelle Auflösung zu ermitteln.

Hinweis: Falls Sie Alphatransparenz nutzen möchten, muss als 'Farbtiefe' mindestens 24-Bit angegeben werden. Des Weiteren muss als 'Flags' der Wert &h40 gesetzt werden oder mit eingebundener fbgfx.bi die Konstante GFX_ALPHA_PRIMITIVES, damit Drawing Primitives wie PSET, LINE etc. die Alphatransparenz verarbeiten (siehe dazu auch die folgende Beschreibung zu 'Flags').

Bedeutung des Parameters 'Flags'
'Flags' ist einer von folgenden Werten, die durch ein logisches OR miteinander verknüpft werden können.
Binden Sie per #INCLUDE die Datei fbgfx.bi ein, um die Bezeichner in der Spalte 'Symbol' verwenden zu können! Bitte beachten Sie, dass die genannten Konstanten Elemente des NAMESPACEs 'FB' sind.

WertSymbolWirkung
&h00GFX_WINDOWEDNormaler Fenstermodus
Standard-Option
&h01GFX_FULLSCREENVollbildmodus
&h02GFX_OPENGLOpenGL-Modus
&h04GFX_NO_SWITCHkein Moduswechsel
&h08GFX_NO_FRAMEkein Rahmen
&h10GFX_SHAPED_WINDOWSplashscreen-Modus
&h20GFX_ALWAYS_ON_TOPFenster, das immer auf oberster Ebene bleibt
&h40GFX_ALPHA_PRIMITIVESBearbeite auch ALPHA-Werte bei Drawing Primitives wie PSET, LINE, etc.
&h80GFX_HIGH_PRIORITYHöhere Priorität für Grafikprozesse, nur unter Win32
&h10000GFX_STENCIL_BUFFERStencil Buffer (Schablonenpuffer) verwenden (nur im OpenGL-Modus)
&h20000GFX_ACCUMULATION_BUFFERAccumulation Buffer (nur im OpenGL-Modus)
&h40000GFX_MULTISAMPLEBewirkt im Vollbildmodus Antialiasing durch die ARB_multisample-Erweiterung
-1GFX_NULLGrafikmodus ohne visuelles Feedback

Wenn ein Bildschirmmodus einmal eingestellt wurde, können Sie ihn jederzeit durch Drücken von [ALT]+[ENTER] zwischen Vollbild- und Fenstermodus umschalten, vorausgesetzt, das System unterstützt dies und das Umschalten wurde nicht durch Verwendung des Moduswechsel-Flags unterbunden.

Anders als im Konsole-Modus wird ein Programm beim Klick auf den Schließen-Button nicht beendet; stattdessen wird ein CHR(255, 107) in den Tastaturpuffer geschrieben, der mit INKEY abgerufen werden kann. Diese Kombination entspricht [ALT]+[F4]. Ein Klick auf den Maximieren-Button hingegen wird automatisch in den Vollbildmodus wechseln, wenn dieser verfügbar ist.

FreeBASIC wird versuchen, den Bildschirmmodus so gut wie möglich zu initialisieren; wenn alle Versuche fehlschlagen, hat SCREENRES keine Auswirkungen. Die Ausführung des Programms wird mit der Zeile nach der SCREENRES-Anweisung fortgesetzt. Sie sollten daher nachprüfen, ob der Bildschirmmodus erfolgreich initialisiert wurde; dies können Sie mit der SCREENPTR-Funktion tun.

Beispiel 1: ein 320x240 Pixel großes Grafikfenster öffnen und prüfen, ob der Aufruf erfolgreich war

SCREENRES 320, 240, 16
IF SCREENPTR = 0 THEN
  PRINT "Bildschirmmodus nicht initialisiert!"
  SLEEP
  END
END IF
'...
SLEEP

Beispiel 2: ein 200x200 Pixel großes Grafikfenster im Splashscreen-Modus, immer im Vordergrund
Ob das Fenster korrekt initialisiert werden konnte, wird mithilfe des Rückgabewertes geprüft.

#INCLUDE "fbgfx.bi"
IF SCREENRES(200, 200, 32,, FB.GFX_SHAPED_WINDOW or FB.GFX_ALWAYS_ON_TOP) THEN
  PRINT "Fehler: Grafikfenster konnte nicht initialisiert werden!"
  SLEEP
  END
END IF
CIRCLE (100, 100), 50, RGB(255, 0, 255),,,, F

DO
  SLEEP 1
LOOP UNTIL LEN(INKEY)

Weitere Auswirkungen von SCREENRES:
Ein erfolgreicher SCREENRES-Aufruf setzt ...

Unterschiede zu QB: neu in FreeBASIC

Unterschiede zu früheren Versionen von FreeBASIC:
Seit FreeBASIC v0.90.0 lässt sich SCREENRES als Funktion mit Rückgabewert aufrufen.
Einige Bildschirmflags existierten in früheren Versionen nicht oder hatten eine andere Bedeutung:

Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb steht SCREENRES nicht zur Verfügung und kann nur über __SCREENRES aufgerufen werden.

Siehe auch:
SCREEN (Anweisung), SCREENINFO, SCREENLIST, Grafik