我最终使用 SDL 1 和 Emscripten 将 Mika 移植到 WebGL。
接下来我将描述需要在代码中更改哪些内容才能成功完成 JavaScript 中的构建。
- 使用 SDL 1 而不是 SDL 2。目前 emscripten 有一个 SDL 2 端口,但我发现使用 emscripten 内置的 SDL 1 更合适。上下文不是在窗口中初始化的,而是使用 SDL_SetVideoMode 和 SDL_OPENGL 标志初始化的。使用 SDL_GL_SwapBuffers() 命令绘制缓冲区
- 由于 JavaScript 循环的方式–渲染被放置在一个单独的函数中,并使用 emscripten_set_main_loop
- 还必须使用密钥“-s FULL_ES2=1”进行组装
- 我不得不放弃 assimp 库,从文件系统加载模型,并从磁盘加载纹理。所有必需的缓冲区都已加载到桌面版本上,并插入到 c 头文件中,以便使用 emscripten 进行组装。
函数定期调用
文章:
http://blog.scottlogic.com/2014/03/12/native-code-emscripten-webgl-simmer-gently.html
https://kripken.github.io/emscripten-site/docs/porting/multimedia_and_graphics/OpenGL-support.html
型号:
https://sketchfab.com/models/7310aaeb8370428e966bdcff414273e7
