GLSL链接信息日志用中文

时间:2011-03-23 23:50:16

标签: java opengl logging glsl shader

我正在测试glsl并且着色器没有做我想要的。我有这段代码来检索日志(我正在使用JOGL)。

gl.glGetShaderInfoLog(vertexShader, INFO_LOG_SIZE, charsWritten, bb);

我从“bb”中获取字符串并找到了奇妙的问号。 我调试然后我找到了这个 Chinese PWNING me

在我对中文的无限了解中,谷歌告诉我:

  Gar Gar contra contra several Tang Tang Tang Tang Tang Tang Ai Ai Ai Ai Ai Ai Ai Ai⁣⁣⁣⁣⁣⁣⁣⁣⁣<<<<<<<<<<

你可以看到这对我很有帮助:D

我可以更改日志语言吗?或者其他什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

看起来你将一些随机二进制数据表示为字符串; Windows内部使用宽字符(即16位字符),因此高字节中任何非零的数据都将最终呈现一些亚洲脚本。

编辑:(这是一个Java程序,首先没有注意到) Java的ByteBuffer asCharBuffer将缓冲区中的数据解释为宽字符串(即每个字符两个字节),而OpenGL将为每个字符串返回一个字节。我不是Java向导,所以如果我在这里尝试解决方案,我可能会生成很多Coded Smorgasbrod。您需要找到一个函数,将每个字符串的8位正确转换为Java CharBuffer,或者手动将每个返回的字节前置为零字节。

答案 1 :(得分:0)

日志输出不是由OpenGL生成的,而是由着色器本身生成的。我假设你没有写着色器,所以无论谁用中文写了日志信息。

有两种可能性:要么着色器实际上是用中文写的,我不知道为什么他们试图告诉你有关乱窜的违规行为,或者(因为那里有空盒子字符这一事实判断) ),它实际上不是中文,只是一些随机字节输出,并且着色器中有一个错误。

无论哪种方式,问题出在着色器中,而不是在OpenGL的某些设置中。

相关问题