在与我一起探索时,webgl2_draw_packed_triangle.c
我惊讶地发现,无论是否显式设置标志,只有在调用某些特定于 GL 的代码时才会创建生成代码中-lGL
的全局对象。GL
例如,在尝试了webgl2_draw_packed_triangle.c
以下在生成的 JS 中触发 GL 上下文的最小代码后:
EmscriptenWebGLContextAttributes attr;
emscripten_webgl_init_context_attributes(&attr);
EMSCRIPTEN_WEBGL_CONTEXT_HANDLE ctx = emscripten_webgl_create_context("#canvas", &attr);
也就是说,如果不调用 emscripten_webgl_create_context 甚至不会创建 GL 上下文。
所以,我的问题是 - 如何强制执行 GL 声明,这可能吗?
这是我的编译方式:
emcc -o index.html -lGL -s MAX_WEBGL_VERSION=2 -s GL_ASSERTIONS webgl2_draw_packed_triangle.c