Здравствуйте, 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