目錄
零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES 基礎
零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES 特效
零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES 轉場
零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES 函數
零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES GPUImage 使用
零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES GLSL 編程
一.glfw 簡介
官方解釋:glfw is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. It provides a simple API for creating windows, contexts and surfaces, receiving input and events.
glfw 開發目的是用於替代 glut 的。它是一個輕量級的,開源的,跨平臺的 library。支持 OpenGL 及 OpenGL ES ,用來管理窗口,讀取輸入,處理事件等。
**glfw 優勢:**glut 太老了,最後一個版本還是 90 年代的。freeglut 完全兼容 glut ,算是 glut 的代替品,功能齊全,但是 bug 太多。穩定性也不好(不是我說的啊,不過 3.0 版本還是挺穩定的),所以 glfw 應運而生。
總之,glfw 是 glut / freegult 的升級和改進。glfw 是用來顯示窗口和捕捉窗口事件的一套 API,可以理解成 Qt 和 windows 平臺的 WPF 。
OpenGL 只是一套控制 GPU 的規則,並沒有對於跨平臺窗口顯示和事件進行規定,所以需要一個顯示顯卡渲染的窗口,這就是 glfw 的作用。
二.glfw 下載
三.glfw 編譯
1.下載源碼後解壓,使用 CMake 編譯,CMake 安裝請參考《Windwos CMake 下載和安裝》
2. CMake 編譯成功後,會 CMake 設置的輸出目錄中生成 glfw.sln ,使用 Visual Studio 打開工程編譯即可生成靜態庫 glfw3.lib
四.glfw 使用
**鏈接庫:opengl32.lib 和 glfw3.lib**
Windows 上的 OpenGL 庫:如果你是 Windows 平臺,opengl32.lib 已經包含在 Microsoft SDK 裏了,它在 Visual Studio 安裝的時候就默認安裝了。由於這篇教程用的是 VS 編譯器,並且是在 Windows 操作系統上,我們只需將opengl32.lib 添加進連接器設置裏就行了。值得注意的是,OpenGL 庫 64 位版本的文件名仍然是 opengl32.lib(和 32 位版本一樣),雖然很奇怪但確實如此。
**Linux 上 的 OpenGL 庫:**在 Linux 下你需要鏈接 libGL.so 庫文件,這需要添加
-lGL
到你的鏈接器設置中。如果找不到這個庫你可能需要安裝 Mesa, NVidia 或 AMD 的開發包,這部分因平臺而異(而且我也不熟悉 Linux )就不仔細講解了。
1.OpenGL glfw + glad 效果演示
2.OpenGL glfw + glad 《源碼下載》
注意當前代碼只編譯了 Windows x64 平臺,如果需要 x86 ,自己配置工程屬性編譯即可,源碼下載:OpenGL_glfw_glad
五.猜你喜歡
- OpenGL ES 簡介
- OpenGL ES 版本介紹
- OpenGL ES 2.0 和 3.0 區別
- OpenGL ES 名詞解釋(一)
- OpenGL ES 名詞解釋(二)
- OpenGL ES GLSL 着色器使用過程
- OpenGL ES EGL 簡介
- OpenGL ES EGL 名詞解釋
- OpenGL ES EGL eglGetDisplay
- OpenGL ES EGL eglInitialize
- OpenGL ES EGL eglGetConfigs
- OpenGL ES EGL eglChooseConfig
- OpenGL ES EGL eglGetError
- OpenGL ES EGL eglCreateContext
- OpenGL ES EGL eglCreateWindowSurface
- OpenGL ES EGL eglCreatePbufferSurface
- OpenGL ES EGL eglMakeCurrent
- OpenGL ES EGL eglSwapBuffer
- OpenGL ES EGL eglDestroySurface
- OpenGL ES EGL eglDestroyContext
- OpenGL ES EGL eglQueryContext
- OpenGL ES EAGLContext 和 EGLContext
- OpenGL ES OpenGL WebGL EGL WGL 區別
- OpenGL ES freeglut 下載和使用
- OpenGL ES glew 下載和使用
- OpenGL ES glut 下載和使用
- OpenGL ES glfw 下載和使用
- OpenGL ES glad 下載和使用
本文由博客 - 猿說編程 猿說編程 發佈!