真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

OpenGL ES EGL eglSwapBuffer

目錄

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、大方網(wǎng)絡(luò)推廣、微信平臺(tái)小程序開(kāi)發(fā)、大方網(wǎng)絡(luò)營(yíng)銷(xiāo)、大方企業(yè)策劃、大方品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供大方建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com

  • 一. EGL 前言
  • 二. EGL 繪制流程簡(jiǎn)介
  • 三.eglSwapBuffer 函數(shù)簡(jiǎn)介
  • 四.關(guān)于多個(gè) EGLContext
  • 五.共享 EGLContext
  • 六.猜你喜歡

零基礎(chǔ) OpenGL ES 學(xué)習(xí)路線推薦 : OpenGL ES 學(xué)習(xí)目錄 >> OpenGL ES 基礎(chǔ)

零基礎(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ǎng)

零基礎(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 編程

一. EGL 前言

EGLNativeDisplayType – 系統(tǒng)顯示類型,標(biāo)識(shí)你所開(kāi)發(fā)設(shè)備的物理屏幕,DX/OPenGL ES/Metal/Vulkan….

EGLNativeWindowType – 系統(tǒng)窗口,渲染顯示的窗口句柄

EGLDisplay – 關(guān)聯(lián) EGLNativeDisplayType 系統(tǒng)物理屏幕的通用數(shù)據(jù)類型,是平臺(tái)上 WGL / GLX / AGL 的等價(jià)物

EGLSurface – 渲染區(qū)域,相當(dāng)于 OpenGL ES 繪圖的畫(huà)布 (一塊內(nèi)存空間),用戶想繪制的信息首先都要先繪制到 EGLSurface 上,然后通過(guò) EGLDisplay 顯示

EGLConfig – 對(duì) EGLSurface 的 EGL 配置,可以理解為繪制目標(biāo) framebuffer 的配置屬性

EGLContext – OpenGL ES 圖形上下文

二. EGL 繪制流程簡(jiǎn)介

  1. 獲取 EGL Display 對(duì)象:eglGetDisplay
  2. 初始化與 EGLDisplay 之間的連接:eglInitialize
  3. 獲取 EGLConfig 對(duì)象:eglChooseConfig / eglGetConfigs
  4. 創(chuàng)建 EGLContext 實(shí)例:eglCreateContext
  5. 創(chuàng)建 EGLSurface 實(shí)例:eglCreateWindowSurface / eglCreatePbufferSurface
  6. 連接 EGLContext 和 EGLSurface 上下文 eglMakeCurrent
  7. 使用 OpenGL ES API 繪制圖形:gl_*
  8. 切換 front buffer 和 back buffer 顯示:eglSwapBuffer
  9. 斷開(kāi)并釋放與 EGLSurface 關(guān)聯(lián)的 EGLContext 對(duì)象:eglRelease
  10. 刪除 EGLSurface 對(duì)象
  11. 刪除 EGLContext 對(duì)象
  12. 終止與 EGLDisplay 之間的連接

三.eglSwapBuffer 函數(shù)簡(jiǎn)介

前面有介紹:

EGLDisplay – 關(guān)聯(lián) EGLNativeDisplayType 系統(tǒng)物理屏幕的通用數(shù)據(jù)類型,是平臺(tái)上 WGL / GLX / AGL 的等價(jià)物

EGLSurface – 渲染區(qū)域,相當(dāng)于 OpenGL ES 繪圖的畫(huà)布 (一塊內(nèi)存空間),用戶想繪制的信息首先都要先繪制到 EGLSurface 上,然后通過(guò) EGLDisplay 顯示

EGLSurface 作為內(nèi)存中的畫(huà)布(不可見(jiàn)),EGLDisplay 作為顯示器輸出顯示(可見(jiàn))**,而 eglSwapBuffer 作用就是把內(nèi)存 EGLSurface** **中畫(huà)布中的數(shù)據(jù)交換到 EGLDisplay ,輸出到屏幕顯示繪制的內(nèi)容**

/*描述:把內(nèi)存 EGLSurface 中畫(huà)布中的數(shù)據(jù)交換到 EGLDisplay ,輸出到屏幕顯示繪制的內(nèi)容
 *參數(shù):
 *    display:指定顯示的連接
 *    surface:EGL 繪圖表面
 *
 *返回值:成功是返回 EGL_TRUE,失敗時(shí)返回 EGL_FALSE
 */


EGLBoolean eglSwapBuffers(EGLDisplay display,
                          EGLSurface surface);

四.關(guān)于多個(gè) EGLContext

某些情況下,我們想創(chuàng)建、使用多個(gè) EGLContext ,對(duì)于這種情況,需要注意以下幾個(gè)情況:

  • 不能在 2 個(gè)線程里綁定同一個(gè) EGLContext
  • 不能在 2 個(gè)不同的線程里,綁定相同的 EGLSurface 到 2 個(gè)不同的 EGLContext 上。
  • 在 2 個(gè)不同的線程里,綁定 2 個(gè)不同 EGLSurface 到 2 個(gè) EGLContext 上,取決于使用的 GPU 的具體實(shí)現(xiàn),可能成功,也可能失敗。

五.共享 EGLContext

共享 EGLContext 這種方式在加載階段很有用。由于上傳數(shù)據(jù)到 GPU(尤其是紋理數(shù)據(jù)(textures))這類操作很重,如果想要維持幀率穩(wěn)定,應(yīng)該在另一個(gè)線程進(jìn)行上傳。

然而,對(duì)于上面多個(gè) EGLContext 的 3 種情況的限制,必須在第一個(gè) EGLContext 之外,創(chuàng)建第二個(gè) EGLContext ,這個(gè) EGLContext 將使用第一個(gè) EGLContext 使用的內(nèi)部狀態(tài)信息。這兩個(gè) Context 即共享 Context 上下文。

需要注意的是:這**兩個(gè) EGLContext 共享的只是內(nèi)部狀態(tài)信息,它們兩個(gè)并不共享調(diào)用緩存(每個(gè) EGLContext** 各自擁有一個(gè)調(diào)用緩存)。

創(chuàng)建第二個(gè) EGLContext 的方法:

/*描述:創(chuàng)建 OpenGL ES 上下文 EGLContext
 *參數(shù):
 *    display:指定顯示的連接
 *    config:配置 EGLConfig
 *    share_context:允許其它 EGLContext 共享數(shù)據(jù),使用 EGL_NO_CONTEXT 表示不共享
 *    attribList:指定操作的屬性列表,只能接受一個(gè)屬性 EGL_CONTEXT_CLIENT_VERSION(設(shè)置 OpenGL ES 版本)
 *
 *返回值:成功時(shí)返回新創(chuàng)建的 EGLContext,失敗時(shí)返回 EGL_NO_CONTEXT
 */

EGLContext eglCreateContext(
    EGLDisplay display,
    EGLConfig config,
    EGLContext share_context,
    EGLint const * attrib_list);

注意:第三個(gè)參數(shù) share_context 是最重要的,它就是第一個(gè) Context ,表示共享上下文

在第二個(gè)線程,不進(jìn)行任何的繪制,只進(jìn)行上傳數(shù)據(jù)到 GPU 的操作。所以,給第二個(gè) Context 的 Surface 應(yīng)該是一個(gè)像素緩沖 (pixel buffer) Surface。

/******************************************************************************************/
//@Author:猿說(shuō)編程
//@Blog(個(gè)人博客地址): www.codersrc.com
//@File:OpenGL ES EGL eglCreatePbufferSurface
//@Time:2022/08/04 07:30
//@Motto:不積跬步無(wú)以至千里,不積小流無(wú)以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!
/******************************************************************************************/

EGLSurface eglCreatePbufferSurface(
    EGLDisplay display,
    EGLConfig config,
    EGLint const * attrib_list);

六.猜你喜歡

  1. OpenGL ES 簡(jiǎn)介
  2. OpenGL ES 版本介紹
  3. OpenGL ES 2.0 和 3.0 區(qū)別
  4. OpenGL ES 名詞解釋(一)
  5. OpenGL ES 名詞解釋(二)
  6. OpenGL ES GLSL 著色器使用過(guò)程
  7. OpenGL ES EGL 簡(jiǎn)介
  8. OpenGL ES EGL 名詞解釋
  9. OpenGL ES EGL eglGetDisplay
  10. OpenGL ES EGL eglInitialize
  11. OpenGL ES EGL eglGetConfigs
  12. OpenGL ES EGL eglChooseConfig
  13. OpenGL ES EGL eglGetError
  14. OpenGL ES EGL eglCreateContext
  15. OpenGL ES EGL eglCreateWindowSurface
  16. OpenGL ES EGL eglCreatePbufferSurface
  17. OpenGL ES EGL eglMakeCurrent
  18. OpenGL ES EGL eglSwapBuffer

本文由博客 - 猿說(shuō)編程 猿說(shuō)編程 發(fā)布!


分享標(biāo)題:OpenGL ES EGL eglSwapBuffer
本文來(lái)源:http://weahome.cn/article/dsoieos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部