我正在使用 DirectXMath 构建我的 3D 模拟项目
void SetConstantBuffer(ID3D11DeviceContext*_device_context, DirectX::XMMATRIX _world, DirectX::XMMATRIX _view, DirectX::XMMATRIX _projection)
{
ConstantBuffer const_buffer;
const_buffer.View = DirectX::XMMatrixTranspose(_world);
const_buffer.World = DirectX::XMMatrixTranspose(_view);
const_buffer.Projection = DirectX::XMMatrixTranspose(_projection);
_device_context->UpdateSubresource(m_const_buffer, 0, NULL, &const_buffer, 0, 0);
}
我可能在 DirectXMath 内的 SIMD 标志上得到这些编译器错误:
错误 C2719: '_world': 带有 __declspec(align('16')) 的形式参数不会对齐
错误 C2719: '_view': 带有 __declspec(align('16')) 的形式参数不会对齐
错误 C2719 : '_projection': 带有 __declspec(align('16')) 的形参不会对齐
有没有其他方法不将其转换为 DirectX::XMFLOAT4X4?
顺便说一句,我使用的是 x86 机器并在 Visual Studio 2012 Express 上进行编译。