使用XMMatrix和std :: vector访问冲突

时间:2015-03-24 20:00:32

标签: c++ c++11

我目前在我的项目中遇到问题,我正试图让Dx11运行。

我的错误是: 3DTestProject.exe中0x00FC266D处的未处理异常:0xC0000005:访问冲突读取位置0x00000000。

此行中的Model.cpp IN Model :: Render()发生崩溃:
cb.mWorld = DirectX::XMMatrixTranspose(aOrientation);

由于实现,我必须在Render()

中将其作为const引用发送
const DirectX::XMMATRIX& aOrientation

从实例打电话 m_pModel->Update();

Instance的标头如下所示:

class Instance 
{
public:
  Instance();
  Instance(Model* aModel);
  ~Instance();

  void Update();
  void Render(Camera* aCamera);

private:

  DirectX::XMMATRIX m_Orientation;
};

我的猜测是因为我将我的实例存储在Scene.h中作为std :: vector而且我不知道如何解决它。

std::vector<Instance> m_vecInstances;

1 个答案:

答案 0 :(得分:0)

改变这些行并使用XMFLOAT4X4似乎在这一点上起作用。

const DirectX::XMFLOAT4X4 aOrientation

cb.mWorld = DirectX::XMMatrixTranspose(XMLoadFloat4x4(&aOrientation));