[英]OpenGL shader reader returns garbage characters
为什么这个功能:
string Utils::readShaderFile(const char* filePath) {
string content;
ifstream fileStream(filePath, ios::in);
string line = "";
while (!fileStream.eof()) {
getline(fileStream, line);
content.append(line + "\n");
}
fileStream.close();
return content;
}
返回
■#version 430
void main(void)
{
if (gl_VertexID == 0) gl_Position = vec4(0.25, -0.25, 0.0, 1.0);
else if (gl_VertexID == 1) gl_Position = vec4(-0.25, -0.25, 0.0, 1.0);
else gl_Position = vec4(0.25, 0.25, 0.0, 1.0);
}
第一行有一些垃圾字符?
我相信这就是我得到着色器编译错误的原因:
Vertex Shader compilation error.
Shader Info Log: 0(1) : error C0000: syntax error, unexpected $undefined at token "<undefined>"
所以,问题在于我使用命令的 Prompt echo "" >> shader.glsl
创建了我的着色器 .glsl 文件,这在文件的开头设置了一些奇怪的字符。
在我通过 VS2019 add item
选项创建文件后,它运行良好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.