1

我正在使用一个应用程序,该应用程序需要使用 glutTimerFunc() 的 GLUT GUI 在尽可能短的时间内执行引擎:

void SetGLUTTimer(void);

void callback(int value)
{
    Engine* pEngine;
    pEngine = (Engine*) value;
    pEngine->Process();

    pEngine->SetGLUTTimer();
}

void Engine::SetGLUTTimer(void)
{
    glutTimerFunc(50, callback, (int)this);
}

bool Engine::Run(void)
{
    if (m_pViewer != NULL)
        m_pViewer->Run();
    else
        return false;

    return true;
}

如果我将时间阈值设置为 1000 毫秒或更多,将定期调用引擎回调,而低于一秒的任何其他时间间隔(如上面的示例中)将导致 GUI 无限期地运行,从不执行引擎 Process() 函数。

4

0 回答 0