GLSL có bộ tiền xử lý kiểu C đầy đủ. Điều duy nhất không hoạt động là #include. Một trong những tính năng tuyệt vời là bạn có thể sử dụng #ifdef để bình luận các chức năng và do đó tạo ra một shader có thể được làm mỏng ra nếu một số tính năng không được sử dụng.Xác định bên ngoài Macro tiền xử lý trong GLSL
Câu hỏi của tôi là:
Có cách nào để xác định một macro từ mã C?
Dường như không có cách nào để làm điều đó với giao diện OpenGL. Việc hack nhanh là thêm một vài dòng với #define FOO trước khi tệp biểu mẫu được nạp mã. Nhưng có vẻ như ngược lại.
Đây là giải pháp hợp lệ, nhưng không tốt hơn nhiều so với việc thêm mã nguồn. – rioki
tốt, nó phụ thuộc vào những gì bạn đang sau. Điều này là tốt để ngăn chặn một số phân bổ bộ nhớ bổ sung và sao chép (đó là lý do tại sao tôi sẽ xem xét các giải pháp hack trước). Điều gì sẽ tốt hơn cho bạn, và tại sao? – Bahbar
Tôi nghĩ nhiều hơn dọc theo dòng 'glDefine (" Moo "," Foo ")' ... nhưng có vẻ như tôi đã nghiên cứu các thông số kỹ thuật đúng cách ... – rioki