|
|
在MDX中对mesh调用dispose方法会导致一些不确定的错误发生
在深入Managed DirectX9(十一)中讨论过关于mesh不能进行优化的问题
当时的代码是这样的
mesh.Dispose();
mesh = tempMesh;
simplifiedMesh = Mesh.Simplify(mesh, adj, null, 1,MeshFlags.SimplifyVertex);
在simplifiedMesh方法的时候发生了异常,当时以为是.x文件的问题,因为换了一个.x文件之后,程序确实能正常运行,而且mesh = tempMesh;也没有出现异常,但实际上在dispose的时候就出问题了,MDX中的dispose方法会导致多个对象被dispose,产生一些奇怪的错误,解决的方法是在创建device时注销所有事件句柄
Device.IsUsingEventHandlers=false;
|
|