当着色器文件以Unicode保存时出现未定义的令牌错误

问题描述 投票:0回答:1

为什么将着色器文本文件保存为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 glsl
1个回答
2
投票

OpenGL specchar*作为数组来编译数据。 char通常是一个字节,因此它们最多可以采用256个值,即ASCII。

如果给它一个试图编码较大字符表示形式的字符串(例如UTF-16),它将把数据解释为好像是char*,这意味着编译器现在正在读取较大表示形式的字节前缀,如下所示:如果这是它自己的独特价值。

这当然是未定义的行为,可能不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.