“保姆级 ”windows10 vs2019配置OPENGL教程

windows10 vs2019配置OPENGL

下载GLFW并解压

下载GLFW,下载链接: https://www.glfw.org/download.html

在这里插入图片描述

下载好压缩包后,将该压缩包解压,解压路径随意

在这里插入图片描述

在这里插入图片描述

然后进入 glfw-3.3.4.bin.WIN32 文件夹是这样的,标红框的两个文件夹是我们需要用到的

在这里插入图片描述

在vs2019中配置GLFW

第一步,打开VS2019,新建C++控制台项目

在这里插入图片描述

项目名称随意

在这里插入图片描述

第二步,将鼠标放在项目名处右键属性进入

在这里插入图片描述

第三步,属性配置,在这个步骤中我们会对以下三个图片位置进行配置。提示:如果创建项目没有选择控制台项目而是选择空项目的话这里会没有C/C++的选项。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1、此时我们需要回到我们存放GLFW解压文件的目录。进入include文件夹和lib-vc2019文件夹,将这两个文件夹的路径复制到附加包含目录和附加库目录中。接下来我们演示一下

在这里插入图片描述

我们首先配置include文件夹的路径

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后配置lib-vc2019文件夹的路径,一样的操作一个Ctrl+c,两个Ctrl+v

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

注意:附加包含目录和附加库目录的路径都需要使用分号隔开。

2、下载glad文件

此时我们还需要进行配置glad文件,进入链接:https://glad.dav1d.de/ 按照图片选项配置,点击GENERATE

在这里插入图片描述

然后下载glad的压缩包并解压,路径随意

在这里插入图片描述

在这里插入图片描述

接下来我们要做的就是将glad文件夹下的include文件夹的路径添加到C/C++ > 常规 > 附加包含目录中去

在这里插入图片描述

在这里插入图片描述

3、在链接器常规的附加依赖项里添加:opengl32.lib和glfw3.lib 两项内容。注意别忘了添加分号。

在这里插入图片描述

添加glad.c文件

首先进入glad/src文件夹

在这里插入图片描述

找到glad.c文件,这个就是我们下一步要在vs中添加的文件

在这里插入图片描述

我们回到vs项目右键>添加>现有项

在这里插入图片描述

然后找到glad.c文件点击添加

在这里插入图片描述

添加成功

在这里插入图片描述

创建测试用例

// OPENGL_TEST03.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

#include <glad/glad.h>
#include <GLFW/glfw3.h>

void error_callback(int error, const char* description); //声明
void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods);
void bufferresize_callback(GLFWwindow* window, int width, int height);

int main()
{
	if (!glfwInit()) {
		return -1; //初始化GLFW库失败
	}
	//注册错误回调,大多数事件都是通过回调报告的
	glfwSetErrorCallback(error_callback);
	//设置最低主版本号
	glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
	//设置最低次版本号
	glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
	//设置为核心模式
	glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
	//glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); //mac系统加这一句
	//创建窗口对象,如果要销毁窗口则glfwDestroyWindow(window)
	GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL);
	//创建失败则返回NULL,退出程序
	if (window == NULL)
	{
		std::cout << "Failed to create GLFW window" << std::endl;
		glfwTerminate();
		return -1;
	}
	//窗口位置,试了下不包含标题栏
	glfwSetWindowPos(window, 100, 100);
	//注册按键按下的回调
	glfwSetKeyCallback(window, key_callback);
	//注册帧缓冲区大小改变的回调
	glfwSetFramebufferSizeCallback(window, bufferresize_callback);
	//通知GLFW将我们窗口的上下文设置为当前线程的主上下文
	//必须先具有当前的OpenGL上下文,然后才能使用OpenGL API,加载程序需要当前上下文才能加载
	glfwMakeContextCurrent(window);

	//在调用任何OpenGL的函数之前我们需要初始化GLAD
	if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
	{
		std::cout << "Failed to initialize GLAD" << std::endl;
		glfwTerminate();
		return -1;
	}


	//检查GLFW是否被要求退出
	while (!glfwWindowShouldClose(window))
	{
		//设置清空屏幕所用的颜色
		glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
		//清空颜色缓冲
		glClear(GL_COLOR_BUFFER_BIT);

		//交换颜色缓冲
		//默认情况下,GLFW窗口使用双缓冲。这意味着每个窗口都有两个渲染缓冲区。
		//前缓冲区和后缓冲区。前缓冲区是要显示的缓冲区,后缓冲区是要渲染的缓冲区。
		//渲染完整个帧后,需要相互交换缓冲区,因此后缓冲区将变为前缓冲区,反之亦然。
		glfwSwapBuffers(window);
		//检查有没有触发什么事件(比如键盘输入、鼠标移动等)
		//并调用对应的回调函数(可以通过回调方法手动设置)
		glfwPollEvents();
	}

	//销毁窗口
	glfwDestroyWindow(window);
	//使用GLFW的操作后,需要终止GLFW
	glfwTerminate();
	return 0;
}

void error_callback(int error, const char* description)
{
	std::cout << "error:" << error << std::endl;
	std::cout << "description:" << description << std::endl;
}

void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
{
	//Esc按下则触发WindowShouldClose为true
	if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS)
		glfwSetWindowShouldClose(window, GLFW_TRUE);
}

void bufferresize_callback(GLFWwindow* window, int width, int height)
{
	//glViewport函数前两个参数控制渲染窗口左下角的位置
	glViewport(0, 0, width, height);
}

// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单

// 入门使用技巧: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件

f5运行

在这里插入图片描述

配置成功。

参考

https://blog.csdn.net/gongjianbo1992/article/details/102881196

  • 10
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值