ScreenCopy

Copies the contents of a graphical page into another graphical page

Syntax
	KeyPgDeclareDeclare KeyPgFunctionFunction ScreenCopy ( KeyPgByvalByVal from_page KeyPgAsAs KeyPgLongLong = -1, KeyPgByvalByVal 
	to_page KeyPgAsAs KeyPgLongLong = -1 ) KeyPgAsAs KeyPgLongLong

Usage
	ScreenCopy [ from_page ] [, to_page ]

Parameters
	from_page
		page to copy from
	to_page
		page to copy to

Return Value
	Returns zero (0) if successful, or a non-zero error code to indicate a 
	failure.

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 num_pages - 1, where num_pages is the number of 
	pages specified when setting the graphics mode with KeyPgScreenresScreenRes or 
	KeyPgScreengraphicsScreen (Graphics).

	You can use this function to add a double buffer to your graphics. Any 
	graphics screen mode with multiple pages supports this function.

	ScreenCopy is inactive if the destination page is locked.

	There are two other functions similar to this: KeyPgFlipFlip and KeyPgPcopyPCopy.  KeyPgFlipFlip is 
	designed to work in OpenGL modes, while KeyPgPcopyPCopy supports console pages on 
	some platforms.  Both do the same thing as ScreenCopy in normal graphics 
	modes.

	The error code returned by ScreenCopy can be checked using KeyPgErrErr in the 
	next line. The function version of  ScreenCopy returns directly the 
	error code as a 32 bit KeyPgLongLong.

Example
	See also KeyPgScreensetScreenSet example.

	'' 320x200x8, with 3 pages
	Screen 13,,3

	'' image for working page #1 (visible page #0)
	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 working page #2 (visible page #0)
	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 working page (visible page #0)
	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 CompilerOptlang-lang qb dialect unless referenced with the 
	  alias __Screencopy.

Differences from QB
	* New to FreeBASIC. It is a graphics-only version of KeyPgPcopyPCopy - which 
	  works in both text and graphics modes.

See also
	* KeyPgPcopyPCopy
	* KeyPgScreengraphicsScreen (Graphics)
	* KeyPgScreenresScreenRes
	* KeyPgScreensetScreenSet

