При попытке использования glUseProgramObjectARB
я получаю ошибку "недопустимая операция", и я не знаю, почему.
Шейдерные программы загружаются правильно, я вполне уверен. Это показано на glGetInfoLogARB
:
- Вершинный шейдер был успешно скомпилирован для работы на оборудовании.
- Фрагментный шейдер был успешно скомпилирован для работы на этом оборудовании.
До этой команды не было ошибок openGL. Так что проблема с этой конкретной командой определенно является проблемой.
Я использую glew с SDL. Я раньше использовал GLee, и у меня возникла та же проблема.
Чтение документации Я предполагаю, что это ошибка:
GL_INVALID_OPERATION генерируется, если программа не может быть частью текущего состояния.
но я не уверен точно, что могло вызвать такую вещь. Команда выдается в рабочем контексте openGL, так как все предыдущие команды шейдеров работают нормально. Он не находится между блоком «начало» и «конец».
Действительно, я в тупике, что бы это могло значить. Возможно, есть более конкретный случай, когда команда не может быть введена. Если кто-нибудь знает что-то еще, это было бы здорово.
EDIT:
Решено: о боже, это было задержка, я пропускал возврат по одному из моих вызовов функций в другом месте и поэтому не передавал обратно программу, которую я построил.