Emscripten утверждает, что я рендеринг без использования requestAnimationFrame - PullRequest
0 голосов
/ 29 апреля 2018

Я пытался запустить мою программу на С ++ онлайн с помощью emscripten. Тем не менее, он бомбардировал меня с ошибкой:

Похоже, вы выполняете рендеринг без использования requestAnimationFrame для основного цикла. Вы должны использовать 0 для частоты кадров в emscripten_set_main_loop, чтобы использовать requestAnimationFrame, так как это может значительно улучшить ваши частоты кадров!

Но проблема в том, что, насколько я могу судить, я устанавливаю 0 fps в emscripten_set_main_loop_arg. Итак, я не могу понять, почему я получаю эту ошибку, когда я действительно выполняю рендеринг с requestAnimationFrame.

Вот общий разрыв моего основного цикла:

static void dispatchMain(void* fp)
{
    std::function<void()>* function = (std::function<void()>*)fp;
    (*function)();
}

void main()
{
    std::function<void()> mainLoop = [&]() {
        // Main loop calls here
    };

    emscripten_set_main_loop_arg(dispatchMain, &mainLoop, 0, 1);
}

Вот общая разбивка команды компиляции:

emcc -std=c++11 "Main.cpp" -s USE_GLFW=3 -s FULL_ES3=1 -DEMSCRIPTEN=1 -s TOTAL_MEMORY=167772160 -O3 -o out.html

1 Ответ

0 голосов
/ 07 мая 2018

Проблема заключалась в том, что по какой-то причине с помощью

glTimeinterval(0) 

в окне класса испортил частоту кадров и вызвал ошибку.

...