我收到了错误
Reece的Prototype.exe中0x013D2841处的未处理异常:0xC0000005:访问冲突读取位置0xFFFFFFFF。
当下面一行运行时
world_matrix = _rotation * _position * _scale;
以上所有变量均为XMMATRIX类型。
当我使用new
时,我只会收到此错误(我想要一个对象数组,然后迭代并渲染)。
答案 0 :(得分:0)
据我所知,您不应该尝试使用new
运算符
XMMATRIX是特定于平台的类型,似乎这种类型在堆栈上以16字节格式对齐,它建议在堆中这样做:
因此,使用XMVECTOR和XMMATRIX对象的DirectXMath操作假定这些对象是16字节对齐的。如果使用推荐的Windows(请参阅使用正确的编译设置)编译器设置针对DirectXMath库编译代码,则这对于基于堆栈的分配是自动的。但是,确保包含XMVECTOR和XMMATRIX对象的堆分配或这些类型的转换符合这些对齐要求非常重要。
如果要创建默认对象,请尝试:
XMMATRIX mat = XMMatrixIdentity();