从 Asm.js/emscripten 启用 WebGL 扩展?
Posted
技术标签:
【中文标题】从 Asm.js/emscripten 启用 WebGL 扩展?【英文标题】:Enable WebGL-extensions from Asm.js/emscripten? 【发布时间】:2014-11-04 13:18:23 【问题描述】:如何从 asm.js/emscripten 启用 WebGL 扩展?
我想运行相当于 javascript 代码 'var float_texture_ext = gl.getExtension('OES_texture_float');'
的代码,当然我可以从 ASM_JS()
宏中执行此操作,但我不知道全局 gl 的名称是什么强>-对象?
https://developer.mozilla.org/en-US/docs/Web/WebGL/Using_Extensions
【问题讨论】:
另外,我想在没有 -FULL-ES2 的情况下编译为 glDrawArray 仿真,我对此不感兴趣。 【参考方案1】:我会先说你不应该像这样使用 Emscripten。就个人而言,我会使用 GLFW3 和 GLEW 来管理窗口和扩展。当使用 emcc 或 em++(emscripten 编译器)时,它们会将窗口调用更改为 webgl 上下文创建等等。
但现在要回答了。如果你对使用 GLFW3 不感兴趣,你将不得不使用特定的 Emscripten 方法。没有任何全局“gl-object”。
如果您希望启用所有扩展程序,您可以使用以下方法:
EM_BOOL enableExtensionsByDefault
如果为“真”,则所有与 GLES2 兼容且不影响性能的 WebGL 后将自动为您启用扩展程序 上下文已创建。
如果为“false”,则不启用任何扩展 默认情况下,需要手动调用 “emscripten_webgl_enable_extension()”启用每个扩展 你想使用的。默认值:“真”。
如果您希望启用特定的扩展程序,您可以使用以下方法:
EMSCRIPTEN_WEBGL_CONTEXT_HANDLE 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 上下文,const char *extension)
在给定的上下文中启用给定的扩展。
参数:
context (ESCRIPTEN_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
【讨论】:
以上是关于从 Asm.js/emscripten 启用 WebGL 扩展?的主要内容,如果未能解决你的问题,请参考以下文章
debian 中安装 phpmyadmin 并启用多服务器配置
如何在 REST API 上直接启用托管元数据字段的过滤器?
Oracle:从 WE8ISO8859P1 转换为 AL32UTF8
css 从/ files启动随机子横幅图像 - 示例http://www.grundyconstructions.com.au/who_are_we.html
css 从/ files启动随机子横幅图像 - 示例http://www.grundyconstructions.com.au/who_are_we.html