一、准备工作
有关OpenGL的官方介绍请参看OpenGL官方网址。
简单来说,为了使用OpenGL必需分两步初始化OpenGL,第一步创建OpenGL上下文,在本文中使用GLFW,第二步加载必要的函数,在本文中使用GLEW。
1.1 编译GLFW
鉴于GLFW官网包含的预编译的二进制文件经常无法正常运行,所以推荐下载源码,然后在本机进行编译。
首先使用CMake生成VS项目文件,在使用CMake的时候需要区分Win32和x64平台:
然后使用Visual Studio编译生成的.sln文件,生成相应的库,同时需要区分Win32和x64平台:
1.2 GLEW
从官网下载预编译的文件即可。
1.3 创建库文件夹
为了创建项目模板,创建一个名为OpenGLTemplate的文件夹,里面包含两个子文件夹分别为include和lib,文件夹结构如下:
- OpenGLTemplate
- include
- GL
- GLFW
- lib
- Win32
- x64
在include文件夹下包含下载的GLFW文件夹和GL文件夹。
在lib文件夹下的Win32和x64文件夹里分别包含在Win32平台和x64平台下编译生成的glfw3.lib,同时包含下载的GLEW文件夹下的glew32.lib、glew32s.lib。
二、VS配置
根据上边生成的OpenGLTemplate文件夹,在VS项目属性页分别进行如下配置(若不想创建项目模板,则直接找到下载的文件路径进行配置即可):
需要注意的是,在运行程序时需要将glew32.dll文件复制到Release或Debug文件夹下。
三、例子
创建新项目,该程序生成一个绿色的600x300的窗口,源文件如下:
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <iostream>
using namespace std;
void init(GLFWwindow* window)
{}
void display(GLFWwindow* window, double CurrentTime)
{
glClearColor(0, 1, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);
}
int main()
{
if (!glfwInit())
exit(EXIT_FAILURE);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
GLFWwindow* window = glfwCreateWindow(600, 300, "OpenGLProject", nullptr, nullptr);
glfwMakeContextCurrent(window);
if (glewInit() != GLEW_OK)
exit(EXIT_FAILURE);
glfwSwapInterval(1);
init(window);
while (!glfwWindowShouldClose(window))
{
display(window, glfwGetTime());
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwDestroyWindow(window);
glfwTerminate();
exit(EXIT_SUCCESS);
}
程序运行结果如下:
四、使用Visual Studio项目模板
因为使用OpenGL需要配置库的位置,因此创建Visual Studio模板将使启动新的OpenGL项目变得更容易,下面介绍如何创建和使用Visual Studio模板。
4.1 创建模板
启动Visual Studio创建新的空C++项目,选择模式(Debug或Release)和平台(x86或x64),然后进行与上边第二步相同的配置即可。进行完上述两步操作后就可以创建模板了。创建模板通过“项目”菜单并选择“导出模板”,指定模板名称和图标后点击完成即可。
4.2 使用模板
创建新项目时,在下图搜索框中输入刚才创建的模板名称即可选择使用模板创建项目