天天看點

OpenGL ES Shader相關API 總結【0】——擷取繪制資訊

擷取繪制資訊

======================

EGL的API作用分類:

用于與手機關聯并擷取手機支援的配置資訊

用于根據需要生成手機支援的surface和context,并對surface和context進行關聯

用于指定使用哪個版本的OpenGL ES,并與OpenGL ES建立關聯

用于操作EGL上紋理,以及與多線程相關的進階功能

其他用處

常用API如下:

1.

EGLint eglGetError(void);      

功能:用于傳回目前thread,如果EGL的API出錯的話,最近一個錯誤所對應的錯誤代碼

輸出:錯誤代碼

2.

EGLDsiplay eglGetDisplay(EGLNativeDisplayType display_id);      

功能:從EGL運作的作業系統中擷取一個Display(擷取手機螢幕)

輸入:從作業系統中,得知的Display的ID

輸出:用于顯示圖檔繪制的Display

3.

EGLBoolean eglInitalize(EGLDisplay dpy, EGLint *major, EGLint *minor);      

功能:針對某display初始化一個某版本的EGL

輸入:使用Display的handle特指某個Display,major和minor共同用于指定EGL的版本

輸出:EGL初始化成功或者失敗

4.

EGLBoolean eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config)      

功能:擷取某display支援的配置資訊

輸入:display的handle,一個用于儲存配置資訊的指針,指針中存放的配置資訊的數量,某display支援的配置資訊數量

輸出:配置資訊擷取成功或者失敗

5.

EGLBoolean eglChooseConfig(EGLDisplay dpy, const EGLint * attrib_list, EGLConfig* configs, ELGint config_size, EGLint * num_config)      

功能:擷取與需求比對,且某display支援的配置資訊(根據開發者的需要,擷取一種手機支援的buffer格式)

輸入:display的handle,用于比對使用的需求資訊,一個用于儲存比對資訊的指針,指針中存放的配置資訊的數量,比對配置資訊的數量

輸出:比對的配置資訊擷取成功或者失敗

6.

EGLSurface eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list);      

功能:建立一個可以顯示在螢幕上的rendering surface(根據擷取的格式,建立handle,用于包含手機系統提供的繪制所需的buffer)

輸入:display的handle,用于建立surface的配置資訊,視窗資訊的handle,額外的需求資訊

輸出:建立的rendering surface的handle

7.  

EGLBoolean eglBindAPI(EGLenum api)      

功能:設定目前thread的繪制API(用于指定使用的繪制語言:EGL_OPENGL_ES_API)

輸入:支援的繪制API

輸出:API設定成功或者失敗

8.

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

功能:針對目前的繪制API建立一個rendering context(建立調色闆,用于儲存狀态集)

輸入:display的handle,用于建立context的配置資訊,指定一個context使得建立的context與其share,額外的需求資訊

輸出:建立的rendering context的handle

9.

EGLBoolean eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)      

功能:将指定的context綁定到目前thread以及讀和寫的surface上(将建立的surface和context啟動)

輸入:display的handle,用于寫入的surface,用于讀取的surface,指定的context

10.

EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)      

功能:将surface中的color buffer顯示到螢幕上(用于将繪制完畢的buffer與手機螢幕上顯示的buffer進行交換)

輸入:display的handle,将會被展示的surface

輸出:顯示成功或者失敗

11.

EGLBoolean eglTerminate(EGLDisplay dpy)      

功能:将某display對應的EGL相關的資源釋放

輸入:使用Display的handle特指某個display

輸出:釋放EGL相關資源成功或者失敗

繼續閱讀