天天看点

【OpenGL】Windows下创建第一个OpenGL程序

开发工具

IDE:VS2019

GLFW

CMake

GLAD

glfw下载

glfw源码:下载地址

下载的内容如下所示:

【OpenGL】Windows下创建第一个OpenGL程序

CMake下载

CMake(将源码生成自己想要的IDE工程):下载地址

下载的内容如下所示:

【OpenGL】Windows下创建第一个OpenGL程序

下载完成后安装即可

生成工程文件GLFW

使用CMake程序生成GLFW.sln文件

1、打开CMake

设置好glfw根目录和生成的工程目标目录(自己任意设置,我这里设置为在glfw根目录下创建的一个build文件夹)

【OpenGL】Windows下创建第一个OpenGL程序
【OpenGL】Windows下创建第一个OpenGL程序

2、点击Configure,选择IDE

我使用的IDE是VS2019,因此我选择VS2019

点击后的结果如下图所示

【OpenGL】Windows下创建第一个OpenGL程序

3、点击Generate

【OpenGL】Windows下创建第一个OpenGL程序

生成工程文件,生成后可以在工程目标目录下看到,如下图所示

【OpenGL】Windows下创建第一个OpenGL程序

4、编译GLFW.sln

用Visual Studio 2019打开。因为CMake已经配置好了项目,所以我们直接点击Build Solution(生成解决方案)按钮,然后编译的库glfw3.lib(注意我们用的是第3版)就会出现在src/Debug文件夹内。

【OpenGL】Windows下创建第一个OpenGL程序

创建工程

首先,打开Visual Studio,创建一个新的项目。如果VS提供了多个选项,选择Visual C++,然后选择Empty Project(空项目)(别忘了给你的项目起一个合适的名字)。现在我们终于有一个空的工作空间了,开始创建我们第一个OpenGL程序吧!

1、在VC++ Directories中进行链接

为了使我们的程序使用GLFW,我们需要把GLFW库链接(Link)进工程。这可以通过在链接器的设置里指定我们要使用glfw3.lib来完成,但是由于我们将第三方库放在另外的目录中,我们的工程还不知道在哪寻找这个文件。于是我们首先需要将我们放第三方库的目录添加进设置。

要添加这些目录(需要VS搜索库和include文件的地方),我们首先进入Project Properties(工程属性,在解决方案窗口里右键项目),然后选择VC++ Directories(VC++ 目录)选项卡(如下图)。在下面的两栏添加目录:

【OpenGL】Windows下创建第一个OpenGL程序

2、在Linker(链接器)选项卡里的Input(输入)选项卡里添加glfw3.lib、opengl32.lib

如果你是Windows平台,opengl32.lib已经包含在Microsoft SDK里了,它在Visual Studio安装的时候就默认安装了。由于这篇教程用的是VS编译器,并且是在Windows操作系统上,我们只需将opengl32.lib添加进连接器设置里就行了。
【OpenGL】Windows下创建第一个OpenGL程序

GLAD的下载及配置

打开glad在线服务,将模式Profile选择为Core,再点击生成 Generate,过程如图所示

【OpenGL】Windows下创建第一个OpenGL程序

下载到本地的glad文件夹结构如下所示

【OpenGL】Windows下创建第一个OpenGL程序

1、将include包含到项目内

此处可以将include中的两个文件夹移到之前创建好的includes文件夹中,再次进行一下链接即可,示意图如下

【OpenGL】Windows下创建第一个OpenGL程序

2、将src中的glad.c添加到创建的工程中

【OpenGL】Windows下创建第一个OpenGL程序

代码测试

新建一个CPP文件,将如下代码拷贝进去(暂时无需理会代码含义),成功运行如下代码表示运行成功

/*
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
 *                                                                                                 
 * Blog: https://blog.csdn.net/weixin_41234001                                      
 *                                                                                                 
 * Author: DoBetter                                                               
 *                                                                                                 
 * Time: 2019.12.25                                                                            
 *                                                                                                 
 * Describe: 第一个OpenGL程序                                             
 *                                                                                                 
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
 */
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;
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(SCR_WIDTH, SCR_HEIGHT, "HelloWorld", NULL, NULL);
	//创建窗口 
	system("pause");
	return 0;
}
           

运行成功画面如下

【OpenGL】Windows下创建第一个OpenGL程序

继续阅读