Axiom Справочник языка

Оператор

Оператор PCOPY

Экранные страницы позволяют отделить рисование следующего изображения от текущего показа. Когда кадр на скрытой странице готов, его переносят на видимую оператором PCOPY: он заменяет содержимое одной графической страницы содержимым другой.

Страницы и показ кадра

Оператор SCREEN выбирает страницу для рисования и страницу для показа. Если рисовать на странице 1, а показывать страницу 0, подготовленное изображение не появится до вызова PCOPY 1, 0, который копирует его на видимую страницу.

Оператор доступен в графических режимах SCREEN 1..10. В текстовом режиме SCREEN 0 и на холсте CANVAS экранные страницы оператора PCOPY недоступны.

Синтаксис

PCOPY <исходная страница>, <страница назначения>

Оба аргумента обязательны: сначала указывается источник, затем страница назначения.

Аргументы

ЧастьОписание
<исходная страница>Передайте номер исходной страницы от 0 до 3. Оператор PCOPY читает кадр именно из этой страницы. Передаваемое значение имеет тип INTEGER.
<страница назначения>Передайте номер страницы назначения от 0 до 3. Оператор PCOPY записывает копию кадра именно в эту страницу. Передаваемое значение имеет тип INTEGER.

Что переносится

Копирование заменяет кадровый буфер страницы назначения содержимым исходной страницы. Переносятся индексный слой, полноцветный слой и палитра, поэтому результаты PSET, LINE, DRAWIMAGE, DRAWSPRITE и PALETTE сохраняются вместе.

Текстовый буфер PRINT отображается общим слоем поверх видимой страницы. Оператор PCOPY не копирует текстовый буфер и не переносит текст между страницами; LOCATE только задаёт текстовый курсор.

Правила и границы

Номера обеих страниц приводятся к INTEGER и должны лежать в 0..3; выход за этот диапазон сообщает MB3007, а вызов без активного графического режима — MB3010. Копирование страницы в саму себя допустимо.

Если страница назначения видима, копия появляется в окне; иначе она сохраняется на скрытой странице до её показа. Оператор не меняет выбранные номера активной и видимой страниц.

Копирование сохраняет графическую позицию, VIEW, WINDOW, VIEW PRINT, текстовый курсор и очереди ввода.

Диагностика

  • MB3010: графический режим SCREEN не активен.
  • MB3007: номер исходной страницы или страницы назначения находится вне диапазона 0..3.

Пример

SCREEN 1, , 1, 0
CLS
LINE (20, 40)-(180, 40), 1
PALETTE 1, 196
PCOPY 1, 0

SCREEN 1, , 0, 0
PRINT POINT(20, 40)

Пример переносит линию и палитру со страницы 1 на страницу 0. Чтение после выбора скопированной страницы возвращает индекс 1, хотя палитра изменила видимый цвет линии.

Запускаемые примеры

Дополнительные программы для проверки страниц находятся в samples/operators/pcopy/.

См. также