2014-10-08 14 views
7

Tôi đang sử dụng máy Mac, sử dụng Swift và sử dụng OpenGL 3.2. Tôi cũng đang sử dụng XCode 6.1 Beta vì vậy tôi cho rằng đó là giải thích có khả năng nhất, bởi vì nó không có vẻ như tôi như thế này có ý nghĩa.GLSL: "Cuộc gọi không hợp lệ số nhận dạng không khai báo 'texture2D'"

tôi không thể tìm thấy bất kỳ bằng chứng cho thấy điều này không nên được hỗ trợ, nhưng đoạn đổ bóng này đang dẫn đến lỗi Invalid call of undeclared identifier 'texture2D' trong biên soạn:

#version 150 

uniform sampler2D usTexture; 

in vec2 vTextureCoord; 

out vec4 FragColor; 

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

Trả lời

23

Cripes. Cuối cùng tìm thấy câu trả lời ngay sau khi tôi đăng câu hỏi. texture2D đã được thay thế bằng texture.

+2

Có, lưu ý rằng trên OS X '#version 150' chỉ có thể có nghĩa là' #version 150 core'. Trên các nền tảng khác, nơi các cấu hình tương thích được triển khai, bạn có thể tiếp tục sử dụng những thứ không được chấp nhận bắt đầu trong GLSL 1.30, chẳng hạn như 'texture2D' nếu bạn viết' #version 150 compatibility'. Bạn thực sự không muốn điều đó, nhưng nó đáng nói đến;) –

+0

Điều cần biết! Cảm ơn bạn. – Grumdrig

+0

Cảm ơn bạn rất nhiều :) – Awais

Các vấn đề liên quan