Здравствуйте, Bravot, Вы писали:
B>Здравствуйте, Dimonka, Вы писали:
D>>Здравствуйте, Bravot, Вы писали:
B>>>Забыл сказать, что точка справа должна плавно стать точкой слева за 4 секунды.
B>>>На глаз, чтобы небыло дерганья от неравномерной скоторости надо двигать все с синхронно с
B>>>вертикальной разверткой.
D>>Попробуй воспользоваться DirectDraw
D>>тогда сможешь нормально привязаться к развёртке.
D>>Ещё вопрос, что у тебя за линии на заднем фоне? Может их как картинку копировать в буффер, а затем по картинке рисовать линии, буффер выкидывать на экран?
B>Сзади рисуется сетка миллиметровая и текстовая информация о характеристики кривой.
B>Да, насчет DirectDraw нашел интересную штуку — если поставить
B>B>g_lpdd->WaitForVerticalBlank(DDWAITVB_BLOCKEND , NULL);
B>
B>то нагрузка на CPU возрастает процентов на 50-60%.
Естественно, что теряется производительность при ожидании обратного хода луча.
Обычно для "реального времени" в игрушках делают три экрана:
шаг первый:
первый экран смотрит пользователь,
второй экран нарисован и ожидает обратного хода луча,
третий экран рисуется в потоке.
шаг второй:
второй экран цмотрит пользователь,
третий экран нарисован и ждёт обратного хода луча,
первый экран рисуется в потоке.
итд
Но если сетка тоже ползёт, то лучше скроллировать.