| vwait = FALSE-отключить синхронизацию кадров, TRUE- включить (по умолчанию) |
|
Команда Flip меняет местами FrontBuffer() и BackBuffer().
Параметр vwait определяет, будет ли видеоплата ждать пробела по вертикали перед обменом буферов. Пробел по вертикали - событие, которое происходит в процессе регенерации изображения на экране монитора, и соответствует моменту времени, когда последняя (нижняя) линия развертки экрана была отображена, а первая (верхняя) линия еще не выводится. Когда программа ждет пробела по вертикали, то гарантируется гладкое обновление экрана, поскольку изображение, выводимое монитором изменится только тогда, когда оно полностью занимает весь экран, и он должен начать обновление. Заметьте, однако, что это относится только к видеоплате, и некоторые видеоплаты позволяют пользователю отключать синхронизацию по вертикали. Поэтому, если Вы полагаетесь только на одну команду Flip, изображение может быть нарушено при определенных настройках. В этом случае Вам может быть полезна команда VWait, поскольку она вынуждает центральный процессор ждать пробела по вертикали (в противоположность видеоплате), и это не может быть заблокировано. Следовательно, действительно плавные обновления экрана могут быть достигнуты при использовании сочетания "VWait: Flip False". Смотрите также: FrontBuffer(), BackBuffer(), VWait, ScanLine. |
|
; Пример Flip/Backbuffer()/Rect
; Установим графический режим Graphics 640,480 ; Применим двойную буферизацию SetBuffer BackBuffer() ; Установим начальные координаты квадрата box_x = -20 ; отрицательная координата - за пределами экрана box_y = 100 While Not KeyHit(1) Cls ; Очищаем экран Rect box_x,box_y,20,20,1 ; Рисуем квадрат с текущими координатами Flip ; Выводим на экран box_x = box_x + 1 ; Перемещаем квадрат на 1 пиксел If box_x = 640 Then box_x=-20 ; если дошёл до правого края, возвращаем назад Wend |