Referenz - SCREENCONTROL
Syntax A: SCREENCONTROL Option, [param1 [, param2 [, param3 [, param4]]]]
Syntax B: SCREENCONTROL Option, caption
Typ: Anweisung
Kategorie: Grafik
SCREENCONTROL ermittelt oder bearbeitet Einstellungen der gfxlib.
- 'Option' ist ein INTEGER-Wert, der festlegt, welche Einstellungen bearbeitet oder ermittelt werden sollen.
- 'param1', 'param2', 'param3' und 'param4' sind Variablen, die entweder die neuen Einstellungen enthalten, wenn solche geändert werden sollen, oder die die abgefragten Einstellungen aufnehmen. Alle param-Variablen sind vom Typ INTEGER.
- 'caption' ist eine STRING-Variable, die ebenso wie die param-Variablen die neue Einstellung enthält oder die aktuelle Einstellung aufnimmt.
Im folgenden werden die für 'Option' einsetzbaren Werte aufgelistet. Bitte beachten Sie, dass die angegebenen Konstanten aus der fbgfx.bi Elemente des NAMESPACEs 'FB' sind. Alle param-Variablen, die hier nicht erwähnt sind, werden mit null ausgefüllt.
In der Regel muss ein Grafik- oder OpenGL-Fenster initialisiert worden sein (siehe SCREENRES), bevor der Befehl sinnvoll eingesetzt werden kann.
Leseoptionen
Wert | Konstante in der fbgfx.bi | Bedeutung |
---|---|---|
0 | GET_WINDOW_POS | Gibt die aktuelle Position des Grafikfensters als Desktopkoordinaten an. 'param1' enthält die X-Koordinate, 'param2' die Y-Koordinate. Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' und 'param2' der Wert 0 zurückgegeben. |
1 | GET_WINDOW_TITLE | Gibt den Titel des Programmfensters in 'caption' zurück. Dies funktioniert auch ohne initialisiertem Grafikscreen, wenn der Titel zuvor mit SCREENCONTROL oder WINDOWTITLE gesetzt wurde. |
2 | GET_WINDOW_HANDLE | Gibt den Handle des aktiven Programmfensters in 'param1' zurück. Der Handle ist eine Zahl, die das Fenster im System identifiziert. Unter Windows ist dieser Wert ein HWND. Unter X11 stellt es eine "Window"-ID dar. Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' der Wert 0 zurückgegeben. |
3 | GET_DESKTOP_SIZE | Gibt die aktuelle Größe des Desktops in Pixeln an. 'param1' enthält die Breite, 'param2' die Höhe des Desktops. Die Aktion funktioniert auch ohne initialisiertem Grafikfenster. |
4 | GET_SCREEN_SIZE | Gibt die aktuelle Größe des Grafikfensters in Pixeln an. 'param1' enthält die Breite, 'param2' die Höhe des Grafikfensters. Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' und 'param2' der Wert 0 zurückgegeben. |
5 | GET_SCREEN_DEPTH | Gibt in 'param1' die aktuelle Farbtiefe des Grafikfensters in Bits pro Pixel zurück. Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' der Wert 0 zurückgegeben. |
6 | GET_SCREEN_BPP | Gibt in 'param1' die aktuelle Farbtiefe des Grafikfensters in Byte pro Pixel zurück. Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' der Wert 0 zurückgegeben. |
7 | GET_SCREEN_PITCH | Gibt in 'param1' die Breite einer Bildschirmzeile in Bytes aus; dieser Wert ist das Produkt aus der Breite in Pixeln und der Farbtiefe in Byte pro Pixel. Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' der Wert 0 zurückgegeben. |
8 | GET_SCREEN_REFRESH | Gibt in 'param1' die Bildwiederholrate in Hertz zurück. Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' der Wert 0 zurückgegeben. |
9 | GET_DRIVER_NAME | Gibt den Namen des aktiven Grafiktreibers in 'caption' zurück. Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'caption' ein Leerstring zurückgegeben. |
10 | GET_TRANSPARENT_COLOR | Gibt in 'param1' die aktuelle Maskenfarbe zurück, die von der aktuellen Farbtiefe abhängig ist. Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' der Wert 0 zurückgegeben. |
11 | GET_VIEWPORT | Gibt die Koordinaten des aktuellen Viewports (der Clipping-Regionen, die durch VIEW (Grafik) gesetzt wurden) zurück. Dabei nehmen 'param1' und 'param2' die X- und Y-Koordinate der linken oberen Ecke und 'param3' und 'param4' die X- und Y-Koordinate der rechten unteren Ecke des Viewports auf. Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in den Parametern der Wert 0 zurückgegeben. |
12 | GET_PEN_POS | Gibt in 'param1' und 'param2' die X- und Y-Koordinate des Grafikcursors in Grafikfensterkoordinaten aus. Diese Koordinaten werden von Grafik-Anweisungen benutzt, die über das STEP-Schlüsselwort relative Koordinaten unterstützen. Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' und 'param2' der Wert 0 zurückgegeben. |
13 | GET_COLOR | Gibt die von COLOR (Anweisung) festgelegten Farben zurück; 'param1' nimmt die Vordergrundfarbe, 'param2' die Hintergrundfarbe auf. Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' und 'param2' der Wert 0 zurückgegeben. |
14 | GET_ALPHA_PRIMITIVES | Gibt in 'param1' den Wert TRUE (-1) zurück, wenn GFX_ALPHA_PRIMITIVES gesetzt wurde (siehe SCREENRES). Ansonsten wird FALSE (0) zurückgegeben. |
15 | GET_GL_EXTENSIONS | Gibt in 'caption' einen String zurück, der alle unterstützten GL-Erweiterungen enthält. Wird kein OpenGL-Modus verwendet, dann wird ein leerer String zurückgegeben. |
16 | GET_HIGH_PRIORITY | Gibt in 'param1' den Wert TRUE (-1) zurück, wenn GFX_HIGH_PRIORITY gesetzt wurde (siehe SCREENRES). Ansonsten wird FALSE (0) zurückgegeben. |
Schreiboptionen
Wert | Konstante in der fbgfx.bi | Bedeutung |
---|---|---|
100 | SET_WINDOW_POS | Legt die Position des Grafikfensters in Desktopkoordinaten fest; 'param1' und 'param2' sind die neue X- und Y-Koordinate des Grafikfensters relativ zum linken oberen Bildschirmrand. |
101 | SET_WINDOW_TITLE | Ändert den Text in der Titelleiste des aktiven Fensters. 'caption' enthält den neuen Titel des Fensters. Diese Aktion hat dieselbe Auswirkung wie WINDOWTITLE caption (siehe WINDOWTITLE). Sie kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde. |
102 | SET_PEN_POS | Bestimmt die Position des Grafikcursors. 'param1' und 'param2' enthalten die neue X- und Y-Koordinate des Grafikcursors. Diese Koordinaten werden von Grafik-Anweisungen benutzt, die über das Schlüsselwort STEP relative Koordinaten unterstützen. |
103 | SET_DRIVER_NAME | Setzt mit 'caption' den aktiven Grafiktreiber. Die Aktion wirkt sich erst auf das nächste initialisierte Grafikfenster aus. |
104 | SET_ALPHA_PRIMITIVES | Bestimmt mit 'param1', ob GFX_ALPHA_PRIMITIVES gesetzt sein soll (-1) oder nicht (0) (siehe SCREENRES). |
105 | SET_GL_COLOR_BITS | Setzt mit 'param1' die Anzahl der notwendigen Bits für den OpenGL color buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde. |
106 | SET_GL_COLOR_RED_BITS | Setzt mit 'param1' die Anzahl der Bits für die Rot-Komponente des OpenGL color buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde. |
107 | SET_GL_COLOR_GREEN_BITS | Setzt die Anzahl der Bits für die Grün-Komponente des OpenGL color buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde. |
108 | SET_GL_COLOR_BLUE_BITS | Setzt mit 'param1' die Anzahl der Bits für die Blau-Komponente des OpenGL color buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde. |
109 | SET_GL_COLOR_ALPHA_BITS | Setzt mit 'param1' die Anzahl der Bits für die Alpha-Komponente des OpenGL color buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde. |
110 | SET_GL_DEPTH_BITS | Setzt mit 'param1' die Anzahl der notwendigen Bits für den OpenGL depth buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde. |
111 | SET_GL_STENCIL_BITS | Setzt mit 'param1' die Anzahl der notwendigen Bits für den OpenGL stencil buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde. |
112 | SET_GL_ACCUM_BITS | Setzt mit 'param1' die Anzahl der notwendigen Bits für den OpenGL accumulation buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde. |
113 | SET_GL_ACCUM_RED_BITS | Setzt mit 'param1' die Anzahl der Bits für die Rot-Komponente des OpenGL accumulation buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde. |
114 | SET_GL_ACCUM_GREEN_BITS | Setzt mit 'param1' die Anzahl der Bits für die Grün-Komponente des OpenGL accumulation buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde. |
115 | SET_GL_ACCUM_BLUE_BITS | Setzt mit 'param1' die Anzahl der Bits für die Blau-Komponente des OpenGL accumulation buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde. |
116 | SET_GL_ACCUM_ALPHA_BITS | Setzt mit 'param1' die Anzahl der Bits für die Alpha-Komponente des OpenGL accumulation buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde. |
117 | SET_GL_NUM_SAMPLES | Setzt mit 'param1' die Anzahl der Samples, die von OpenGL Multisampling genutzt werden sollen. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde. |
Weitere Optionen
Wert | Konstante in der fbgfx.bi | Bedeutung |
---|---|---|
200 | POLL_EVENTS | Alle Ereignisse (Events) wie Tasten- oder Mausbetätigung werden abgefragt. Nützlich in OpenGL-Programmen, wenn FLIP nicht verwendet wird, da die FLIP-Anweisung diese Abfragen veranlasst. |
Beispiel:
Es wird ein transparentes Fenster mit einem Schriftzug erzeugt. Bei einem Mausklick auf den Schriftzug kann das Fenster (samt Inhalt) verschoben werden.
#INCLUDE "fbgfx.bi"
USING FB
DIM AS EVENT e
DIM AS INTEGER x, y, pressed, col
DIM AS ANY PTR img
' Splashscreen (durchsichtiges Fenster) erzeugen
SCREENRES 384, 64, 32,, GFX_SHAPED_WINDOW
img = IMAGECREATE(48, 8)
' graphischen Schriftzug erzeugen
DRAW STRING img, (0, 0), "GfxLib"
FOR y = 0 TO 63
FOR x = 0 TO 383
col = POINT(x \ 8, y \ 8, img)
IF (col <> RGB(255, 0, 255)) THEN
col = RGB((x + y) AND &hFF, (x + y) AND &hFF, _
(x + y) AND &hFF)
END IF
PSET (x, y), col
NEXT x
NEXT y
pressed = 0
DO
IF SCREENEVENT(@e) THEN
SELECT CASE e.type
CASE EVENT_MOUSE_BUTTON_PRESS
' Druck der Maustaste merken
pressed = -1
CASE EVENT_MOUSE_BUTTON_RELEASE
' Loslassen der Maustaste merken
pressed = 0
CASE EVENT_MOUSE_MOVE
IF pressed THEN
' Fenster verschieben
SCREENCONTROL GET_WINDOW_POS, x, y
SCREENCONTROL SET_WINDOW_POS, x + e.dx, y + e.dy
END IF
END SELECT
END IF
SLEEP 5
LOOP WHILE NOT MULTIKEY(1) ' Ende bei Druck der ESC-Taste
Unterschiede zu QB: neu in FreeBASIC
Unterschiede zu früheren Versionen von FreeBASIC:
- Die Option GET_HIGH_PRIORITY existiert seit FreeBASIC v0.18.4
- SCREENCONTROL existiert seit FreeBASIC v0.17
Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb steht SCREENCONTROL nicht zur Verfügung und kann nur über __SCREENCONTROL aufgerufen werden.
Siehe auch:
SCREENRES, SCREENINFO, SCREENEVENT, WINDOWTITLE, VIEW (Grafik), Grafik
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|