mirror of
https://github.com/QB64Official/qb64.git
synced 2024-07-16 22:25:14 +00:00
139 lines
3.9 KiB
Markdown
139 lines
3.9 KiB
Markdown
|
The [_FULLSCREEN](_FULLSCREEN) statement attempts to make the program window fullscreen.
|
||
|
|
||
|
## Syntax
|
||
|
|
||
|
> [_FULLSCREEN](_FULLSCREEN) [*_STRETCH | _SQUAREPIXELS| _OFF*][, *_SMOOTH*]
|
||
|
|
||
|
## Parameter(s)
|
||
|
|
||
|
* _STRETCH default first choice attempts to mimic QBasic's full screens if possible. [_FULLSCREEN (function)](_FULLSCREEN-(function)) returns 1.
|
||
|
* _SQUAREPIXELS alternate choice enlarges the pixels into squares on some monitors. [_FULLSCREEN (function)](_FULLSCREEN-(function)) returns 2
|
||
|
* _OFF turns _FULLSCREEN off after full screen has been enabled. [_FULLSCREEN (function)](_FULLSCREEN-(function)) returns 0.
|
||
|
* Second optional parameter *_SMOOTH* applies anti-aliasing to the stretched screen.
|
||
|
|
||
|
## Description
|
||
|
|
||
|
* **Set the [SCREEN](SCREEN) mode and text [WIDTH](WIDTH) when necessary first.** Otherwise there may be desktop view issues.
|
||
|
* _FULLSCREEN with no parameters chooses _STRETCH or _SQUAREPIXELS (prioritizes _STRETCH to mimic QBasic if possible)
|
||
|
* **Check the fullscreen mode with the [_FULLSCREEN (function)](_FULLSCREEN-(function)) function in your programs when a method is required.
|
||
|
* It is advisable to get [INPUT](INPUT) from the user to confirm that fullscreen was completed or there were possible monitor incompatibilities.
|
||
|
* If fullscreen is **not confirmed** with a [_FULLSCREEN (function)](_FULLSCREEN-(function)) return **greater than 0**, then disable with **_FULLSCREEN _OFF**.
|
||
|
* **NOTE:** _FULLSCREEN can also be affected by custom [_FONT](_FONT) size settings and make program screens too large.
|
||
|
|
||
|
## Example(s)
|
||
|
|
||
|
Setting the screen mode first prevents enlargement of the desktop before the program window is set:
|
||
|
|
||
|
```vb
|
||
|
|
||
|
SCREEN 12
|
||
|
_FULLSCREEN
|
||
|
IF _FULLSCREEN = 0 THEN _FULLSCREEN _OFF 'check that a full screen mode initialized
|
||
|
|
||
|
LINE (100, 100)-(500, 400), 13, BF
|
||
|
|
||
|
```
|
||
|
|
||
|
How fonts and _FULLSCREEN affect the program's window size.
|
||
|
|
||
|
```vb
|
||
|
|
||
|
SCREEN 0
|
||
|
DO
|
||
|
PRINT
|
||
|
LINE INPUT "Enter MODE 1) ENLARGE WINDOW 2) FULL _SQUAREPIXELS 3) FULL _STRETCH: ", WMODE$
|
||
|
PRINT
|
||
|
IF WMODE$ = "1" THEN INPUT "SIZE 1 TO 9: ", ENLARGE%
|
||
|
|
||
|
SELECT CASE ENLARGE%
|
||
|
CASE 1, 2, 3, 4, 5: STYLE$ = "MONOSPACE, BOLD"
|
||
|
CASE 6, 7, 8, 9: STYLE$ = "MONOSPACE"
|
||
|
CASE ELSE: STYLE$ = "MONOSPACE"
|
||
|
END SELECT
|
||
|
|
||
|
SELECT CASE WMODE$
|
||
|
CASE "1"
|
||
|
full = _FULLSCREEN
|
||
|
IF full > 0 THEN _FULLSCREEN _OFF
|
||
|
f& = _LOADFONT("c:\windows\fonts\lucon.ttf", 13 + ENLARGE%, STYLE$)
|
||
|
_FONT f&
|
||
|
CASE "2"
|
||
|
_FULLSCREEN _SQUAREPIXELS
|
||
|
full = _FULLSCREEN
|
||
|
IF full = 0 THEN GOSUB FCHECK
|
||
|
CASE "3"
|
||
|
_FULLSCREEN _STRETCH
|
||
|
full = _FULLSCREEN
|
||
|
IF full = 0 THEN GOSUB FCHECK
|
||
|
END SELECT
|
||
|
|
||
|
mode = _FULLSCREEN
|
||
|
PRINT
|
||
|
PRINT "_FULLSCREEN mode ="; mode,
|
||
|
PRINT "PRESS ESC TO END OR ENTER TO CONTINUE..."
|
||
|
|
||
|
DO: SLEEP: B$ = INKEY$: LOOP UNTIL B$ = CHR$(13) OR B$ = CHR$(27)
|
||
|
|
||
|
GOSUB ClearFont
|
||
|
|
||
|
LOOP UNTIL B$ = CHR$(27)
|
||
|
ClearFont
|
||
|
END
|
||
|
|
||
|
FCHECK:
|
||
|
Z3 = timer
|
||
|
DO
|
||
|
IF TIMER < Z3 THEN Z3 = Z3 - TIMER
|
||
|
IF TIMER - Z3 > 4 THEN EXIT DO
|
||
|
LOOP
|
||
|
full = _FULLSCREEN
|
||
|
IF full = 0 THEN _FULLSCREEN _OFF: SOUND 100, .75
|
||
|
RETURN
|
||
|
|
||
|
ClearFont:
|
||
|
IF f& > 0 THEN
|
||
|
_FONT 16 'select inbuilt 8x16 default font
|
||
|
_FREEFONT f&
|
||
|
END IF
|
||
|
RETURN
|
||
|
|
||
|
```
|
||
|
|
||
|
Testing all fullscreen methods.
|
||
|
|
||
|
```vb
|
||
|
|
||
|
PRINT "Hello, world!"
|
||
|
PRINT "Hit 1 for windowed mode;
|
||
|
PRINT " 2 for _STRETCH"
|
||
|
PRINT " 3 for _SQUAREPIXELS"
|
||
|
PRINT " 4 for _STRETCH, _SMOOTH"
|
||
|
PRINT " 5 for _SQUAREPIXELS, _SMOOTH"
|
||
|
DO
|
||
|
k$ = INKEY$
|
||
|
SELECT CASE VAL(k$)
|
||
|
CASE 1
|
||
|
_FULLSCREEN _OFF
|
||
|
CASE 2
|
||
|
_FULLSCREEN _STRETCH
|
||
|
CASE 3
|
||
|
_FULLSCREEN _SQUAREPIXELS
|
||
|
CASE 4
|
||
|
_FULLSCREEN _STRETCH, _SMOOTH
|
||
|
CASE 5
|
||
|
_FULLSCREEN _SQUAREPIXELS, _SMOOTH
|
||
|
END SELECT
|
||
|
_LIMIT 30
|
||
|
LOOP UNTIL _EXIT
|
||
|
SYSTEM
|
||
|
|
||
|
```
|
||
|
|
||
|
## See Also
|
||
|
|
||
|
* [_FULLSCREEN (function)](_FULLSCREEN-(function))
|
||
|
* [_ALLOWFULLSCREEN](_ALLOWFULLSCREEN)
|
||
|
* [_FONT](_FONT), [SCREEN](SCREEN)
|
||
|
* [_SCREENIMAGE](_SCREENIMAGE)
|
||
|
* [_SCREENMOVE](_SCREENMOVE), [_SCREENX](_SCREENX), [_SCREENY](_SCREENY)
|