Как установить верхние левые координаты в DirectX 9?

Мне нужно что-то нарисовать в DirectX 9.
Мне интересно работать таким образом, что координаты будут подгоняться под пиксели, а (0,0) будет Верхний левый угол. Вот что я делаю:

RECT clientRect;
::GetClientRect(m_hWIN, &clientRect);

D3DXMATRIX matOrtho2D, matIdentity;

D3DXMatrixOrthoOffCenterLH(&matOrtho2D, 0, clientRect.right, 0, clientRect.bottom, 0.0f, 1.0f);
D3DXMatrixIdentity(&matIdentity);

g_pDirect3D_Device->SetTransform(D3DTS_PROJECTION, &matOrtho2D);
g_pDirect3D_Device->SetTransform(D3DTS_WORLD, &matIdentity);
g_pDirect3D_Device->SetTransform(D3DTS_VIEW, &matIdentity);

Это прекрасно работает, за исключением (0,0) Нижний левый угол. Как я могу это изменить?
Спасибо!

0

Решение

Это должно быть добавлено к коду:

D3DXMATRIX matTranslate, matFlip;

D3DXMatrixTranslation(&matTranslate, 0, clientRect.bottom, 0.0f);
D3DXMatrixRotationX(&matFlip, D3DXToRadian(180));
D3DXMATRIX matCoordTransform = matFlip * matTranslate;

g_pDirect3D_Device->SetTransform(D3DTS_WORLD, &matCoordTransform);
0

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector