Я использую MOGRE, привязку C # к OGRE3D. Я создал свой собственный цикл рендеринга и использую 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();
Я все еще получаю код "FatalExecutionError", когда я закрываю OGREWin в WindowEventUtilities.MessagePump () ;. Инструкция try / catch ничего не перехватывает, и я не могу реализовать любые операторы if вокруг WindowEventUtilities.MessagePump (), чтобы исправить ситуацию. Я действительно нахожусь в тупике, что делать.
Я опубликовал тему на досках MOGRE, но пока не нашел решения.