为什么将着色器文本文件保存为unicode时,为什么会得到未定义的标记错误,当我将其保存回ansi时,错误消失了。
#version 330 core
layout( location = 0 ) in vec2 aPos;
layout( location = 1) in vec2 aTexCoord;
void main()
{
gl_Position = vec4(aPos , 0.0 , 1.0);
};
OpenGL spec以char*
作为数组来编译数据。 char
通常是一个字节,因此它们最多可以采用256个值,即ASCII。
如果给它一个试图编码较大字符表示形式的字符串(例如UTF-16),它将把数据解释为好像是char*
,这意味着编译器现在正在读取较大表示形式的字节前缀,如下所示:如果这是它自己的独特价值。
这当然是未定义的行为,可能不起作用。