Синтаксическая ошибка: неожиданный $ end at token "" GLSL с любым шейдером [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Синтаксическая ошибка: неожиданный $ end at token "" GLSL с любым шейдером [закрыто]

Сообщение Anonymous »

Я видел другие подобные вопросы, и теперь я обычно связан с неправильным кодом загрузки шейдеров, но я пытался с множеством различных способов загрузки, и я всегда получаю эту ошибку. Вот код загрузки, который я использую в настоящее время (для вершинного шейдера я делаю то же самое для фрагментного шейдера): < /p>

GLuint VertexShaderID = glCreateShader(GL_VERTEX_SHADER);
std::string VertexShaderCode;
std::ifstream VertexShaderStream(vertex_file_path, std::ios::in);
if(VertexShaderStream.is_open()){
std::string Line = "";
while(getline(VertexShaderStream, Line))
VertexShaderCode += "\n" + Line;
VertexShaderStream.close();
}
GLint Result = GL_FALSE;
int InfoLogLength;

// Compile Vertex Shader
printf("Compiling shader : %s\n", vertex_file_path);
char const * VertexSourcePointer = VertexShaderCode.c_str();
glShaderSource(VertexShaderID, 1, &VertexSourcePointer , NULL);
glCompileShader(VertexShaderID);

// Check Vertex Shader
glGetShaderiv(VertexShaderID, GL_COMPILE_STATUS, &Result);
glGetShaderiv(VertexShaderID, GL_INFO_LOG_LENGTH, &InfoLogLength);
std::vector VertexShaderErrorMessage(InfoLogLength);
glGetShaderInfoLog(VertexShaderID, InfoLogLength, NULL, &VertexShaderErrorMessage[0]);
fprintf(stdout, "%s\n", &VertexShaderErrorMessage[0]);
< /code>

Я также попробовал это: < /p>

GLuint VertexShaderID = glCreateShader(GL_FRAGMENT_SHADER);
std::ifstream shaderFile(vertex_file_path);
//Error out here.
stringstream shaderData;
shaderData

И это код связывания: < /p>

// Link the program
fprintf(stdout, "Linking program\n");
GLuint ProgramID = glCreateProgram();
glAttachShader(ProgramID, VertexShaderID);
glAttachShader(ProgramID, FragmentShaderID);
glLinkProgram(ProgramID);

// Check the program
glGetProgramiv(ProgramID, GL_LINK_STATUS, &Result);
glGetProgramiv(ProgramID, GL_INFO_LOG_LENGTH, &InfoLogLength);
std::vector ProgramErrorMessage( max(InfoLogLength, int(1)) );
glGetProgramInfoLog(ProgramID, InfoLogLength, NULL, &ProgramErrorMessage[0]);
fprintf(stdout, "%s\n", &ProgramErrorMessage[0]);
< /code>

Я также пытался пройти (Glint *) vertexshadercode.size () < /code> вместо нуля к параметру длины glshadersource (), но я получаю те же ошибки. Я получаю эти ошибки как при компиляции, так и при связывании < /p>

На случай, если это поможет, я использую OpenGL 3.3, GLEW, GLFW, Visual C ++ 2010 и Windows 7 64 биты < /p>

Подробнее здесь: https://stackoverflow.com/questions/122 ... any-shader
Ответить

Быстрый ответ

" GLSL с любым шейдером [закрыто]" class="inputbox autowidth" />
" GLSL с любым шейдером [закрыто]" />
Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»