Tôi đang viết chương trình phụ thuộc vào OpenGL 2.0 trở lên. Nhìn vào các thông số kỹ thuật của GL 2.0 tôi thấy rằng phần mở rộng được xác định trong ARB_shader_objects đã được quảng cáo mà tôi cho rằng có nghĩa là tiền tố ARB không cần thiết cho GL phiên bản 2.0 trở lên và bất kỳ hỗ trợ thực hiện nào> GL2.0 sẽ có điều này như một phần của việc triển khai lõi.Xác định GL_GLEXT_PROTOTYPES và nhận các con trỏ hàm
Có nói rằng khi tôi biên dịch chương trình gcc của tôi trên Linux, hãy cảnh báo: khai báo ngầm định hàm. Một cách để có được các hàm này là khai báo chúng trong chính chương trình và sau đó lấy các con trỏ hàm thông qua hàm GetProcAddress.
Cách khác là xác định GL_GLEXT_PROTOTYPES trước khi bao gồm glext.h làm giảm sự cố khi nhận các con trỏ hàm cho mỗi hàm theo mặc định hiện có trong GL2.0 hoặc cao hơn. Ai đó có thể vui lòng đề nghị nếu đó là một đề nghị và đúng cách? Dòng cơ sở là chương trình của tôi yêu cầu OpenGL 2.0 hoặc cao hơn và tôi không muốn hỗ trợ bất cứ điều gì ít hơn GL2.0.
Chỉ trong trường hợp ai đó gợi ý sử dụng glee hoặc glew, tôi không muốn sử dụng/có tùy chọn sử dụng thư viện glee hoặc glew để đạt được điều tương tự.
IIRC Vista trở lên cải thiện tình hình * một chút * bằng cách xuất 1.4. – genpfault
@genpfault: không, họ không có. Vista chỉ sử dụng D3D thay vì một rasterizer sw cho mặc định 1.1 renderer, nhưng nếu không, nó vẫn như cũ. GL1.1 chỉ đơn giản là một phần của API Win32 và chưa bao giờ được cập nhật. – derhass
Điều gì về việc xác định GL_EXT_PROTOTYPES và sử dụng các chức năng mà không làm GetProcAddress cho tất cả chúng? Nó không được khuyến khích? Nếu không thì tại sao tất cả nó là một phần của tiêu đề glext? Hơn nữa đối với chức năng cốt lõi nếu người ta phải làm GetProcAddress mọi lúc, thì mục đích của việc họ được quảng cáo là chức năng cốt lõi là gì? – Divick