2014-10-08 11 views
7

Jestem na komputerze Mac, używając Swift i używając OpenGL 3.2. Używam także XCode 6.1 Beta, więc przypuszczam, że jest to najbardziej prawdopodobne wyjaśnienie, ponieważ wydaje mi się, że to nie ma sensu.GLSL: "Nieprawidłowe wywołanie niezadeklarowanego identyfikatora" texture2D ""

nie mogę znaleźć żadnych dowodów, że to nie powinno być obsługiwane, ale ten fragment shader jest w wyniku błędu Invalid call of undeclared identifier 'texture2D' podczas kompilacji:

#version 150 

uniform sampler2D usTexture; 

in vec2 vTextureCoord; 

out vec4 FragColor; 

void main() { 
    vec4 color = texture2D(usTexture, vTextureCoord); 
    FragColor = color; 
} 

Odpowiedz

23

Cripes. W końcu znalazłem odpowiedź zaraz po tym, jak opublikowałem pytanie. texture2D został zastąpiony przez texture.

+2

Tak, należy pamiętać, że na OS X '#version 150' może oznaczać tylko' #version 150 core'. Na innych platformach, na których są zaimplementowane profile zgodności, możesz nadal używać rzeczy, które zostały uznane za przestarzałe, zaczynając od GLSL 1.30, takich jak 'texture2D', jeśli piszesz" #version 150 kompatybilności ". Naprawdę tego nie chcesz, ale warto o tym wspomnieć;) –

+0

Dobrze wiedzieć! Dziękuję Ci. – Grumdrig

+0

Bardzo dziękuję :) – Awais

Powiązane problemy