我正在使用MOGRE,它是OGRE3D的C#绑定。我创建了自己的渲染循环,并使用WindowEventUtilities.MessagePump()来更新窗口。
这是我的主要应用程序循环:
while (SFMLWin.IsOpened() && !OGREWin.IsClosed)
{
try
{
if (fpsClock.Milliseconds > 0)
fps = 1000 / fpsClock.Milliseconds;
fpsClock.Reset();
SFMLWin.DispatchEvents();
SFMLWin.GetFrameTime();
inputKeyboard.Capture();
inputMouse.Capture();
OnCollision();
OnKeyHold();
MainDraw();
WindowEventUtilities.MessagePump();
}
catch
{
break;
}
}
SFMLWin.Dispose();
OGREWin.Dispose();
当我在WindowEventUtilities.MessagePump();关闭OGREWin时,我仍然收到“FatalExecutionError”代码。 try / catch语句没有捕获任何内容,我无法在WindowEventUtilities.MessagePump()周围实现任何if语句来修复这种情况。我真的很难过该做什么。
我在MOGRE主板上发布了一个主题,但还没有找到解决方案。