WebGL 着色器编译错误消息中的数字是什么意思?
What do the numbers in WebGL shader compile error message mean?
例如,
ERROR: 0:137: 'blend2' : no matching overloaded function found
ERROR: 0:137: '=' : dimension mismatch
ERROR: 0:137: '=' : cannot convert from 'const mediump float' to 'highp 3-component vector of float'
0:137
中的 0
是什么?
0:137
中的137
是什么?
为什么所有错误消息都以 0:
开头?为什么不是 1:
或 2:
?
请注意,我不是在问为什么会出现这些错误。如果有的话,最好参考一些官方规范或文档的答案。我正在使用 Chrome 63.0.3239.132.
What is 0 in 0:137?
这是产生错误的着色器字符串的索引。在常规 OpenGL 中,glShaderSource
允许您提供多个字符串。它们被编译为好像它们被连接在一起。但这意味着错误消息必须标识着色器中导致错误的特定字符串。第一个数字是提供给 glShaderSource
.
的字符串数组的从零开始的索引
当然,WebGL 的等效 gl.shaderSource
函数不允许您提供多个着色器字符串。因此,如果 WebGL 实现最终直接调用 OpenGL 或 OpenGL ES 实现,那么 OpenGL 产生的错误将在其中包含字符串索引,即使它们在技术上不需要它。
What is 137 in 0:137?
错误发生的行号。
例如,
ERROR: 0:137: 'blend2' : no matching overloaded function found
ERROR: 0:137: '=' : dimension mismatch
ERROR: 0:137: '=' : cannot convert from 'const mediump float' to 'highp 3-component vector of float'
0:137
中的 0
是什么?
0:137
中的137
是什么?
为什么所有错误消息都以 0:
开头?为什么不是 1:
或 2:
?
请注意,我不是在问为什么会出现这些错误。如果有的话,最好参考一些官方规范或文档的答案。我正在使用 Chrome 63.0.3239.132.
What is 0 in 0:137?
这是产生错误的着色器字符串的索引。在常规 OpenGL 中,glShaderSource
允许您提供多个字符串。它们被编译为好像它们被连接在一起。但这意味着错误消息必须标识着色器中导致错误的特定字符串。第一个数字是提供给 glShaderSource
.
当然,WebGL 的等效 gl.shaderSource
函数不允许您提供多个着色器字符串。因此,如果 WebGL 实现最终直接调用 OpenGL 或 OpenGL ES 实现,那么 OpenGL 产生的错误将在其中包含字符串索引,即使它们在技术上不需要它。
What is 137 in 0:137?
错误发生的行号。