从Asm.js/emscripten启用WebGL扩展
Enable WebGL-extensions from Asm.js/emscripten?
如何从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
在此之前,我会说您不应该像这样使用Emscripten。就我个人而言,我会使用GLFW3和GLEW来管理窗口和扩展。当使用emcc或em++(emscripten编译器)时,他们会将窗口调用更改为webgl上下文创建等等。
但现在是答案。如果您对使用GLFW3不感兴趣,则必须使用特定的Emscripten方法。没有任何全局"gl对象"。
如果您希望启用所有扩展,您可以使用以下选项:
EM_BOOL启用默认扩展
如果为"true",则所有GLES2兼容的非性能影响WebGL在上下文已创建。
如果为"false",则不启用任何扩展默认情况下,您需要手动调用"emscripten_webgl_enable_extension()"以启用每个扩展您想要使用的。默认值:"true"。
如果您希望启用特定的扩展,您可以使用以下选项:
EMSCRIPTEN_WEBGL_CONTEXT_HANDLE EMSCRIPTEN_WEBGL_get_current_CONTEXT()
返回当前活动的WebGL呈现上下文,如果没有,则返回0上下文处于活动状态。当没有活动呈现上下文未定义,可能引发JavaScript例外
退货:
当前活动的WebGL呈现上下文或
如果没有活动上下文,则为0。
返回类型:"EMSCRIPTEN_WEBGL_CONTEXT_HANDLE"
以便获得WebGL上下文句柄并将其传递到以下方法中:
EM_BOOL emscripten_webgl_enable_extension(emscripten_webgl_CONTEXT_HANDLE上下文,const char*扩展)
在给定上下文上启用给定扩展。
参数:
上下文(EMSCRIPTEN_WEBGL_context_HANDLE)--WEBGL要在其上启用扩展的上下文。
扩展(*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
- 编译时未启用intel oneApi CUDA支持
- OpenGL在启用深度测试时不会丢弃我的碎片
- Visual C++GC接口如何启用它以及要包含哪个库
- 如何在自定义类中启用'auto loops'?
- 根据某个函数是否存在启用模板
- 视觉工作室 2017;启用 /permissive 时,类型 "const wchar_t *" 的参数与类型 "PWSTR" 的参数不兼容
- 启用从"vector<const T>&"到"const vector&"的隐式转换<T>
- C++ win32 如何使密码字段可选并启用复制和粘贴?
- 在 Eclipse 上启用 C++17 以使用 'std::byte'
- 当 noexcept 函数尝试在 gcc 或 clang 中调用非 noexcept 函数时启用警告
- 如何为一段代码启用 -permissive
- 是否可以/希望创建不可复制的共享指针模拟(以启用weak_ptr跟踪/借用类型语义)?
- 在 GCC 中启用"differing levels of indirection"警告/错误
- 使用 Doxygen 记录枚举类值,而不启用EXTRACT_ALL
- '_HAS_CXX17'宏是否可用于自定义项目标头以启用C++17 语言集功能?
- 如何启用转换模板参数 T 以常量 T?
- 在使用 gSoap 链接多个 SOAP 服务时启用保持活动状态
- 如何启用标准::实验::atomic_shared_pointer
- 如何启用友元类的友元功能直接在C++中访问其私有成员
- 从Asm.js/emscripten启用WebGL扩展