Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - SCREENRES

Referenz-Navigation

 

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

SCREENRES initiiert ein Grafikfenster. Der Befehl entspricht der BefehlsreferenzeintragSCREEN-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 BefehlsreferenzeintragSCREENINFO, 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 BefehlsreferenzeintragPSET, BefehlsreferenzeintragLINE 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 BefehlsreferenzeintragOR miteinander verknüpft werden können.
Binden Sie per Befehlsreferenzeintrag#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 BefehlsreferenzeintragNAMESPACEs '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 BefehlsreferenzeintragINKEY 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 BefehlsreferenzeintragSCREENPTR-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 Befehlsreferenzeintrag-lang qb steht SCREENRES nicht zur Verfügung und kann nur über __SCREENRES aufgerufen werden.

Siehe auch:
BefehlsreferenzeintragSCREEN (Anweisung), BefehlsreferenzeintragSCREENINFO, BefehlsreferenzeintragSCREENLIST, BefehlsreferenzeintragGrafik


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 31.07.2007 von Redakteurnemored angelegt.
  • Die aktuellste Version wurde am 25.06.2013 von Redakteurnemored gespeichert.
  Versionen Versionen