![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Флипинг и блитинг [D7, Win95/98, Win2k, WinXP]
parovoZZ © (2004-08-03 11:55:00)С флипом всё понятно, копируем буферную поверхность на первичную с максимальной частотой. А вот по поводу блитинга: как часто надо копировать поверхности на буферную - когда что-то на ней изменилось (копировать всю поверхность или только изменившуюся часть?), или также с максимально быстрой частотой? И почему на одной машине поверхность надо восстанавливать, даже если фокус у окна не терялся, а на другой всё как и долджно быть?
cyborg (2004-08-04 22:11:00) [21]Нет, нужно отсечение делать.
parovoZZ (2004-08-04 21:29:00) [22]И ещё вопрос вдогонку. Если я блитингую с установленным цветовым ключом и у меня прозрачная область выходит за границы поверхности, то блитинг осуществится или нет?
parovoZZ (2004-08-04 10:11:00) [23]Ясно, спасибо.
cyborg (2004-08-04 06:53:00) [24]Если экран постоянно обновляется, то всю графику рисую на бэкбуфере, Если чего-то редко обновляется, нарисуй на отдельной поверхности и выводи на быкбуфер эту поверхность.
parovoZZ (2004-08-03 22:11:00) [25]Запутался в словах. Делаем эффекты на какой-либо поверхности (не буферной), затем переносим её на буферную. ИЛИ. Сразу делаем эффекты на буферной. Буферная - та, которая работает в купе с первичной.
cyborg (2004-08-03 21:11:00) [26]
> [8] parovoZZ © (03.08.04 21:04)
не понятно чего там тебе нужно на неё сразу блитинговать для эффектов. Если прозрачность только, или свет делать.
parovoZZ (2004-08-03 21:04:00) [27]Я так понял, что к любой? Но тогда на буферную поверхность надо блитинговать, а так сразу на неё. Или побыстрее будет (всё равно ж блитинговать придётся)? Для эффектов надо.
cyborg (2004-08-03 20:33:00) [28]
> [6] parovoZZ © (03.08.04 20:22)
Не только, к остальным имеет смысл.
parovoZZ (2004-08-03 20:22:00) [29]Может не по сабжу: непосредственный доступ к пикселям надо производить только к буферной поверхности, а к остальным, наверное , не имеет смысла?
cyborg (2004-08-03 16:22:00) [30]Игра будет идти с той скоростью, с которой ты запрограммируешь, если привяжешь к рендерингу и видеосинхронизацию включишь, то будет идти со сокростью обновления монитора, а если котлеты отдельно, мухи отдельно и процессор не тормозит твою игру, то с будет с такой, какая задумана.
parovoZZ (2004-08-03 15:55:00) [31]Не, вопрос не в этом. ХХХ_WAIT я так понимаю, это указание функции ждать готовности устройства. Вопрос в чём: на момент ожидания окно приостанавливает обработку поступающих сообщений или нет? Допустим, есть два монитора с частотами 60 и 120 Гц. С какой скоростью будет идти игра на этих мониторах?
cyborg (2004-08-03 15:45:00) [32]
> что происходит с выполнением программного кода - ожидаем
> завершения оного или задачи разделяются
Это зависит от использования флагов ХХХ_WAIT или XXX_DONOTWAIT при флипинге и блиттинге, по названию флага можно догадаться какой к чему.
parovoZZ (2004-08-03 14:43:00) [33]Ну хорошо, а тогда ещё вопрос: если ждём вертикальной синхронизации при флипинге, что происходит с выполнением программного кода - ожидаем завершения оного или задачи разделяются (то бишь центральный процессор выполняет дальнейшие инструкции, а видеокарта выполняет флипинг)?
P.S. Всё же книга без теории не даёт полного понимания некоторых вещей.
cyborg (2004-08-03 11:58:00) [34]Флипинг - смена буферов (переключение) или копирование, в зависимости от режима. А блитинг это копирование одной поверхности на другую. А как часто это делать, зависит от твоей игры.
Поверхности нужно восстанавливать когда их затирают другие программы, какая-то программа использовала видеопамять, в этой части видеопамяти твои поверхности затёрлись, приходится восстанавливать.