OpenGL 开发环境配置(Windows) - Visual Studio 2017 + GLFW + GLAD 详细图文教程
OpenGL 开发环境配置(Windows) - Visual Studio 2017 + GLFW + GLAD 详细图文教程
大部分 OpenGL 是直接面向设备商的,如果开发者需要使用 OpenGL 进行开发,一般需要使用已有的库,本文使用的是GLFW,它提供了一些渲染物体所需的最低限度的接口。
同时,我们还需要 GLAD,因为 OpenGL 只是一个标准/规范,具体的实现是由驱动开发商针对特定显卡实现的,对于开发者而言,GLAD 也可以让开发更为方便。
准备条件
操作系统:Windows 10
编译器:Visual Studio 2017(VC++ 2017)
CMake 工具
GLFW库
GLAD库
Visual Studio和CMake的安装略去
相关链接:
Visual Studio官网
CMake官网下载
配置步骤
Step1. 下载并编译GLFW库
首先访问GLFW官网下载页,下载源代码并解压,如下图所示
glfw源码
接下来打开CMake程序,设置source code为GLFW解压目录,build目录为GLFW解压目录下新建的build文件夹:
cmake1
点击configure,默认即可:
cmake2
再次点击configure按钮:
cmake3
最后点击Generate:
cmake4
可以在build目录下生成Visual Studio的解决方案:
build目录
打开解决方案,直接编译即可:
编译
编译成功
在build\src\Debug\目录下得到编译后的库文件:
库文件
Step2. 下载GLAD库
转到GLAD在线服务页面,修改语言为C/C++,选择OpenGL,API选择使用的对应OpenGL版本,Profile选择Core,勾上Generate a loader,点击GENERATE:
glad1
glad2
下载压缩包:
glad3
如何查看OpenGL版本
下载使用OpenGL Extension Viewer,即可查看OpenGL版本:
OpenGL版本
相关链接:
OpenGL Extension Viewer在Softonic的下载页
Step3. 配置Visual Studio工程
将GLFW源码中的include\文件下的内容、GLFW编译后的库、下载的GLAD库,放入opengl文件夹,组织如下:
组织方式
新建Visual C++空项目,将opengl文件夹放入工程目录:
放入
配置VS工程如下:
配置1
配置2
配置3
添加opengl\src\glad.c源文件:
源文件
Step4. 编写代码并测试
代码如下:
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
using namespace std;
void framebuffer_size_callback(GLFWwindow* window, int width, int height);
int main() {
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
GLFWwindow *window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL);
if (window == NULL) {
cout << "Failed to create GLFW window" << endl;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {
std::cout << "Failed to initialize GLAD" << std::endl;
return -1;
}
glViewport(0, 0, 800, 600);
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
while (!glfwWindowShouldClose(window)) {
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}
void framebuffer_size_callback(GLFWwindow* window, int width, int height) {
glViewport(0, 0, width, height);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
编译运行,结果如下:
结果
至此,配置完成。
参考链接
Learn OpenGL CN - 入门 - 创建窗口
————————————————
版权声明:本文为CSDN博主「sigmarising」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sigmarising/article/details/80470054
OpenGL 开发环境配置(Windows) - Visual Studio 2017 + GLFW + GLAD 详细图文教程相关推荐
- vs2017 c语言 安装教程,Visual Studio 2017 IDE安装使用图文教程
本文为大家分享了Visual Studio 2017 IDE的安装与最基本使用,供大家参考,具体内容如下 首先,进入VisualStudio的官网下载最新版本的VSIDE(目前是VS2017):VS2 ...
- Visual Studio 2017下载地址和安装教程(图解版)
Visual Studio 2017下载地址和安装教程(图解版) Visual Studio 2017不仅支持C#.C++.Python.Visual Basic.Node.js.HTML.JavaS ...
- visual studio学习python_python3从零学习-开发环境搭建之Visual Studio Code篇
开发环境搭建之Visual Studio Code篇 上一节讲了Python环境的安装和开发环境的安装,本节再重点讲下Visual Studio Code的配置.安装 请看我上一篇文章<pyth ...
- 【开发环境】为 Visual Studio Community 2013 版本安装中文语言包 ( 安装 Test Agents 2013 | 安装 Visual Studio 2013 简体中文 )
文章目录 一.下载相关文件 二.安装 Test Agents 2013 三.安装 Visual Studio 2013 简体中文语言包 一.下载相关文件 在 https://visualstudio. ...
- 微软建议Windows 10开发人员升级到Visual Studio 2017
既然Visual Studio 2017已经发布,那就意味着微软开始专注于让其成为默认开发平台.Creators Update SDK的发布(面向即将到来的Windows 10 Creators Up ...
- php4 apache 配置,[开发环境配置]windows下php4+mysql4+apache2开发环境配置
在网上看了好多php+mysql+apache的开发环境配置文档.但是其中不乏出现了很多的问题导致在配置开发环境的时候出现了很多的问题.这里总结出一份自己配置过程中的文档希望能给大家带来一些帮助.那么 ...
- 开发环境配置--windows许可证过期
文章目录 前言 一.再次激活许可证 前言 D365的开发环境的windows许可证是有180的有效期,有效期过了之后是需要重新激活的,可以在桌面的右下角看到有提示有效期的剩余天数 激活后会再次获得18 ...
- Visual Studio图形调试器详细使用教程(基于DirectX11)
前言 对于DirectX程序开发者来说,学会使用Visual Studio Graphics Debugger(图形调试器)可以帮助你全面了解渲染管线绑定的资源和运行状态,从而确认问题所在.现在就以我 ...
- Windows + Ubuntu 双系统(超详细图文教程)
传统的MBR模式和新式UEFI模式,这将对安装双系统的方法产生直接影响. 本文只适用于,Legacy模式(MBR,boot); UEFI模式(GPT) 参考:https://blog.csdn.net ...
最新文章
- Oracle10g 64bit CentOS5.2_x64 安装手记
- DOS BAT用法简例子
- java内部类文件,Java内部类学习
- CSS设置背景透明字体不透明
- android 的a标签,Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)...
- k8s上部署java应用(activiti)实践
- TensorFlow介绍_中英文对照
- 推荐几个学习JS的站点
- ssm大型分布式商城项目实战视频教程下载java分布式开发教程
- 无线通信设备安装工程概预算编制_深圳宝安不锈钢厨房设备安装工程
- php经纬度测距,PHP根据经纬度坐标计算距离
- 开发必备的文本比较工具
- 程序员心中的“女神”
- 前端基础三剑客之——HTML超文本标记语言(上篇)
- 省市区areacode反查的精简写法
- 剑桥2021计算机专业,2021剑桥大学计算机专业录取条件出炉 你有信心过线吗
- 176. 第二高的薪水(SQL中的ifnull函数和limt1,1的使用)
- Numpy常用快捷指令
- POJ1149 PIGS 题解
- 通用搜索引擎和垂直搜索引擎的区别
热门文章
- python 对象创建_从Python中的基类对象创建对象
- 第六天2017/04/11(1:结构体链表基础和相关经典操作)
- 简化软件集成:一个Apache Camel教程
- 160家优秀国外技术公司博客
- 条件随机场CRF简介Introduction to Conditional Random Fields
- 最大熵模型(Maximum Entropy Model)文献阅读指南
- GVIM中文编码出现乱码的解决方案
- 程序员面试题精选100题(12)-从上往下遍历二元树[数据结构]
- 图像处理(二十一)基于数据驱动的人脸卡通动画生成-Siggraph Asia 2014
- 【python图像处理】几何图形的绘制与文字的绘制(ImageDraw类详解)