【发布时间】:2013-10-14 18:55:20
【问题描述】:
我正在使用DirectXMath,在类中创建XMMatrix 和XMVector。
当我调用XMMatrixMultiply 时,它会抛出未处理的异常。
我在网上发现这是字节对齐的问题,因为DirectXMath 使用SIMD 指令集导致未对齐的堆分配。
建议的解决方案之一是使用 XMFLOAT4X4 变量,然后在需要时将它们更改为临时的 XMMatrix,但这不是 imo 最好和最快的解决方案。
另一个是使用_aligned_malloc,但我不知道如何使用它。我从来不需要做任何内存分配,这对我来说是黑魔法。
另一个,是超载new operator,但他们没有提供任何信息如何做到这一点。
关于重载方法,我没有使用new 创建XMMatrix 对象,因为我不将它们用作指针。
在我决定将代码拆分为类之前,一切都很好。
我认为_alligned_malloc 解决方案在这里最好,但我不知道如何使用它,何时何地调用它。
【问题讨论】:
标签: c++ directx directx-11 directxmath