Тема: FAQ
Показать сообщение отдельно
Старый 31.07.2010, 12:34   #17
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: FAQ

Сообщение от DTamaturg Посмотреть сообщение
Я понимаю английский язык, не понятно, что такое "graphics object" и "graphics command" .. и вообще смысла не понятно в использовании "минусового значения"..
Ы, "графический объект", "графическая команда", Ы, "минус один" - отрицательное значение, чего непонятно?

Это правда из справки Blitz3D, но по смыслу аналогично:

Команда Flip меняет местами FrontBuffer() и BackBuffer().

Эта команда должна применяться, когда Вы используете двойную буферизацию. Двойная буферизация - методика, используемая, чтобы гарантировать, что обновления экрана не заметны для пользователя. Если Вы выводите изображение непосредственно в FrontBuffer, на экране могут появляться неприятные эффекты, поскольку обновления происходят непосредственно на экране. Если Вы выводите графику в BackBuffer, обновления происходят в памяти. Когда происходит обмен буферов, BackBuffer превращается в FrontBuffer и, следовательно, обновление на экране происходит практически мгновенно. В то же самое время, FrontBuffer становится BackBuffer-ом, позволяя Вам снова рисовать в BackBuffer-е следующий кадре до следующего "переворота" буферов.

Параметр vwait определяет, будет ли видеоплата ждать пробела по вертикали перед обменом буферов. Пробел по вертикали - событие, которое происходит в процессе регенерации изображения на экране монитора, и соответствует моменту времени, когда последняя (нижняя) линия развертки экрана была отображена, а первая (верхняя) линия еще не выводится. Когда программа ждет пробела по вертикали, то гарантируется гладкое обновление экрана, поскольку изображение, выводимое монитором изменится только тогда, когда оно полностью занимает весь экран, и он должен начать обновление.

Заметьте, однако, что это относится только к видеоплате, и некоторые видеоплаты позволяют пользователю отключать синхронизацию по вертикали. Поэтому, если Вы полагаетесь только на одну команду Flip, изображение может быть нарушено при определенных настройках. В этом случае Вам может быть полезна команда VWait, поскольку она вынуждает центральный процессор ждать пробела по вертикали (в противоположность видеоплате), и это не может быть заблокировано. Следовательно, действительно плавные обновления экрана могут быть достигнуты при использовании сочетания "VWait: Flip False".

P.S. Предупреждаю, я мог и напутать всё!
(Offline)
 
Ответить с цитированием