版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2017.09.28 |
前言
OpenGL ES是一個強大的圖形庫,是跨平臺的圖形API,屬于OpenGL的一個簡化版本。iOS系統可以利用OpenGL ES將圖像數據直接送入到GPU進行渲染,這樣避免了從CPU進行計算再送到顯卡渲染帶來的性能的高消耗,能帶來來更好的視頻效果和用戶體驗。接下來幾篇就介紹下iOS 系統的 OpenGL ES框架。
框架基本結構
下面首先看一下該框架的基本信息。
使用OpenGL的緊湊,高效的子集創建3D和2D圖形效果。
OpenGL ES
為硬件加速的2D和3D圖形渲染提供了一個基于C的接口。 iOS中的OpenGL ES
框架(OpenGLES.framework)
提供OpenGL ES規范版本1.1,2.0和3.0的實現。
該文檔集合描述了iOS設備上的OpenGL ES平臺特定的API,也稱為EAGL
。 EAGL提供封裝所有OpenGL ES狀態的圖形上下文,以及將Core Animation
層配置為OpenGL ES繪圖命令的目標位置的能力。 EAGL還允許OpenGL ES對象(如紋理,渲染緩沖區和幀緩沖區)在兩個或多個圖形上下文之間共享。
Khronos集團維護OpenGL ES規范和跨平臺OpenGL ES API的參考資料:
- OpenGL ES API Registry是Khronos集團提供的OpenGL ES規范和擴展文檔的官方存儲庫。
- 有關
OpenGL ES API
和OpenGL ES著色語言
的完整參考,請參閱計劃使用的OpenGL ES版本集合:
下面我們就看一下OpenGL ES框架的基本結構。
框架詳細結構模塊
1. Classes
-
-
EAGLContext
對象管理OpenGL ES呈現上下文 - 使用OpenGL ES繪制所需的狀態信息,命令和資源。 要執行OpenGL ES命令,您需要一個當前的渲染上下文。
-
-
-
EAGLSharegroup
對象管理與一個或多個EAGLContext對象相關聯的OpenGL ES資源。 當EAGLContext對象被初始化并在引用它的最后一個EAGLContext對象被釋放時,EAGLSharegroup
對象被創建。 作為一個不透明的對象,沒有開發人員可訪問的API。
-
2. Protocols
-
EAGLDrawable
- 實現
EAGLDrawable
協議的iOS對象可以用作渲染表面,并由EAGLContext對象顯示給屏幕。 在iOS 2.0中,此協議僅由CAEAGLLayer類實現,但在將來其他類可能選擇實現該協議。 EAGLDrawable協議不是由iOS以外的對象實現的。
- 實現
3. Reference
-
- 本文檔介紹了OpenGL ES框架中的函數。
4. Related Documentation
后記
未完,待續~~~