Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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 инициализируется медленнее... можно попробовать создавать буфер максимального размера и при перерисовке копировать в окно его часть. При изменении размеров окна подправлять проекционную матрицу, чтобы размер изображения получился правильным.


Наверх

Титульная страница Поиск, карта сайта Написать письмо