要開發OpenGL程序,那么這個程序就需要與操作系統進行交流,由于存在不同的操作系統,這樣就面臨著開發不同的程序的困難,為了解決這個問題,就引入了一個中間層的軟件庫,這個軟件庫叫做EGL。
眾所周知,Opengl是跨平臺的,那么面對各種平臺的差異性,Opengl是如何抹平而做到跨平臺的呢?這也許就是EGL的功勞吧,簡單地說EGL就是Opengl和平臺各平臺之間的一個適配器,是一系列的接口,具體實現是由具體的設備廠商實現的。
EGL 是渲染 API(如 OpenGL ES)和原生窗口系統之間的接口,通常來說,OpenGL 是一個操作 GPU 的 API,它通過驅動向 GPU 發送相關指令,控制圖形渲染管線狀態機的運行狀態,但是當涉及到與本地窗口系統進行交互時,就需要這么一個中間層,且它最好是與平臺無關的,因此 EGL 被設計出來,作為 OpenGL 和原生窗口系統之間的橋梁。
每個操作系統有不同的語法,EGL提供一個基本的不透明的類--EGLDisplay,它封裝了與操作系統相關的連接。使用EGL第一步就是創建并初始化一個使用本地操作系統EGL顯示的設備。