擷取繪制資訊
======================
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相關資源成功或者失敗