二、Visual Studio2022配置OpenGL环境

文章目录

一、OpenGL库的下载

OpenGL配置的库是GLFW+GLAD ,GLFW 主要用于创建 OpenGL 窗口和管理输入;GLAD 主要用于加载 OpenGL 函数

GLFW下载地址
下载Windows的32bit版本即可。

下载完成解压如下所示:

GLAD下载地址

点击glad.zip下载即可。

解压后如下所示:

二、OpenGL环境配置

我们用的是VS2022,所以只需要include文件夹和lib-vc2022就足够了,然后使用VS2022创建一个空项目,将上述的文件拷贝到此项目中。同理将GLAD也拷贝到此项目中

我们先来配置头文件的路径:

右键项目->属性->C+±>常规->附加包含目录;然后添加需要的头文件

接下来就是如何配置lib文件的路径了,点击链接器->常规->附加库目录

之后就是考虑如何把lib文件加载进来了,这个简单,点击链接器->输入->附加依赖项之后,将库文件输入进去即可,如下图所示:

最后需要把dll文件拷贝到运行工作目录中,即exe运行文件所在目录,你可以手动拷贝,也可以在生成事件->后期生成事件中添加拷贝命令

三、测试代码演示

示例代码:

cpp 复制代码
#include <iostream>
#include "glad/glad.h"
#include "GLFW/glfw3.h"

void framebuffer_size_callback(GLFWwindow* window, int width, int height) {
	glViewport(0, 0, width, height);
}

void processInput(GLFWwindow* window) {
	if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) {
		glfwSetWindowShouldClose(window, true);
	}
}

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, "OPenGL Core", 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;
	}

	glViewport(0, 0, 800, 600);
	glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);

	while (!glfwWindowShouldClose(window)) {
		processInput(window);

		glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
		glClear(GL_COLOR_BUFFER_BIT);

		glfwSwapBuffers(window);
		glfwPollEvents();
	}
	glfwTerminate();
	
	return 0;
}

输出结果:

相关推荐
左直拳3 小时前
c++中“&”符号代表引用还是取内存地址?
开发语言·c++·指针·引用·右值·取内存地址
十年编程老舅3 小时前
二本计算机,毕业=失业?
c++·程序员·编程·秋招·c++项目·春招·qt项目
虾球xz4 小时前
游戏引擎学习第260天:在性能分析器中实现钻取功能
网络·c++·学习·游戏引擎
Yusei_05234 小时前
C++复习类与对象基础
c++
拾忆-eleven5 小时前
C++算法(19):整数类型极值,从INT_MIN原理到跨平台开发实战
数据结构·c++·算法
Hxyle6 小时前
c++设计模式
开发语言·c++·设计模式
神仙别闹7 小时前
基于QT(C++)实现(图形界面)校园导览系统
数据库·c++·qt
明月看潮生7 小时前
青少年编程与数学 02-018 C++数据结构与算法 25课题、图像处理算法
c++·图像处理·算法·青少年编程·编程与数学
我是一只鱼02237 小时前
LeetCode算法题 (反转链表)Day17!!!C/C++
数据结构·c++·算法·leetcode·链表
菜鸟破茧计划7 小时前
C++ 算法学习之旅:从入门到精通的秘籍
c++·学习·算法