二、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;
}

输出结果:

相关推荐
程序喵大人1 小时前
【C++进阶】STL算法与函数对象 - 09 函数对象保存状态并复用规则
开发语言·c++·算法·stl·函数对象
ShineWinsu7 小时前
对于C++:auto_ptr、unique_ptr、shared_ptr的模拟实现
c++·面试·笔试·智能指针·unique_ptr·shared_ptr·auto_ptr
XLYcmy9 小时前
京东 算法实习一面 下+手撕
c++·python·llm·概率论·数据处理·训练·codebert
反转180度10 小时前
Qt 6 + C++17 实现 SFTP 批量部署:工业设备运维工具实战解析
运维·c++·qt
码匠许师傅11 小时前
【C++ 面试真题】聊聊 C++ 的多继承与虚继承
开发语言·c++·面试
有点。12 小时前
C++认识数
开发语言·c++
2023自学中13 小时前
Qt 简易聊天室(第二篇),单线程 改为 多线程,方便后续增加文件传输功能
c++·qt
Tyler_TXZ14 小时前
C++C语言之——二叉树
c语言·开发语言·数据结构·c++·二叉树
有点。14 小时前
C++二叉树二(练习题)
数据结构·c++·算法·图论
不会代码的小猴14 小时前
C++新增关键字
开发语言·c++·笔记