EGL
EGL 是介於諸如OpenGL 或OpenVG的Khronos渲染API與底層本地平臺窗口系統的接口。它被用於處理圖形管理、表面/緩衝捆綁、渲染同步及支援使用其他Khronos API進行的高效、加速、混合模式2D和3D渲染。
EGL提供了OpenGL ES 3.0和運行在計算機上的原生窗口系統之間的一個“結合”層次。(爲了平臺無關性)
int esMain(ESContext *esContext ) 入口點
在DirectX中,頂點shader叫做vertex shader,像素shader叫做pixel shader;
在OpenGL中,頂點shader也叫做vertex shader,但像素shader叫做fragment shader。
不同的着色器編譯爲一個着色器對象之後,它們必須連接到一個程序對象並一起鏈接,才能繪製圖形。
程序對象連接多個着色器對象(類似c語言的編譯器和鏈接器)每個程序對象必須連接一個頂點着色器和一個片段着色器(不多不少)
獲得鏈接後的着色器對象包括6個步驟:
1.創建一個頂點着色器對象和一個片段着色器對象。
2.將源代碼連接到每個着色器對象
3.編譯着色器對象
4.創建一個程序對象
5.將編譯後的着色器對象連接到程序對象
6.鏈接程序對象
統一變量:存儲應用程序通過OpenGL ES 3.0 API傳遞給着色器的只讀數值的應用。
統一變量值是程序對象局部所有的。
統一變量緩衝區對象:用於存儲統一變量數據從而在程序的着色器之間甚至程序之間共享同一變量。