ScreenSet
Sets current work and visible pages
Syntax
`
Declare Sub ScreenSet ( ByVal work_page As Long = -1, ByVal visible_page As Long = -1 )
`
Usage
`
ScreenSet [ work_page ] [, visible_page ]
`
Parameters
`work_page`
index to working page
`visible_page`
index to visible page
Description
`ScreenSet` allows to set the current working page and the current visible page. Page numbers range from `0` to `num_pages - 1`, where `num_pages` is the number of pages specified when setting the graphics mode with `ScreenRes` or `Screen`. You can use this function to achieve page-flipping or double-buffering.
If you provide `visible_page` but omit `work_page`, only the visible page is changed. If you provide `work_page` but omit `visible_page`, only the work page is changed. If you omit both arguments, both work page and visible page are reset to page 0.
`ScreenSet` provides one method of writing to the screen without instantly displaying changes to the user. See also `ScreenLock` / `ScreenUnlock` for an alternative method of doing this.
Example
`
' Open graphics screen (320*200, 8bpp) with 2 pages
ScreenRes 320, 200, 8, 2
' Work on page 1 while displaying page 0
ScreenSet 1, 0
Dim As Integer x = -40
Do
'' Clear the screen, draw a box, update x
Cls
Line (x, 80)-Step(39, 39), 4, BF
x += 1: If (x > 319) Then x = -40
' Wait for vertical sync: only used to control refresh rate, can be put anywhere in the Do loop
ScreenSync
' Copy work page to visible page
ScreenCopy
Loop While Inkey = ""
`
Dialect Differences

- Not available in the -lang qb dialect unless referenced with the alias `__Screenset`.

Differences from QB

- New to FreeBASIC

See also

- `Screen (Graphics)`
- `ScreenRes`
- `ScreenCopy`
- `ScreenLock`
- `ScreenUnlock`