1、VS2019配置glfw和glad

一、下载编译glfw

1、下载GLFW源码

Download | GLFW

 

 解压下载的压缩包,并在里面创建“build”文件夹

2、使用CMake生成工程文件

打开CMake,选择源码目录和要生成的工程存放目录,点击“Configure”

 选择“Visual Studio 16 2019”,其他默认,点击“Finish”

等待

 编译完成,点击“Generate”

Generate 完成

 在“build”文件夹里生成如下东西

 3、使用VS2019生成glfw3.lib

 双击“GLFW.sln”,用VS2019打开,右击“glfw”,选择“设为启动项目”

 

 右击“GLFW3”,选择“重新生成”

 

 

 在“build\src\Debug”文件夹中生成“glfw3.lib”

4、文件拷贝

把“Debug”文件夹和“glfw-3.3.8\include”文件夹,复制到一个新建文件夹“OpenGL”文件夹中

 

 

 拷贝结果:新建的OpenGL文件夹中有“Debug”和“include”

 Debug文件夹中有如下两个文件

 include文件夹中有“GLFW”文件夹

 “GLFW”文件夹中有如下两个文件

 

5、测试见三(与glad一起测试)

二、下载glad

1、下载Glad

https://glad.dav1d.de/

 访问上面的网址,填写如下信息,点击“GENRATE”

点击“glad.zip”,下载压缩包

 2、文件拷贝

解压,把“glad\include”文件夹中的“glad”和“KHR”文件夹拷贝到“OpenGL\include”文件夹中

把glad\src文件夹中的glad.c拷贝到OpenGL文件夹中

 

三、测试

1、打开VS2019,创建C++空项目

更改名称和存储位置

 更改为x64

2、 配置GLFW和glad

右击项目名称,选择“属性”

 选择“所有配置”,添加“包含目录”和“库目录”:OpenGL\include和OpenGL\Debug

添加“附加依赖项”:opengl32.lib和glfw3.lib

添加“现有项”:glad.c文件

 

 3、测试

添加“新建项”:main.cpp文件

把下面的代码拷贝到“main.cpp”文件中

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

void processInput(GLFWwindow* window);

int main() 
{
	glfwInit();
	glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
	glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
	glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
#ifdef __APPLE__ 
	glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
#endif

	GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL);
	if (window == NULL) 
	{
		std::cout << "Failed to create GLFW window" << std::endl;
		glfwTerminate();
		return -1;
	}
	//GLFW将窗口的上下文设置为当前线程的上下文
	glfwMakeContextCurrent(window);

	//GLAD
	// glad: 加载所有OpenGL函数指针
	if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) 
	{
		std::cout << "Failed to initialize GLAD" << std::endl;
		return -1;
	}

	// 渲染循环
	while (!glfwWindowShouldClose(window)) 
	{
		glClearColor(0.2f, 0.3f, 0.3f, 1.0f); //状态设置
		glClear(GL_COLOR_BUFFER_BIT); //状态使用

		processInput(window);
		// glfw: 交换缓冲区和轮询IO事件(按键按下/释放、鼠标移动等)
		glfwSwapBuffers(window);
		glfwPollEvents();
	}

	// glfw: 回收前面分配的GLFW先关资源. 
	glfwTerminate();
	return 0;
}

void processInput(GLFWwindow* window) 
{
	if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)	//摁Esc键退出
		glfwSetWindowShouldClose(window, true);
}

 点击“本地Windows调试器”,进行运行测试

 运行结果

 四、参考

创建窗口 - LearnOpenGL CN

计算机图形学OpenGL:1.2、GLFW-GLAD_哔哩哔哩_bilibili

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值