2014-10-08 20 views
7

Mac’te, Swift’i kullanıyorum ve OpenGL 3.2’i kullanıyorum. Ben de XCode 6.1 Beta kullanıyorum, bu yüzden bunun en olası açıklama olduğunu düşünüyorum, çünkü bu bana mantıklı gelmiyor.GLSL: "Bildirilmemiş tanımlayıcı çağrısı 'texture2D'"

Bu desteklenmesi gerektiğini herhangi bir kanıt bulamıyorum, ancak bu parça gölgelendirici derleme sırasında hata Invalid call of undeclared identifier 'texture2D' sonuçlandığını:

#version 150 

uniform sampler2D usTexture; 

in vec2 vTextureCoord; 

out vec4 FragColor; 

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

cevap

23

cripes. Sonunda cevabı gönderdikten sonra cevabı buldum. texture2D, texture ile değiştirilmiştir.

+2

Evet, OS X '#version 150'de yalnızca #version 150 core' anlamına gelebileceğini unutmayın. Uyumluluk profillerinin uygulandığı diğer platformlarda, "#version 150 uyumluluğu" yazarsanız, "texture2D" gibi GLSL 1.30'dan başlayarak kullanımdan kaldırılan şeyleri kullanmaya devam edebilirsiniz. Bunu gerçekten istemiyorsun, ama bahsetmeye değer;) –

+0

Bilmek güzel! Teşekkür ederim. – Grumdrig

+0

Teşekkür ederim çok :) – Awais