ScreenCopy
Copies the contents of a graphical page into another graphical page
Syntax
`
Declare Sub ScreenCopy ( ByVal frompage As Integer = -1, ByVal topage As Integer = -1 )
`
Usage
`
ScreenCopy [ from_page ] [, to_page ]
`
Parameters
`frompage`
page to copy from
`topage`
page to copy to
Description
`from_page` is the page to copy from. If this argument is omitted, the current work page is assumed.
`to_page` is the page to copy to. If this argument is omitted, the currently visible page is assumed.
Page numbers range from 0 to the num_pages specified when setting the graphics mode minus 1
You can use this function to add a double buffer to your graphics. Any graphics screen mode supports this function; you must supply valid page numbers otherwise `ScreenCopy` will have no effect.
There are two other functons similar to this: `Flip` and `PCopy`. `Flip` is designed to work in OpenGL modes, while `PCopy` supports console pages on some platforms. Both do the same thing as `ScreenCopy` in normal graphics modes.
Example:
See `ScreenSet` example.
Example
`
'' 320x200x8, with 3 pages
Screen 13,,3
'' image for page #1
ScreenSet 1, 0
Cls
Circle( 160, 100 ), 90, 1 ,,,, f
Circle( 160, 100 ), 90, 15
Print "Press 2 to copy page #2 to visible page"
Print "Press escape to exit"
'' image for page #2
ScreenSet 2, 0
Cls
Line( 50, 50 )-( 270, 150 ), 2, bf
Line( 50, 50 )-( 270, 150 ), 15, b
Print "Press 1 to copy page #1 to visible page"
Print "Press escape to exit"
'' page #0 is the visible page
ScreenSet 0, 0
Cls
Print "Press 1 to copy page #1 to visible page"
Print "Press 2 to copy page #2 to visible page"
Print "Press escape to exit"
Dim k As String
Do
k = Inkey
Select Case k
Case Chr(27)
Exit Do
Case "1"
ScreenCopy 1, 0
Case "2"
ScreenCopy 2, 0
End Select
Sleep 25
Loop
`
Dialect Differences

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

Differences from QB

- New to FreeBASIC. QB had `PCopy` to do the same function.

See also

- `Screen (Graphics)`
- `ScreenRes`
- `ScreenSet`