我更新了我的顯卡驅動程序以支持openGL 4,因此不推薦使用像glBegin這樣的函數將無法工作。但是,當我運行一個簡單的三角形程序時,glBegin仍然像以前一樣工作。 glBegin仍然由openGL 4支持,或者我錯過升級到openGL 4的一些步驟嗎?困惑於openGL版本
2
A
回答
5
只需用支持OpenGL 4.x的驅動程序並不意味着你將失去早期版本的功能。用OpenGL 3.2 核心和兼容性型材的概念開始被引入,而這正是現代棄用之間的距離,實際起作用。
在核心配置文件,你提到的東西,如glBegin
是無效的。但是,在兼容性配置文件中,您可以繼續將API的棄用部分與新部件混合匹配。絕大多數新的OpenGL功能不能保證與API的棄用部分一起工作,很大程度上是因爲大多數新功能都以某種方式與GLSL和可編程管道相關。
現在,當你討論喜歡Mac OS X的平臺,OS X 10.7開始事情變得更加複雜了一點,蘋果開始支持OpenGL 3.2。然而,他們以這樣一種方式設計它們的實現方式,即訪問OpenGL 3.2功能的方式是獲得核心配置文件。他們繼續支持傳統的OpenGL 2.1實現,因此舊軟件不必重寫,但爲了利用OS X上的任何OpenGL 3.2+特性,您必須先裝備所有已棄用的功能。
事實上,平臺一般都設計成你確實有做上下文創建期間額外工作,以獲得核心輪廓。除非你明確要求核心,你會得到兼容性(或在OS X的情況下,實施OpenGL 2.1)。這是一種使現有軟件儘可能無痛的整體折舊模型的方法。
2
「過時」並不一定意味着「它不會工作」,這意味着,供應商可以自由地實現它所要與硬件賣「因爲標準這麼說你不應該使用它」;許多品牌仍然在其自己的庫中提供不推薦的OpenGL上下文和函數。
相關問題
- 1. 困惑於GLSL和OpenGL
- 2. 關於Min SDK版本的困惑
- 3. 關於OpenGL內存管理的困惑
- 4. 關於OpenGL座標系統的困惑
- 5. 困惑於recv()
- 6. 困惑於JavaScript
- 7. 困惑於macports
- 8. 困惑於httpd
- 9. 困惑於JNDI
- 10. 困惑於libjpeg:jpeg_read_scanlines
- 11. capistrano版本3升級困惑
- 12. 困惑於教程
- 13. 困惑於iPhone 7
- 14. 困惑於event.type Lua
- 15. 關於ActionMailer RoR的基本困惑
- 16. 關於OpenGL不變限定符的困惑
- 17. Task.Factory.StartNew - 關於池的困惑
- 18. 困惑於nvarchar限制
- 19. 困惑於nearID,farID,nearNonce等
- 20. 困惑於Html.AttributesFor(m => m.Name))
- 21. 關於MutationObserver的困惑
- 22. 關於objc_getClass的困惑
- 23. 困惑於NSString不變性
- 24. 關於DBus的困惑
- 25. 關於AverageTimer32 PerformanceCounter的困惑
- 26. 困惑於Rails has_and_belongs_to_many協會
- 27. 關於Thread.Join的困惑
- 28. 關於MusicService的困惑
- 29. 關於printf輸出困惑
- 30. 關於結構的困惑