1

OGRE3DのC#バインディングであるMOGREを使用しています。独自のレンダリングループを作成し、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ボードにトピックを投稿しましたが、まだ解決策が見つかりません。

4

0 に答える 0