日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android-NDK-EGL

發布時間:2024/4/17 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android-NDK-EGL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

EGL的定義

EGL是一個接口,它位于渲染API如OpenCL,OpenGL,OpenGL ES和底層系統的中間。EGL提供了用來創建渲染surfaces的機制,在它上面客戶端的api能夠繪制,創建圖像的上下文和同步客戶端api和渲染api。

EGL的操作

EGL的類型

EGLBoolean,EGL_TRUE, EGL_FALSE

EGLint:是一個整數類型

EGLAttrib:是一個整數類型,經常被用來代表句柄和指針的值在屬性列表中。

EGLContext:代表了一個客戶端API的上下文。依賴于客戶端的API,代表一個抽象機器的狀態向量描述了客戶端API和允許執行客戶端的API命令。

EGLIMage:代表了EGLImage對象的句柄。

EGLSurface:是一個不透明的類型,代碼客戶端api可以繪制內容在上面的surface

EGLSync:代表了一個一個sync對象的句柄

EGLTIme:代表以ns為單位的時間

Displays

EGLDisplay是一個抽象的可以被繪制的display。

渲染上下文和繪制的surfaces

EGL的一個目的是:提供一個方式創建客戶端API渲染上下文和把他們關聯到繪制的surfaces.

EGL定義了幾種類型的繪制surface,包括windows(用于onScreen渲染),pbuffers(用于離屏渲染),和pixmaps(用于麗萍渲染到buffer,可以通過原生api進行訪問),統稱為GEGLSurface。

EGLSSurfaces的創建依賴EGLConfig.EGLConfig描述了顏色buffer的深度、類型,量化和輔助buffer(深度,模版 buffers)等。

輔助buffer和EGLSurce相關,不是和上下。如果幾個上下文寫到同一個surface,那么他們講共享這些buffer。

一個上下文必須和一個EGLSurface進行相關,而且是兼容,如果:

1)支持顏色buffer是同樣的類型

2)顏色buffer和輔助buffer是同樣的深度

渲染模式

支持兩種渲染模式:back bufferedhe single bufferd

back buffered:被window和pbuffer surfaces使用。顏色buffer使用的內存由EGL來分配。當client完成畫完一個幀時,這個備份buffer會拷貝到一個可視的窗口,通過eglSwapBuffers.PBuffer有一個備份buffer,但是沒有關聯的window,所以備份buffer不需要拷貝。

sigle buffered的渲染,被pixmap surfaces使用。color buffer的內存分配發生在surface的創建時。當client完成繪制一幀是,這個native pixmap包含最終圖像。

都可以通過eglCopyBuffers來拷貝buffer到指定的pixmap。

原生surface的坐標系統

原生窗口的坐標系統和opengl是相反的。原生窗口的(0,0)坐標在左上角,但是client卻在左下角。client渲染到窗口和pixmpa必須逆轉字節的y坐標,當訪問的顏色buffer在原生窗口時。

EGL Function and Errors

Errors

eglGetError(void)

eglGetPlatformDisplay,

eglInitialize(EGLDisplay dpy,EGLint *major,EGLint *minor);

總結

以上是生活随笔為你收集整理的Android-NDK-EGL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。