我第一次编写包装器并使用许多不同的头文件,但遇到了问题。我无法将 D3DMATRIX 转换为 XMMATRIX。查看https://docs.microsoft.com/en-us/windows/win32/dxmath/pg-xnamath-migration-d3dx它说 XMMATRIX 如何需要 16 位对齐,但 D3DMATRIX 没有这个要求。
代码:
XMMATRIX WVP1;
---
---
HRESULT m_IDirect3DDevice9Ex::SetTransform(D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX *pMatrix)
{
WVP1 = WVP1 * *pMatrix;
---
---
}
在这段代码中,每次调用 SetTransform 时,我都想对通过现有矩阵的矩阵进行计时。
调用函数总是通过一个 D3DMATRIX 我想所以我不能改变它。我还需要使用 XMMATRIX 类型。
我已经尝试了一些代码来对此进行排序,但它没有帮助例如
const_cast<XMMATRIX*>(&WVP1) = const_cast<XMMATRIX*>(&WVP1) * reinterpret_cast<CONST XMMATRIX*>(pMatrix);
我不知道如何解决这个问题。
谢谢