目录
- 一.glfw 简介
- 二.glfw 下载
- 三.glfw 编译
-
四.glfw 使用
- 1.OpenGL glfw + glad 效果演示
- 2.OpenGL glfw + glad 《源码下载》
- 五.猜你喜欢
零基础 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 的作用。
在 OpenGL 项目开发中,glfw 一般搭配 glad 一起使用;
二.glfw 下载
下载地址:https://www.glfw.org/
三.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 项目开发中,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 下载和使用
本文由博客 - 猿说编程 猿说编程 发布!