Określenie wersji GLSL powoduje błąd składni podczas korzystania z LWJGL. Nie próbowałem odtworzyć tego problemu poza LWJGL. Dzieje się to na wielu komputerach Mac z systemem Lion.GLSL #version daje błąd składni (LWJGL na komputerze Mac)
Dostałem zarówno shaderów wierzchołków i fragmentów do pracy bez użycia #version
. Ale zamierzam użyć funkcji texture
, która wydaje się wymagać dyrektywy #version
.
Oto najprostszy braku przykład:
#version 120
void main() {
gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
}
Kompilacja Ten fragment shader i nazywając glGetShaderInfoLog
daje ten błąd:
ERROR: 0:1: '' : syntax error #version
Wymiana 120
z niczym innym, jak 110
, daje również błąd. Co ciekawe, jeśli używam 130 lub więcej, daje to ten sam błąd plus skargę na temat wersji, która nie jest obsługiwana. (Wiem, że mój system nie ma GLSL 1.3, ale nadal jest dziwne, że ten błąd jest wyświetlany, gdy kompilator działa tak, jakby nie rozumiał znacznika wersji.)
Jestem na komputerze Mac z kartą ATI Radeon HD 4670. GL_VERSION
to 2.1 ATI-7.12.9
i GL_SHADING_LANGUAGE_VERSION
jest 1.20
.
Biorąc to pod uwagę, nie widzę żadnego powodu, dla którego GLSL 1.20 powinien być niedostępny. I naprawdę dziwne jest dla mnie twierdzenie, że #version
jest błędem składni, w przeciwieństwie do wypowiedzenia czegoś na temat nieobsługiwanej wersji GLSL.
Gdzie jest twój kod ładujący modułu cieniującego? –
Mogę wkleić, że raz mam internet. (Korzystając teraz z mojego telefonu.) Czy kod źródłowy thab byłby pomocny? – rlkw1024