Я пытался запустить мою программу на С ++ онлайн с помощью 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