【问题标题】:How do I enable and use glsl #version 300 es shaders with emscripten C++ and latest firefox nightly?如何启用和使用 glsl #version 300 es 着色器与 emscripten C++ 和最新的 firefox nightly?
【发布时间】:2018-12-28 17:38:57
【问题描述】:

当然还有其他浏览器 我正在使用 emscripten C++ 编译器来构建一个 GL 应用程序。

每当我将第一行 "#version 300 es" 放在顶点或片段着色器中并尝试运行我得到的应用程序时

“错误:不支持的着色器版本”

在着色器编译日志中。

我在 emscripten 构建的 js 绑定生成器阶段的编译/链接标志是:

 -s "FETCH=1" -s "ALLOW_MEMORY_GROWTH=1" -s "USE_WEBGL2=1" 

这应该启用 webGL2 apis(并通过推断 glsl 版本 300 es)

即使我使着色器几乎完全为空,也会发生这种情况。

我使用的是 firefox Nightly 浏览器,所以它是最新的。

所有文档都只是说“这样做就可以了” - 沮丧:|

【问题讨论】:

    标签: c++ emscripten glsles


    【解决方案1】:

    它没有记录,它应该在示例等中,但是在调用 emscripten_webgl_create_context() 时,您必须通过在 setup 参数上设置 minorVerson 和 majorVerson 来明确请求 WebGL2 上下文。否则,无论链接器标志设置为什么,它在运行时默认为 WebGL1.0。

    【讨论】:

      【解决方案2】:

      我通过传递-s MIN_WEBGL_VERSION=2 修复了这个错误。

      【讨论】:

      • 感谢下次我尝试使用它时会尝试 - 唉,似乎几乎没有支持或企业参与将其开发为分发标准:| :|
      猜你喜欢
      • 1970-01-01
      • 2022-08-05
      • 2021-02-16
      • 2017-08-11
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      • 2017-07-03
      • 1970-01-01
      相关资源
      最近更新 更多