![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Direct3D Resize [D6, WinXP]
Pa5ha © (2003-11-26 19:09:00)Я рисую на панели с помощью D3D. Размер панели изменяется и картинка становиться зернистой. Как можно изменить размер буфера без создания объекта устройства заного?
Pa5ha (2003-12-02 13:14:00) [1]Кстати в примерах на сайте есть пример с дельфином(плавает и хвостом машет). Там всё это дело быренько работает. И красиво... Во всяком случае спасибо, попробую сделать так.
Sapersky (2003-12-01 22:34:00) [2]Ну вот, это и требуется. При создании буфера (в TD3DPRESENT_PARAMETERS) указать размеры в полный экран, в OnResize - SetViewport, и в Present ставить соответствующий source rect - проверил, вроде работает. Во всяком случае, зернистость меньше, чем при обычном подходе.
Pa5ha (2003-12-01 13:03:00) [3]Объявляю переменную TD3DViewPort8 (for DX8). У неё поля всякие: x,y,width,height,minz (=0) и maxz (=1); И получается не весь буфер обновляется.
Sapersky (2003-11-30 23:41:00) [4]Как именно юзаешь?
Pa5ha (2003-11-30 17:55:00) [5]Есть фича SetViewPort;
Только работает через ж или я её неправильно юзаю. Help me!!!
Sapersky (2003-11-27 13:48:00) [6]Никак, скорее всего. Не помню толком, как там в DX8 (картинка зернистая - это про него, так?), но в DX7 я пересоздавал почти всё - back, Z буфер, device - и ничего, не очень тормозило. DX8 инициализируется медленнее... можно попробовать создавать буфер максимального размера и при перерисовке копировать в окно его часть. При изменении размеров окна подправлять проекционную матрицу, чтобы размер изображения получился правильным.