一步一步带你在VS 2017中配置OpenGL
在VS2017环境中配置OpenGL,我们分三步:配置GLFW、配置GLAD、导出项目模板。
配置GLFW
1.首先下载GLFW,点击这里,进入Github下载。
或者
点击这里从百度云下载,提取码为yavo。(注:该链接由中国大学MOOC万琳老师计算机图形学课程讨论区提供)。
2.然后安装Cmake后,在..\glfw-3.3文件夹下创建build文件夹。
打开Cmake按下图进行配置:
接着点击左下角的Configure,选择对应的Visual Studio 15 2017(根据自己的ide自行选择)。
点击Finish。然后点击Generate进行生成。完成后效果如图所示。
3.接着我们打开VS 2017,新建一个空项目,然后右击项目,选择属性
然后我们点击左侧的VC++ 目录,我们将修改包含目录与库目录。
点击包含目录->编辑,点击右上角的新行后,出现一个新行,点击行末尾的三个小点,选中刚刚下载的GLFW文件夹中的include文件夹。
接着点击库目录,步骤与刚刚一致,只不过选中的是GLFW中的build文件夹中的src,然后选中src中的Debug文件夹。
接着我们点击左侧的链接器->输入->附加依赖项->编辑
在其中输入
opengl32.lib
glfw3.lib
点击确定完成GLFW的配置!下面我们配置GLAD,暂时不要关闭VS。
配置GLAD
点击这里,进入GLAD在线界面,language选中C/C++,在API内的gl选择自己要下载的版本。Profile选择Core,选中Generate a loader 后点击Generate。
进入新网页后右击glad.zip,选择将目标另存为,下载压缩包。
解压后,打开文件夹glad,点击src,进入后,将glad.c复制到VS中当前项目的源文件夹下(在VS中右击项目,点击在文件资源管理器中打开即可打开文件夹当前项目文件夹)。
然后我们我们在VS中右击源文件新建一个main.cpp文件,接着右击源文件点击添加->现有项,进入点击刚刚拖进去的glad.c。
接着我们重复在配置GLFW时的修改包含目录的步骤,把glad目录下的include文件夹包含进去(这里就不截图了,和上面步骤一样)。
这样GLAD的配置就完成了,我们可以在文件main.cpp中输入下面的代码进行尝试:
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;
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(SCR_WIDTH, SCR_HEIGHT, "LearnOpenGL", NULL, NULL);
if (window == NULL)
{
std::cout << "Failed to create GLFW window" << std::endl;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
{
std::cout << "Failed to initialize GLAD" << std::endl;
return -1;
}
while (!glfwWindowShouldClose(window))
{
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}
编译后运行:
这样OpenGL的配置基本完成,为了日后使用的方便,下面我们创建一个项目模板。
导出项目模板
为了日后使用OpenGL时不用再重复上面繁琐的步骤,我们导出项目模板。
首先,在VS上方导航栏中选中项目->导出模板。
选中项目模板,点击下一步。
为模板命名,这里我命名为OpenGL Project。
点击完成。这样一个OpenGL的项目模板就做好了。
重新打开VS,点击新建项目,可以看到我们的项目模板已经成功导入了,这样我们在下次创建OpenGL项目时就可以直接使用了~
如果觉得不错,不妨关注一下哦~
一步一步带你在VS 2017中配置OpenGL的更多相关文章
- 在visual studio 2017中配置Qt
简述 这两天因为软件工程课要用vs2017写一个C++的GUI界面,就打算学习Qt,但是vs2017配置起Qt来不像vs2013,15那么简单,而且现在网上对于vs2017配置Qt的教程很少,也不详细 ...
- 一步一步带你实现virtual dom(二) -- Props和事件
很高兴我们可以继续分享编写虚拟DOM的知识.这次我们要讲解的是产品级的内容,其中包括:设置和DOM一致性.以及事件的处理. 使用Babel 在继续之前,我们需要弥补前一篇文章中没有详细讲解的内容.假设 ...
- 一步一步带你实现virtual dom(一)
一步一步带你实现virtual dom(一) 一步一步带你实现virtual dom(二)--Props和事件 要写你自己的虚拟DOM,有两件事你必须知道.你甚至都不用翻看React的源代码,或者其他 ...
- 在net中json序列化与反序列化 面向对象六大原则 (第一篇) 一步一步带你了解linq to Object 10分钟浅谈泛型协变与逆变
在net中json序列化与反序列化 准备好饮料,我们一起来玩玩JSON,什么是Json:一种数据表示形式,JSON:JavaScript Object Notation对象表示法 Json语法规则 ...
- 一步一步带你入门MySQL中的索引和锁 (转)
出处: 一步一步带你入门MySQL中的索引和锁 索引 索引常见的几种类型 索引常见的类型有哈希索引,有序数组索引,二叉树索引,跳表等等.本文主要探讨 MySQL 的默认存储引擎 InnoDB 的索引结 ...
- 在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布 ...
- 【Asp.Net Core】在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布 ...
- 一步一步写算法(之prim算法 中)
原文:一步一步写算法(之prim算法 中) [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] C)编写最小生成树,涉及创建.挑选和添加过程 MI ...
- 一步一步写算法(之n!中末尾零的个数统计)
原文:一步一步写算法(之n!中末尾零的个数统计) [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 在很多面试的题目中,求n!结果中零的个数也是 ...
随机推荐
- Codeforces#398 &767C. Garland 树形求子节点的和
传送门 题意:在一个树上,问能否切两刀,使得三块的节点值的和相同. 思路: 由于这个总的节点和是不变的,每块的节点值和sum固定,dfs搜索,和等于sum/3,切.若不能分成三块(不能被3整除,-1) ...
- Codeforces Round #486 (Div. 3)988E. Divisibility by 25技巧暴力||更暴力的分类
传送门 题意:给定一个数,可以对其做交换相邻两个数字的操作.问最少要操作几步,使得可以被25整除. 思路:问题可以转化为,要做几次交换,使得末尾两个数为00或25,50,75: 自己一开始就是先for ...
- CH4301 Can you answer on these queries III 题解
给定长度为N的数列A,以及M条指令 (N≤500000, M≤100000),每条指令可能是以下两种之一: "2 x y",把 A[x] 改成 y. "1 x y&quo ...
- MAC下安装REDIS和REDIS可视化工具RDM并连接REDIS
实验环境:一台mac V:10.13.6 一.安装redis brew install redis 二.安装RDM 直接下载安装rdm dmg文件 链接: https://pan.baidu.com/ ...
- spring组件注册
基于注解和类的组件注册 @Conditional 作用:按照一定的条件进行判断,如果满足条件的话就给spring容器中注册bean 该注解既可以标注到方法上面,也可以标注到类上面(只有满足条件时, ...
- SpringBoot+SpringMVC+MyBatis快速整合搭建
作为开发人员,大家都知道,SpringBoot是基于Spring4.0设计的,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程.另外Spr ...
- Python学习之旅:用Python制作一个打字训练小工具
一.写在前面 说道程序员,你会想到什么呢?有人认为程序员象征着高薪,有人认为程序员都是死肥宅,还有人想到的则是996和 ICU. 别人眼中的程序员:飞快的敲击键盘.酷炫的切换屏幕.各种看不懂的字符代码 ...
- springBoot异常统一处理
springBoot异常统一处理 采用@ControllerAdvice注解和@ExceptionHandler注解,可以对异常进行统一处理. 1.结构图: 2.pom.xml文件: <?xml ...
- android中fragment与activity之间通信原理以及例子
参考文章 http://blog.csdn.net/guozh/article/details/25327685#comments Activity和fragment通信方式一般有3种方法 1.在fr ...
- Qt无边框窗体-模拟模态窗体抖动效果
目录 一.概述 二.效果展示 三.功能实现 四.相关文章 原文链接:Qt无边框窗体-模拟模态窗体抖动效果 一.概述 用Qt开发windows客户端界面确实是一大利器,兼顾性能的同时,速度相对来说也不错 ...