Re: DirectDraw->Flip(), флип или таки копирование?
От: nkaipov  
Дата: 07.02.03 07:33
Оценка:
Здравствуйте, DigitalTaurus, Вы писали:

DT>Начал изучать DirectDraw. Столкнулся с тем как на разных видеокартах происходит Flip().

DT>Вывожу 1 раз на back surface картинку. Дальше Flip() 1 раз в секунду.

DT>На S3 Trio64, мигание картинки не происходит, т.е. содержимое первичной и задней поверхности одинаковое — получается что флип делает копирование из заднего буфера на первичную поверхность.

DT>На NVIDIA Vanta/Vanta LT, мигание есть, т.е. содержимое содержимое первичной и задней поверхности разное — получается что флип НЕ делает копирование, а только меняет адреса.
DT>Вопрос? Как определить будет ли флип делать копирование или менять адреса?

Для более точного ответа в письме маловато информации.

Насколько я помню, в DirectDraw7 Flip() всегда меняет адрес. Более того,
этот вызов принудительно синхронизирован с кадровым прерыванием.
Вообще-то мигать ничего не должно. Тем не менее, картинка может мигать
по самым разным причинам . В данном случае скорее всего виноват
драйвер NVIDIA. В угоду скорости ребята всегда создают цепочку не меньше
чем из ДВУХ back-буферов (Flipping Surfaces) независимо от пожеланий
программиста. В этом можно убедиться — на картах NVIDIA время возврата
из Flip() свободно плавает относительно кадрового прерывания.

С приветом,
nkaipov
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.