当前位置: 首页 > news >正文

二、Visual Studio2022配置OpenGL环境

文章目录

    • 一、OpenGL库的下载
    • 二、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运行文件所在目录,你可以手动拷贝,也可以在生成事件->后期生成事件中添加拷贝命令
在这里插入图片描述

三、测试代码演示

示例代码:

#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;
}

输出结果:
在这里插入图片描述

相关文章:

  • CameraX学习2-关于录像、慢动作录像
  • 【单片机通信技术】STM32 HAL库 SPI主从机通过串口发送数据
  • MySQL表空间碎片原理和解决方案
  • [HTTP协议]应用层协议HTTP从入门到深刻理解并落地部署自己的云服务(2)实操部署
  • 基于PySide6的CATIA零件自动化着色工具开发实践
  • 导入 Excel 规则批量修改或删除 Excel 表格内容
  • 【SegRNN 源码理解】【今天不水文系列】编码器部分理解
  • 云曦春季开学考复现(2025)
  • Linux基础--进程管理
  • 博弈是达到均衡状态的简单理解
  • 【网络】HTTP协议、HTTPS协议
  • PyTorch系列教程:编写高效模型训练流程
  • go的grpc
  • 视觉 Yolov11 环境配置(GPU版)
  • 使用websocket,注入依赖service的bean为null
  • golang从入门到做牛马:第四篇-Go语言基础语法
  • C++20 模块:告别头文件,迎接现代化的模块系统
  • hyperlane使用SSE实现服务端主动推送
  • 【0013】Python数据类型-列表类型详解
  • 详解常用集合和映射中的线程安全问题
  • 做网站能注册账号的/seo常规优化
  • 做设计挣钱的网站/石家庄高级seo经理
  • 景观设计网站推荐/搜外网友情链接
  • 做网站需要提交/sem是什么牌子
  • 建筑方案的网站/seo接单
  • 网站实名/百度企业推广怎么收费