Я сталкиваюсь со следующей проблемой. Я загружаю свои шейдеры из файлов. Программа шейдеров при попытке компиляции выдает эти ошибки для вершинных и фрагментных шейдеров:
Информация о вершинах
0 (12): ошибка C0000: синтаксическая ошибка, неожиданный $ undefined в токене ""
Информация о фрагменте
0 (10): ошибка C0000: синтаксическая ошибка, неожиданный $ undefined в токене ""
При проверке загруженного содержимого файлов я вижу все виды мусорного текста, прикрепленного в начале и конце файлов шейдеров. Как этот:
#version 330
layout (location = 0) in vec4 position;
layout (location = 1) in vec4 color;
smooth out vec4 theColor;
void main()
{
gl_Position = position;
theColor = color;
}ýýýý««««««««þîþîþîþ
Методызагрузка шейдеров выглядит следующим образом:
void ShaderLoader::loadShaders(char * vertexShaderFile,char *fragmentShaderFile){
vs = loadFile(vertexShaderFile,vlen);
fs = loadFile(fragmentShaderFile,flen);
}
char *ShaderLoader::loadFile(char *fname,GLint &fSize){
ifstream::pos_type size;
char * memblock;
string text;
// file read based on example in cplusplus.com tutorial
ifstream file (fname, ios::in|ios::binary|ios::ate);
if (file.is_open())
{
size = file.tellg();
fSize = (GLuint) size;
memblock = new char [size];
file.seekg (0, ios::beg);
file.read (memblock, size);
file.close();
cout << "file " << fname << " loaded" << endl;
text.assign(memblock);
}
else
{
cout << "Unable to open file " << fname << endl;
exit(1);
}
return memblock;
}
Я пытался изменить кодировку с верхнего ANSI UTF-8, также пытался редактировать вне Visual Studio, но проблема все еще сохраняется. Любая помощь по этому вопросу будет оченьоценили.