Я пытаюсь загрузить простую программу GLSL из файла .txt
. Вот функция, которая загружает файл:
string getShaderSource(char path[])
{
string out;
ifstream mFile;
stringstream buf;
mFile.open(path);
if (mFile.is_open())
{
buf << mFile.rdbuf();
out = buf.str();
}
else
printf("Cannot open shader source file.");
mFile.close();
//out.append("\0");
return out;
}
И я использую функцию следующим образом:
string vs = getShaderSource("C:/vs.txt");
GLuint vertexShader = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(vertexShader, 1, (const GLchar**)&vs, NULL);
Проблема в том, что шейдер не компилируется несмотря ни на что, вот ошибка:
0(1) : error C0000: syntax error, unexpected $undefined at token "<undefined>"
Очень простой код GLSL:
#version 410
layout (location = 0) in vec3 vp;
layout (location = 1) in vec3 color;
smooth out vec4 theColor;
void main () {
gl_Position = vec4 (vp, 1.0);
theColor = vec4(color, 0.0);
}
Я знаю, что есть похожие вопросы, я много пытался решить проблему, но безуспешно. Что я делаю не так?
vs
? - person Axalo   schedule 26.01.2015const char*
, и он отлично работает, но не тогда, когда я пытаюсь загрузить его из файла. Я думаю, что что-то не так с моей функцией загрузки txt файла. - person Amol Borkar   schedule 26.01.2015