Задание версии GLSL дает синтаксическую ошибку при использовании LWJGL. Я не пытался воспроизвести этот вопрос вне LWJGL. Это происходит на нескольких компьютерах Mac, на которых работает Lion.GLSL #version дает синтаксическую ошибку (LWJGL на Mac)
У меня есть как вершинные, так и фрагментарные шейдеры для работы без использования #version
. Но я собираюсь использовать функцию texture
, которая, как представляется, требует директивы #version
.
Вот простейший провал пример:
#version 120
void main() {
gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
}
Компиляция фрагмента шейдер и вызова glGetShaderInfoLog
дает эту ошибку:
ERROR: 0:1: '' : syntax error #version
Замена 120
с чем-нибудь еще, например, 110
, также дает ошибку. Любопытно, однако, если я использую 130 или выше, он дает ту же ошибку плюс жалобу на версию, не поддерживаемую beig. (я знаю, что моя система не имеет GLSL 1.3, но все же странно, что эта ошибка отображается, когда компилятор работает так, как будто он не понимает тег версии.)
Я нахожусь на Mac с ATI Radeon HD 4670. GL_VERSION
- 2.1 ATI-7.12.9
и GL_SHADING_LANGUAGE_VERSION
- 1.20
.
Учитывая, что я не вижу причин, по которым GLSL 1.20 должен быть недоступен. И мне очень странно, что он говорит, что #version
является синтаксической ошибкой, а не чем-то вроде неподдерживаемой версии GLSL.
Где находится код загрузки вашего шейдера? –
Я могу вставить это, как только у меня есть интернет. (Использование моего телефона прямо сейчас.) Будет ли полезен исходный код thab? – rlkw1024