【OpenGL】GLFW配置
来源:互联网 发布:淘宝一元秒杀在哪里 编辑:程序博客网 时间:2024/06/05 08:51
说在前面
能通过OpenGL搜过来的大多不是作业要求就是对图形学感兴趣的。OpenGL大家都有所了解,一般认为是一个通用的图形图像API。而实际上其是一个规范,严格规定函数的执行,其中的实现则是OpenGL自己定义的。
本人大学本科专业课上教授的计算机图形学课程。但是其实验指导中使用的是glut库,让我们来看看官网是怎么说的:
……好吧┑( ̄Д  ̄)┍
然后后来上了一门游戏课之后,老师给我们推荐了GLFW库。网上大多数的环境配置还是glut库,所以这里稍微写一下这两天配环境的过程。
参考教程:http://learnopengl-cn.readthedocs.io/zh/latest/ 当中的创建窗口
教程
非常好的一个网站,之前好几个关键技术点都是在这里获取,真的非常感谢他们!我这里的博客也只是在学习中自己的一些备忘而已。配环境的话大家参考这个教程即可,如果遇到一些奇怪的坑就可以回头再来看看我写的备忘……主要就是在这个基础上说点自己的心得。
配置说明&补充
1. 编译源代码
这里原教程写的很清楚,从官网上可以下载:http://www.glfw.org/
p.s. 官网上提供了给windows用户编译好的lib下载的链接,然而之前尝试了很多次都失败了。建议大家还是下载源代码来进行编译,也就是官网进去的第一个下载链接。
我这里下载的是GLFW 3.2。然后使用CMAKE进行生成visual studio的工程即可,我这里使用的是Visual Studio 2013
,其在CMAKE会有一个内部版本号14,不用虚,看到2013即可。其他步骤按教程来。
用vs打开编译之后,生成的大概只有个lib文件吧……它会出现在src/debug
中(在教程里也说到,但是很多粗心的同学说不定和我一样)。
2. 使用GLFW库
还是针对vs用户,关于头文件引用,教程中给出的是在工程中配置VC++ Directories,我以前则是直接把它和lib都扔到vs的安装目录里面去。看了教程觉得单独出来很重要,否则放到别人电脑上就没法跑真的好尴尬。的确这样子能够很好地管理自己的代码,还可以做一下全平台的不同库的链接……(想多了)
不过在链接lib库的时候我是使用了下面的代码直接来引入的:
#pragma comment (lib, "libs/glfw3.lib")
这样子可以把根目录下libs
目录下的库文件直接引进来,不需要在工程属性中进行配置。
3. 看看能不能跑
拼凑了一下教程的代码,如下若是能跑出一个不是黑色的窗口就已经是配好了。
#include "GL/glew.h"#include "GLFW/glfw3.h"#include "glm/glm.hpp"#include <iostream>#pragma comment (lib, "opengl32.lib")#pragma comment (lib, "libs/glfw3.lib")#pragma comment (lib, "libs/glew32d.lib")int main(){ glfwInit(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glfwWindowHint(GLFW_RESIZABLE, GL_FALSE); GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", nullptr, nullptr); if (window == nullptr) { std::cout << "Failed to create GLFW window" << std::endl; glfwTerminate(); return -1; } glfwMakeContextCurrent(window); while (!glfwWindowShouldClose(window)) { // 检查事件 glfwPollEvents(); // 在这里执行各种渲染操作 glClearColor(0.2f, 0.3f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); //交换缓冲区 glfwSwapBuffers(window); } glfwTerminate(); return 0;}
可以看到GLFW的代码结构和glut真的是差的十万八千里(大概gl库部分还是一样的吧)。
我这里还配了glew
库(用于shader等功能)和glm
库(用于数学运算)。后面用到的时候会再提。
- 【OpenGL】GLFW配置
- Xcode + glfw 配置openGL环境
- OpenGL学习入门-GLFW配置
- VS2015配置OpenGL(glfw,glew)
- VS 2008 OpenGL+glfw+glew+glm 配置
- 使用glew、glfw配置OpenGL开发环境
- 使用glew、glfw配置OpenGL开发环境
- VS2013+GLFW+GLEW 配置OpenGL开发环境
- GLFW配置
- openGL编程-环境配置(glfw;glew;glm相关 )
- 配置GLEW+GLFW并使用Xcode写OpenGL应用
- macOS下基于GLFW+GLAD的OpenGL环境配置
- VS2015 OpenGL开发环境简单配置 glfw + glad
- [OpenGL] 初识GLFW
- vs2010 OpenGL+glfw+glew+glm
- OpenGL入门——GLFW
- OpenGL — GLFW — 颜色
- 使用glfw建立opengl应用程序
- android sharedpreferences使用问题
- Cornerstone 破解版
- 【Github教程】史上最全github使用方法:github入门到精通
- jsp里include html文件中文乱码
- Android 设计模式 笔记 - 单例模式
- 【OpenGL】GLFW配置
- 优秀程序员无他,善假于物也
- 朋友圈中,谁是最有影响力的人?是你么!!
- Android学习笔记十八之TabLayout标签布局
- 数据库NULL
- 面试时问到你对薪资的要求时 怎么去回答?
- IOS8,使用storyBoard对tableView的自适应
- mybatis如何使用延迟加载
- 解决无法创建模拟器问题的方法