前言
本节笔记对应的内容 你好,窗口。
在之前的入门01中我们配置好了环境,下面开始正式的绘制一个窗口。
目标①:打开一个黑窗口
首先我们创建一个main函数,用来实例化glfw的窗口:
int main()
{
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
return 0;
}
- glfwInit函数用来初始化GLFW,
- glfwWindowHint函数来配置GLFW,
- MAJOR与MINOR,分别用来指定OpenGL的主版本号和次版本号,
然后告诉GLFW我们使用的是核心模式(Core-profile)。
接下来创建窗口对象:
GLFWwindow* window = glfwCreateWindow(800,600,"My OpenGL Game",NULL,NULL);
if(window == NULL)
{
printf("Open window failed.");
glfwTerminate();
return - 1;
}
glfwMakeContextCurrent(window);
800与600分别是窗口的宽与高,第三个参数为标题。
- 关于Context
OpenGL自身是一个巨大的状态机(State Machine):有一系列的变量来描述OpenGL此刻应当如何运行。
OpenGL的状态通常被称为OpenGL上下文(Context)。
通常我们使用如下途径去更改OpenGL状态:设置选项,操作缓冲。最后,我们使用当前OpenGL上下文来渲染。
创建完窗口后和错误提醒后,就可以通知GLFW,将我们窗口的上下文设置为当前线程的主上下文了。
接下来初始化GLEW,打开实验性质的功能以及错误提醒:
glewExperimental = true;
if (glewInit() != GLEW_OK)
{
printf("Init GLEW failed.");
glfwTerminate();
return -1;
}
在开始渲染之前,需要告诉OpenGL渲染窗口的尺寸大小,即视口(Viewport)。可以通过调用glViewport函数来设置窗口的维度(Dimension):
glViewport