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 SCREEN mode supports this function; you must supply valid page numbers otherwise ScreenCopy will have no effect. This function has two aliases: Flip and PCopy.

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