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

时间:2010-10-24 19:09:58

标签: opengl opengl-es glsl shader lint

我开始使用OpenGL并编写着色器。我的应用程序在加载和编译着色器程序后检查错误,如果出现问题,则打印出信息日志。这非常适合捕获错误(我是一个新手,所以我做了很多),但我真正喜欢的是在构建时捕获这些错误。

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

我一直无法找到这样的工具。我开始尝试编写一个,但我正在使用OpenGL ES并且有trouble trying to write a desktop program that links against the ES libraries

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

3 个答案:

答案 0 :(得分:5)

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

您可以使用Cg编译器编译Cg和GLGL着色器。它应该适用于所有平台。

答案 1 :(得分:1)

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

您需要prerelease build of Firefox (Minefield) or Chrome (Canary)来运行它。

我不确定你如何利用编译状态结果来停止构建过程...有ways to write results to a local file from javascript但它们有些毛茸茸......

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

另一方面,如果您设法使您的桌面应用程序与ES库链接起作用,那么这似乎是许多开发人员可以从中受益的工具。

答案 2 :(得分:1)

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

http://www.khronos.org/opengles/sdk/tools/Reference-Compiler/