启用来自Asm.js/emscripten的WebGL扩展?

3

另外,我想要进行编译时不包括-FULL-ES2选项,因为glDrawArray模拟等内容对我并不感兴趣。 - Viktor Sehr
1个回答

4
我想先声明,您不应该像这样使用Emscripten。个人建议使用GLFW3和GLEW来管理窗口和扩展。当使用emcc或em++(Emscripten编译器)时,它们会将窗口调用更改为webgl上下文创建等操作。
但现在回到答案。如果您不想使用GLFW3,则必须使用特定的Emscripten方法。没有任何全局的“gl-object”。 如果您想要启用所有扩展,请使用以下内容: EM_BOOL enableExtensionsByDefault - 如果为“true”,则在上下文创建后,所有与GLES2兼容并且不影响性能的WebGL扩展都会自动启用。 - 如果为“false”,则默认情况下不启用任何扩展,您需要手动调用“emscripten_webgl_enable_extension()”来启用每个要使用的扩展。默认值为“true”。 如果您想启用特定的扩展,请使用以下内容:

emscripten_webgl_get_current_context()函数

返回当前活动的WebGL渲染上下文,如果没有活动上下文,则返回0。在没有活动渲染上下文时调用任何WebGL函数是未定义的,可能会抛出JavaScript异常。

返回值:

  • 当前活动的WebGL渲染上下文,或者

  • 0,如果没有活动上下文。

返回类型:“EMSCRIPTEN_WEBGL_CONTEXT_HANDLE”

为了获取WebGL上下文句柄并将其传递到以下方法中:

EM_BOOL emscripten_webgl_enable_extension(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE context, const char *extension)

在给定的上下文中启用给定的扩展。

参数:

  • context (EMSCRIPTEN_WEBGL_CONTEXT_HANDLE) -- 要启用扩展的 WebGL 上下文。

  • extension (*const char**) -- 标识 WebGL 扩展的字符串。例如 "OES_texture_float"。

返回值:

  • 如果上下文支持给定的扩展,则为 EM_TRUE,否则为 EM_FALSE。

返回类型: "EM_BOOL"

http://kripken.github.io/emscripten-site/docs/api_reference/html5.h.html#html5-h


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接