![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поворот спрайтов
STANT © (2003-04-30 14:35:00)
Ипользую DirectDraw: пробую выполнять блиттинг спрайтов с поворотом и зеркальным отображением, но никакого блиттинга не происходит. Читал в статьях, что не все видеокарты поддерживают повороты, но нигде не нашел уточнения (интересуют карты Riva TNT2 и ATI Radeon).
Если аппаратное ускорение не возможно, то ведь должана же быть эмуляция? Может быть нужно использовать интерфейс более новой версии DirectDraw?
Обходные пути проблемы (вижу два) , видимо, не подходят:
1. Создать повернутые копии спрайтов можно для поворотов на углы, кратные П/2. Но как быть с произвольными углами?
2. Поворачивать каждый раз при прорисовке - медленно.
Еще читал, что для этого лучше использовать direct3d, но в моем случае уже поздно: слишком много написано под DDraw и, кроме того, у меня просто не хватит времени на ознакомление с d3d.
Буду рад любой ответу на любой из вопросов.
Sapersky_ (2003-05-02 22:51:00) [1]
Не работают эти повороты ни на каких видеокартах - драйвера не поддерживают. Эмуляции сроду не было (вопросы вроде "а зачем оно тогда" адресовать Б.Г., а не мне). Зеркальное отображение - ещё может быть, толком не помню. Точно есть масштабирование (при наличии аппаратной поддержки).
Процедура поворота вручную есть, например, в библиотеке FastLIB - см. на DelphiGFX. Правда, работает она не с поверхностями, а с TFastDIB. Так что лучше (и в плане производительности тоже) заранее сгенерировать все повороты, запихать их в поверхность и выводить обычным блиттингом.
> Еще читал, что для этого лучше использовать direct3d, но в моем случае уже поздно
Вообще-то для вывода спрайтов необязательно изучать весь D3D... я тут прикинул - минимальная поддержка D3D для DX7 при наличии готового DirectDraw-движка укладывается в 60 строк... правда, весьма желательно понимать, что эти строки значат... :)