2014-10-08 12 views
7

Sono su un Mac, uso Swift e utilizzo di OpenGL 3.2. Sto anche usando XCode 6.1 Beta quindi suppongo che sia la spiegazione più probabile, perché non mi sembra che abbia senso.GLSL: "Chiamata invalida dell'identificatore non dichiarato 'texture2D'"

non riesco a trovare alcuna prova che questo non dovrebbe essere supportato, ma questo frammento shader è conseguente l'errore Invalid call of undeclared identifier 'texture2D' durante la compilazione:

#version 150 

uniform sampler2D usTexture; 

in vec2 vTextureCoord; 

out vec4 FragColor; 

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

risposta

23

Cripes. Finalmente ho trovato la risposta subito dopo aver postato la domanda. texture2D è stato sostituito da texture.

+2

Sì, sii consapevole che su OS X '#version 150' può significare solo' #version 150 core'. Su altre piattaforme in cui vengono implementati i profili di compatibilità, è possibile continuare a utilizzare elementi deprecati a partire da GLSL 1.30 come 'texture2D' se si scrive' #version 150 compatibility'. Davvero non lo vuoi, ma vale la pena menzionarlo;) –

+0

Buono a sapersi! Grazie. – Grumdrig

+0

Grazie mille! :) – Awais