是否有用于OpenGL着色语言的lint工具?

是否有用于OpenGL着色语言的lint工具?,opengl,opengl-es,glsl,shader,lint,Opengl,Opengl Es,Glsl,Shader,Lint,我已经开始使用OpenGL和编写着色器。我的应用程序在加载和编译着色器程序后检查错误,如果有问题,它会打印出信息日志。这对于捕捉错误是很好的(我是一个新手,所以我做了很多),但我真正想要的是在构建时捕捉这些错误 如果我有一个lint工具,可以简单地检查顶点或片段着色器的语法错误,我可以将它添加到构建过程中,并让它停止构建 我还没有找到这样的工具。我开始尝试写一个,但我正在使用OpenGL ES,并且已经有了 也许我在什么地方错过了。这样的工具是否存在?可以在命令行上创建着色器,与编译C或C++程

我已经开始使用OpenGL和编写着色器。我的应用程序在加载和编译着色器程序后检查错误,如果有问题,它会打印出信息日志。这对于捕捉错误是很好的(我是一个新手,所以我做了很多),但我真正想要的是在构建时捕捉这些错误

如果我有一个
lint
工具,可以简单地检查顶点或片段着色器的语法错误,我可以将它添加到构建过程中,并让它停止构建

我还没有找到这样的工具。我开始尝试写一个,但我正在使用OpenGL ES,并且已经有了


也许我在什么地方错过了。这样的工具是否存在?

可以在命令行上创建着色器,与编译C或C++程序或使用的任何方法相同。如果您使用的是Makefile,只需添加着色器的编译

可以使用Cg编译器编译Cg和GLGL着色器。它应该在所有平台上都可以使用。

您可以调整用于此用途的。它针对WebGL(基于OpenGL ES)编译着色器代码并报告错误(还运行着色器以便您可以检查输出)

你需要一个电脑来运行它

我不确定您将如何利用编译状态结果来停止构建过程。。。有,但它们有点多毛

但是,在编译桌面应用程序之前,在shader Toy中以交互方式测试着色器代码更改可能仍然是对开发过程的改进。因为你听起来像是在为移动设备开发桌面(对吧?),这将是一场胜利


另一方面,如果你成功地让你的桌面应用程序运行起来,链接ES库,这似乎是一个很多开发人员都会受益的工具。

此外,还有参考GLSL编译器(处理OpenGL和OpenGL ES)


Cg编译器将为您吐出错误,因此您可以在构建脚本中处理它们。或者,您可以将CG编译器绑定到自定义的C++应用程序中,并注意它可以返回任何错误,然后您可以根据需要处理。看起来很有希望,但似乎不支持OpenGL ES 2,这是我需要的版本。您只需要在PC上安装CG编译器,并编写着色器。Cg编译器可以用作命令行工具。有了Cg,使用
-ogles
命令行选项可以获得OpenGL/ES兼容性,使用
-strict
选项可以获得严格的兼容性检查。苹果的开发工具中有一个OpenGL着色器生成器,所以我大部分时间都在进行交互式测试。当我做一些小的更改,或者尝试使用不存在的全局变量时(因为在ES 2.0中删除了太多的变量,但有太多教程采用桌面GLSL),我希望语法检查能够捕捉愚蠢的错误。您可以在构建过程中使用图形驱动程序的着色器编译支持(至少在可用的情况下)。然而,其中许多人过于宽容,会犯下应该被抓住的错误。因此,我正在寻找一个严格的GLSL lint工具或验证器。