Tôi đang gặp sự cố khi cập nhật tiêu đề GL của mình. Về cơ bản tôi muốn truy cập chức năng glCompressedTexImage2D
nhưng tiêu đề gl của tôi thực sự cũ và tôi không tin rằng chức năng đó tồn tại trong các tiêu đề đó. Vì vậy, tôi đã cố gắng để cập nhật tập tin gl.h
của tôi nhưng tôi nhận được vô số lỗi. Tôi đã thử cập nhật phần mềm cạc đồ họa của mình trong số những thứ khác. Bất cứ ai có thể được giúp đỡ?opengl, cách cập nhật tiêu đề tốt nhất với studio trực quan?
Trả lời
Rõ ràng, Windows bị kẹt trên phiên bản OpenGL cũ (1.2?). Hãy thử sử dụng GLEW hoặc Glee để tải tiện ích mở rộng cần thiết (GL_ARB_TEXTURE_COMPRESSION trong trường hợp glCompressedTexImage2D
). Các thư viện này sẽ tải các tiện ích có sẵn và cho phép bạn kiểm tra mã của mình nếu tiện ích mở rộng cụ thể được tải hay không.
Ví dụ với GLEE:
#include <gl/GLee.h>
if (GLEE_ARB_TEXTURE_COMPRESSION)
{
glCompressedTexImage2D(...);
}
else
{
// the extension is not available, use a different method
}
Lưu ý rằng GLEE không yêu cầu bạn phải khởi tạo một cách rõ ràng (không giống như GLEW). Tôi khuyên bạn nên sử dụng phương pháp này bằng cách tải thủ công một con trỏ hàm. Không phải vì đó là câu trả lời của tôi :), nhưng bởi vì điều này cũng sẽ chăm sóc tìm ra nếu phần cứng và trình điều khiển của nó hỗ trợ phần mở rộng (có thể rất lộn xộn), và nó là nền tảng độc lập.
Bạn cần phải tìm hiểu xem thiết bị hiện hỗ trợ các chức năng, và sau đó nhận được địa chỉ của hàm trước khi bạn có thể gọi nó là:
PFNGLCOMPRESSEDTEXIMAGE2DPROC p = NULL;
const char* string = glGetString(GL_EXTENSIONS);
if (strstr(string, "GL_ARB_texture_compression") != NULL)
p = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)wglGetProcAddress("glCompressedTexImage2D");
Tôi đang gặp một chút của một vấn đề cập nhật tiêu đề GL của tôi.
Đó là vì bạn không được phép làm điều này. Trong Windows, bất kỳ thứ gì ngoài OpenGL-1.1 đều được thu thập thông qua cơ chế mở rộng. Cách dễ nhất để truy cập thông tin này là thông qua GLEW. Cài đặt và sử dụng số này GL/glew.h
thay vì số GL/gl.h
thông thường. Sau đó, sau khi một bối cảnh OpenGL đã được tạo ra, điều đầu tiên cần gọi là glewInit()
.
Chuyển đến: http://www.opengl.org/registry/ và tải về phiên bản mới nhất của glext.h và wglext.h
Bây giờ bạn sẽ có thể tự lấy con trỏ hàm để tính năng mà bạn muốn. Trong Windows chỉ có OpenGL 1.1.
Đối với người mới bắt đầu tôi khuyên bạn nên sử dụng GLEW (GLEE cũng là rất tốt nhưng chưa được cập nhật trong một thời gian khá dài ...)
- 1. Cách tốt nhất để mua studio trực quan
- 2. cách tốt nhất để thêm jquery vào một dự án web "trống" trong studio trực quan?
- 3. Cách tốt nhất để truy cập pixel trong OpenGL?
- 4. Mở rộng studio trực quan
- 5. Không thể bao gồm tệp tiêu đề std trong studio trực quan 2008
- 6. Sử dụng studio trực quan để xác định rằng bản dựng được cập nhật là gì?
- 7. C++ trực quan nhân vật Studio mã hóa vấn đề
- 8. Sự kiện cập nhật QWidget nhưng không cập nhật trực quan
- 9. Trực quan hóa các đối tượng 4D trong OpenGL
- 10. Công cụ tốt nhất để trực quan hóa ontology?
- 11. AngularJS - Cách tốt nhất để cập nhật thông số tuyến $
- 12. trực quan tập tin log Studio
- 13. Cách tốt nhất để cập nhật trong LINQ to SQL
- 14. Cách tốt nhất để thực hiện TDD trong các phiên bản nhanh của studio trực quan (ví dụ: VB Express)
- 15. OrchardCMS kéo xuống studio trực quan
- 16. Cách tốt nhất để cập nhật thực thể trong JPA
- 17. Cập nhật kết cấu trong OpenGL với glTexImage2D
- 18. Chỉ định cách cmake tạo dự án studio trực quan
- 19. Phát triển nodej với studio trực quan 2010
- 20. thực hành tốt nhất ghi nhật ký khách quan
- 21. Tại sao studio trực quan lại thu hút các sự kiện quan trọng trước autohotkey?
- 22. Lỗi _ITERATOR_DEBUG_LEVEL trong studio trực quan
- 23. Dự án studio trực quan cho MonoDevelop
- 24. Làm cách nào để liên kết nhiều giải pháp studio trực quan với nhau?
- 25. hướng dẫn sử dụng studio trực quan
- 26. WebApi2 trong studio trực quan 2012
- 27. lưu trạng thái studio trực quan
- 28. chiến lược cập nhật tốt nhất trên hibernate stalestateException
- 29. dán bản sao studio trực quan
- 30. angularjs intellisense trong studio trực quan
Lưu ý rằng GLEE là không còn tồn tại và không còn được cập nhật. Nó dừng lại ở GL 3.3; đã có 6 phiên bản OpenGL được phát hành kể từ đó. Vì vậy, tuy nhiên nhiều bạn có thể thích phong cách, bạn không nên sử dụng nó. Có [một số lựa chọn thay thế để tải các chức năng OpenGL] (http://www.opengl.org/wiki/OpenGL_Loading_Library). –
Cảm ơn bạn đã đứng đầu. –