ScreenCopy
 
Копирует содержимое одной графической страницы в другую.

Синтаксис

Declare Sub ScreenCopy ( ByVal from_page As Integer = -1, ByVal to_page As Integer = -1 )

Использование

ScreenCopy [ from_page ] [, to_page ]

Параметры

from_page
страница откуда копировать
to_page
страница куда копировать

Описание

from_page - это страница откуда копируется. Если этот аргумент опущен, предполагается текущая рабочая страница. to_page - это страница куда копируется. Если этот аргумент опущен, в настоящее время предполагается видимая страница. Номера страниц варьируются от 0 до num_pages - 1, где num_pages - это количество указанных страниц при установке графического режима с помощью ScreenRes или Screen.

Вы можете использовать эту функцию для добавления двойной буферизации при рисовании вашей графики. Любой режим графического экрана с несколькими страницами поддерживает эту функцию.

Существуют две другие функции, подобные этой: Flip и PCopy. Flip предназначен для работы в режимах OpenGL, а PCopy поддерживает консольные страницы на некоторых платформах. Обе делют то же самое, что и ScreenCopy в обычных графических режимах.

Пример

Смотрите также пример ScreenSet.

'' 320x200x8, с 3-мя страницами
Screen 13,,3

'' изображение для рабочей страницы #1 (видимая страница #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"

'' изображение для рабочей страницы #2 (видимая страница #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"

'' Страница #0 - рабочая страница (видимая страница #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



Различия диалектов

  • Не доступно в диалекте -lang qb , но есть псевдоним __Screencopy.

Отличия от QB

  • Новое в FreeBASIC. Это версия только для графики,  PCopy - работает в режимах текста и графики.

См. также