原來的OpenGL 包涵很多none-effecicent api,OpenGL ES 把所有none-effiicienct api 都拿掉了。
Config
EGLConfig 是要告訴 OpenGL 目前這個hardware platform surface 的 rendering format。
使用 eglGetConfigs( ) 可以取出目前這個platform 所有 support 的 rendering format。
要決定 config 有很多複雜的動作:
詢問目前 platform support 的 config 有哪些。
設定目前要用的config
config 是由一堆 attrib 組成,EGL 用一維 array 來代表:分別是
{attrib1,value1,attrib2,value2...EGL_NONE};
Attrib
EGL_BUFFER_SIZE
Color buffer depth (bit 數)
= RED_SIZE + GREEN_SIZE + BLUE_SIZE + ALPHA_SIZE
輸入Vertex array 與 繪圖
畫圖的動作分成兩部份:
- 將 定義 Vertext Point 的 Array 丟進 OpenGL
- 要 OpenGL 以 XXX 的順序畫圖
- Vertex point array
- Vertex Draw Sequence
第二個資料用 glDrawElements( ) 時傳入。
void glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
其中 size 是每一個 vertex 的 coordinate number -- 就是一個Vertex 需要幾筆資料來表示。因為是3維座標,所以寫 3 (default 是 4).void glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
其中 indices 就是繪出的順序。indices 的內容通常是:
{0,4,1,0,9,4,9,5,4}
這是說,先由點 0,4,1 畫出一個三角形,再用點 0,9,4 話一個,然後是點 9,5,4 的三角形。
沒有留言:
張貼留言