Я пытаюсь обновить положение глаз в моем шейдере из моего приложения, но я продолжаю получать ошибку 1281, когда пытаюсь это сделать. У меня нет проблем после инициализации, только когда я впоследствии пытаюсь обновить значения. Вот мой код:
void GraphicsObject :: SendShadersDDS (char vertFile [], char fragFile [],
имя файла []
{
char *vs = NULL,*fs = NULL;
vert = glCreateShader(GL_VERTEX_SHADER);
frag = glCreateShader(GL_FRAGMENT_SHADER);
vs = textFileRead(vertFile);
fs = textFileRead(fragFile);
const char * ff = fs;
const char * vv = vs;
glShaderSource(vert, 1, &vv, NULL);
glShaderSource(frag, 1, &ff, NULL);
free(vs); free(fs);
glCompileShader(vert);
glCompileShader(frag);
program = glCreateProgram();
glAttachShader(program, frag);
glAttachShader(program, vert);
glLinkProgram(program);
glUseProgram(program);
LoadCubeTexture(filename, compressedTexture);
GLint location = glGetUniformLocation(program, "tex");
glUniform1i(location, 0);
glActiveTexture(GL_TEXTURE0);
EyePos = glGetUniformLocation(program, "EyePosition");
glUniform4f(EyePos, EyePosition.X(),EyePosition.Y(),
EyePosition.Z(), 1.0);
DWORD bob = glGetError();
//All is fine here
glEnable(GL_DEPTH_TEST);
}
А вот функция, которую я вызываю для обновления положения глаза:
void GraphicsObject :: UpdateEyePosition (Vector3d & eyePosition) {
glUniform4f(EyePos, eyePosition.X(),eyePosition.Y(),
eyePosition.Z(), 1.0);
DWORD bob = glGetError();
//bob equals 1281 after this call
}
Я попробовал несколько способов обновления переменной, и это последнее воплощение, спасибо за просмотр, все комментарии приветствуются.
ОБНОВЛЕНИЕ: Ошибка на самом деле здесь вообще не происходит, моя ошибка в том, что я предположил, что ошибка действительно возникает, когда я рисую число пружин:
для (int i = 0; i <2; i ++)
{</p>
springs[i].Draw();
}
Когда я рисую первый, все нормально, но я получаю ошибку при вызове второго в точке, где вызывается glEnd () в ответ на glBegin (GL_LINE_STRIP). Приносим извинения за неудобства, так как это была не ошибка, которую я опубликовал, но, по крайней мере, если кто-то хочет знать, как обновить унифицированные переменные, то это здесь.