Я немного погуглил и не могу понять, что не так.Мой шейдер:
#version 120
attribute vec2 coord2d;
void main(void)
{
gl_Position = vec4(coord2d, 0.0, 1.0);
}
Этот шейдер, который я знаю, работает, но когда я пытаюсь связать программу, я получаю:
glLinkProgram:Vertex info
-----------
0(3) : error C1013: function "main" is already defined at 0(4)
Я проверил, чтобы убедиться, что мерзости получаютв память правильно, а что нет.они компилируются просто отлично.это шаг связывания, когда что-то идет не так.Я понятия не имею, что, и я уже давно бьюсь об этом.какие-нибудь советы?
Редактировать:
Вот код, который я использую для создания шейдера.он проходит весь путь до условного, фактически завершает выполнение полностью, но журнал выводит на печать то, что вы видели выше.
GLuint updateProg()
{
prog = glCreateProgram();
if (vs == 0 || fs == 0) return 0;
glAttachShader(prog, vs);
glAttachShader(prog, fs);
int link_ok;
glLinkProgram(prog);
glGetProgramiv(prog, GL_LINK_STATUS, &link_ok);
if (!link_ok)
{
fprintf(stderr, "glLinkProgram:");
print_log(prog);
return 0;
}
return prog;
}