簡體   English   中英

OpenGL 着色器讀取器返回垃圾字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM