DirectX9 независимое разрешение

Как я могу изменить разрешение и растянуть всю мою игру на новое разрешение? Я хочу, чтобы моя игра имела базовое разрешение, и когда я изменяю его, растягиваюсь до этого нового разрешения. Я видел несколько похожих вопросов, но во всех ответах предлагалось изменить параметры презентации. Если я это сделаю, разрешение моего экрана изменится, но все остальные мои объекты останутся одинакового размера и начнут рисовать в неправильном положении.

Я использую объект LPD3DXSPRITE для рисования текстур на экране, некоторого текста DirectX и вершин, определенных так:

#define D3DFVF_VERTEX (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)

Я попытался поместить D3DXSPRITE_OBJECTSPACE в sprite-> Begin () и поиграть с матрицами проекции, просмотра и мира, но безуспешно.

Может кто-нибудь сказать мне, если этот метод возможен и как я должен это сделать? Я также читал о другом методе, который предлагает рендеринг на поверхность, а затем растяжение поверхности, но я не знаю, как это реализовать. Я новичок в DirectX. Я гуглил второй метод, но не смог найти кого-то, объясняющего это, и я не думаю, что смогу рисовать от спрайта до поверхности.

РЕДАКТИРОВАТЬ:

Мне удалось сделать это, используя методы CreateRenderTarget, SetRenderTarget и StretchRect, сначала печатая на поверхность, а затем растягивая ее на заднем буфере.

0

Решение

Этого можно добиться, используя DIP (независимые от устройства пиксели или независимые от устройства единицы измерения) для измерения координат вместо физических пикселей. Вы также должны пометить вашу игру как DPI-ориентированную, чтобы операционная система не масштабировала ваш пользовательский интерфейс при изменении разрешения. Для получения дополнительной информации о DPI см. Эта статья.

0

Другие решения

Мне удалось сделать это, используя методы CreateRenderTarget, SetRenderTarget и StretchRect, сначала печатая на поверхность, а затем растягивая ее на заднем буфере.

0

По вопросам рекламы [email protected]