能用於OpenGL的窗口庫有很多,常見的有glut、freeglut、SDL、GLFW等。glut基本已經被廢棄,其他幾個再不同場合都有不同的應用。
GLFW為opengl superbible 6th & 7th中推薦的第三方開源窗口庫。GLFW的特點大概總結如下:
跨平台,能在window、Linux和wayland中使用; 支持OpenGL、OpenGL ES; 底層的可配置性;
下面我們來實際看下使用GLFW的實際意義。
OpenGL ES在嵌入式開發中實際比在PC上開發opengl的環境搭建似乎要復雜很多,通常嵌入式開發中使用EGL創建OpenGL渲染的surface,使用wayland創建窗口的surface來實現。在實際開發過程中,我們想通過在PC上開發EGL + OpenGl ES的程序,這個時候,如果平台不同,我們往往在不同平台上實現不同的窗口,如:
window:
Linux:
ARM:
window 窗口系統、X11窗口和wayland窗口的創建和窗口事件獲取及處理方式各不相同,而GLFW所做的事情,就是提供統一的窗口創建的方法,使我們能在GLFW上開發與平台無關的OpenGL ES代碼。
GLFW官網有詳細的各個平台編譯步驟介紹,在此我們針對Window + VS2005 + EGL + Mail模擬器進行進行介紹。
配置完成後我們點擊Generate,即可完成項目文件的創建; 在build的目錄下,我們可以使用vs2005 打開GLFW.sln並編譯GLFW庫;
至此,編譯部分大致介紹完成,大家在實際編譯過程中可能會遇到其他問題,參考官網的介紹應該都能解決。
我們把GLFW編譯出來的庫和頭文件復制到我們的OpenGL ES VS工程中(當然也必須添加模擬器的Dll),如下為實例代碼。
OpenGL編程指南(原書第7版)中文掃描版PDF 下載 http://www.linuxidc.com/Linux/2012-08/67925.htm
-------------------------------------分割線-------------------------------------
OpenGL 渲染篇 http://www.linuxidc.com/Linux/2011-10/45756.htm
Ubuntu 13.04 安裝 OpenGL http://www.linuxidc.com/Linux/2013-05/84815.htm
OpenGL三維球體數據生成與繪制【附源碼】 http://www.linuxidc.com/Linux/2013-04/83235.htm
Ubuntu下OpenGL編程基礎解析 http://www.linuxidc.com/Linux/2013-03/81675.htm
如何在Ubuntu使用eclipse for c++配置OpenGL http://www.linuxidc.com/Linux/2012-11/74191.htm
《OpenGL超級寶典》學習筆記 http://www.linuxidc.com/Linux/2013-10/91414.htm