我正在尝试将一些基于.NET1.1下的DX9的代码转换为DX9,.NET4和SlimDX。
旧代码设置了许多事件处理程序:
graphics.DeviceLost += new EventHandler( this.InvalidateDeviceObjects );
graphics.DeviceReset += new EventHandler( this.RestoreDeviceObjects );
graphics.Disposing += new EventHandler( this.DeleteDeviceObjects );
graphics.DeviceResizing += new CancelEventHandler( this.EnvironmentResizing );
我注意到在SlimDX.Direct3D9中,DeviceLost不再存在。我和其他人有类似的问题。
DeviceLost存在于SlimDX.Direct3D9.ResultCode命名空间中,但我不知道这是否有用。
干杯,
答案 0 :(得分:1)
您需要像在本机DirectX中一样使用TestCooperativeLevel方法来检查结果代码并采取相应措施。 MDX的事件处理方法存在一些不幸的性能缺陷,这就是我们避免实现该系统的原因。