Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.118.1.232] |
|
Сообщ.
#1
,
|
|
|
Есть окно с DirectX. Измерил интервал прихода сообщений отрисовки окна, оказалось, что сообщения WM_PAINT приходят с интервалом 250 микросекунд. Надо бы реже. Хотя бы 40 миллисекунд, этого будет достаточно для создания эффекта движения. Использую DirectX 9. Искал способ увеличить время, но что то не нашел. Может DirectX 12 может изменять это время?
|
Сообщ.
#2
,
|
|
|
Про DirectX ничего не скажу, но есть вот такая идея:
Сделать WM_TIMER с нужным интервалом, в котором будете выставлять нужный флаг, а в WM_PAINT будете рисовать только при наличии этого флага. |
Сообщ.
#3
,
|
|
|
Цитата Black_Dragon @ Про DirectX ничего не скажу, но есть вот такая идея: Сделать WM_TIMER с нужным интервалом, в котором будете выставлять нужный флаг, а в WM_PAINT будете рисовать только при наличии этого флага. Проверил, не работает. |
Сообщ.
#4
,
|
|
|
Как сделали и что не работает?
Очистка фона WM_ERASEBKGND есть? |
Сообщ.
#5
,
|
|
|
Цитата Black_Dragon @ Как сделали и что не работает? Очистка фона WM_ERASEBKGND есть? Спасибо за совет. Разобрался, все заработало. В функции OnPaint не было строки CPaintDC dc(this); Но картинка DirectX отрисовывалась, и я думал, что все работает. Был и другой глюк, но я списывал его на забивку буфера сообщениями. Но изучая ваш совет, увидел эту проблему, стал пробовать и все получилось. Спасибо. |