IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> “保姆级 ”windows10 vs2019配置OPENGL教程 -> 正文阅读

[C++知识库]“保姆级 ”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

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:15:53  更:2021-07-24 11:18:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/25 15:26:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计