零基礎(chǔ) OpenGL ES 學(xué)習(xí)路線推薦 :OpenGL ES 學(xué)習(xí)目錄 >>OpenGL ES 基礎(chǔ)
成都創(chuàng)新互聯(lián)公司成立與2013年,先為揚中等服務(wù)建站,揚中等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為揚中企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
零基礎(chǔ) OpenGL ES 學(xué)習(xí)路線推薦 :OpenGL ES 學(xué)習(xí)目錄 >>OpenGL ES 特效
零基礎(chǔ) OpenGL ES 學(xué)習(xí)路線推薦 :OpenGL ES 學(xué)習(xí)目錄 >>OpenGL ES 轉(zhuǎn)場
零基礎(chǔ) OpenGL ES 學(xué)習(xí)路線推薦 :OpenGL ES 學(xué)習(xí)目錄>>OpenGL ES 函數(shù)
零基礎(chǔ) OpenGL ES 學(xué)習(xí)路線推薦 :OpenGL ES 學(xué)習(xí)目錄>>OpenGL ES GPUImage 使用
零基礎(chǔ) OpenGL ES 學(xué)習(xí)路線推薦 :OpenGL ES 學(xué)習(xí)目錄>>OpenGL ES GLSL 編程
在講解 EAGLContext 和 EGLContext 之前,我們需要先說明一下 OpenGL 和 OpenGL ES 的關(guān)系
OpenGL(全寫 OpenGraphicsLibrary)是個定義了一個跨編程語言、跨平臺的應(yīng)用程序接口(API)的規(guī)格,它用于生成二維、三維圖像。OpenGL 廣泛用于 PC 平臺(windows、Linux、Unix、Mac OS X);
早先定義 OpenGLES 是 OpenGL 的嵌入式設(shè)備版本,用于移動端平臺(Android、iOS),但由于嵌入式設(shè)備要求的是高性能,所以一些其它純追求高性能的設(shè)備也開始用這種 API 方式;
OpenGL ES 是 OpenGL 的子集,區(qū)別在于 OpenGL ES 刪減了 OpenGL 一切低效能的操作方式,有高性能的決不留低效能的,即只求效能不求兼容性。(即:OpenGL ES 能實現(xiàn)的,OpenGL 也能實現(xiàn);OpenGL 部分 API,OpenGL ES 不支持)
OpenGL ES 是個與硬件無關(guān)的軟件接口,可以在不同的平臺如 Windows、Unix、Linux、MacOS、IOS、Android 之間進行移植。因此,支持 OpenGL ES 的軟件具有很好的移植性,可以獲得非常廣泛的應(yīng)用。
OpenGL 和 OpenGL ES 在不同平臺上有不同的機制以關(guān)聯(lián)窗口系統(tǒng)
1. OpenGL 在 Windows 上是 WGL ,在 Linux 上是 GLX ,在 Apple OS 上是 AGL ;
2. OpenGL ES 在 Windows / Android 上是 EGL,在 IOS 中是 EAGL;
Windows / Android 上是 EGL ,EGL 是渲染 API(如 OpenGL ES)和原生窗口系統(tǒng)之間的接口。通常來說,OpenGL 是一個操作 GPU 的 API,它通過驅(qū)動向 GPU 發(fā)送相關(guān)指令,控制圖形渲染管線狀態(tài)機的運行狀態(tài),但是當涉及到與本地窗口系統(tǒng)進行交互時,就需要這么一個中間層,因此 EGL 被設(shè)計出來,作為 OpenGL 和原生窗口系統(tǒng)之間的橋梁,且它與平臺無關(guān)的。
EGLContext 創(chuàng)建 OpenGL ES 上下文:
/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:OpenGL ES OpenGL ES EAGLContext 和 EGLContext
//@Time:2022/08/04 07:30
//@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!
/******************************************************************************************/
//創(chuàng)建上下文
EGLint contextAttribs[] = { EGL_CONTEXT_CLIENT_VERSION, 3, EGL_NONE };
EGLContext context = eglCreateContext ( display , config , EGL_NO_CONTEXT, contextAttribs );
//綁定上下文
eglMakeCurrent ( display , surface , surface , context )
IOS 平臺為 OpenGL 提供的實現(xiàn)是 EAGL,OpenGL ES 系統(tǒng)與本地窗口(UIKit)橋接由 EAGL 上下文系統(tǒng)實現(xiàn)。
IOS EAGLContext 創(chuàng)建 OpenGL ES 上下文:
/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:OpenGL ES OpenGL ES EAGLContext 和 EGLContext
//@Time:2022/08/04 07:30
//@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!
/******************************************************************************************/
EAGLContext *_context;
_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
EGL OpenGL ES 繪制可以參考以下代碼:
IOS EAGL OpenGL ES 繪制可以參考以下代碼:
本文由博客 - 猿說編程 猿說編程 發(fā)布!
分享標題:OpenGL ES EAGLContext 和 EGLContext
文章位置:http://chinadenli.net/article34/dsoiese.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、電子商務(wù)、手機網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、定制開發(fā)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)