#include <iostream>
#include <GLFW/glfw3.h>
int main(void)
{
GLFWwindow* window;
if (!glfwInit()) //初始化并创建窗口 必须在其他任何GLFW函数之前被调用,因为它负责初始化整个GLFW库。如果成功的话,该接口将返回GL_TRUE,否则就会返回GL_FALSE。
return -1;
/*GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor * monitor, GLFWwindow * share):负责创建一个新的OpenGL环境和窗口。
.monitor非NULL的话,窗口会被全屏创建到指定的监视器上,分辨率由width和height来指定。否则窗口会被创建到桌面上,并且尺寸由width和height来指定。
.title是一个UTF - 8字符串的指针,可以用来创建窗口的初始标题。
.share非NULL的话,新创建的窗口所关联的OpenGL环境将与share所给定的关联环境共享资源
*/
window = glfwCreateWindow(640, 480, "hello world", NULL,NULL);
if (!window)
{
glfwTerminate();
return -1;
}
/*void glfwMakeContextCurrent(GLFWwindow * window):设置参数window中的窗口所关联的OpenGL环境为当前环境。
这个环境在当前线程中会一直保持为当前环境,直到另一个环境被设置为当前环境,或者窗口被删除为止。*/
glfwMakeContextCurrent(window);
//glfwWindowShouldClose函数在我们每次循环的开始前检查一次GLFW是否被要求退出,如果是的话该函数返回true然后游戏循环便结束了,之后为我们就可以关闭应用程序了
while (!glfwWindowShouldClose(window))
{
glClear(GL_COLOR_BUFFER_BIT); //需要添加OpenGl32.lib
//画三角型
glBegin(GL_TRIANGLES);
glVertex2f(-0.5f,-0.5f);
glVertex2f(0.0f, 0.5f);
glVertex2f(0.5f, -0.5f);
glEnd();
//glfwSwapBuffers函数会交换颜色缓冲(它是一个储存着GLFW窗口每一个像素颜色的大缓冲),它在这一迭代中被用来绘制,并且将会作为输出显示在屏幕上。
glfwSwapBuffers(window);
//轮询时间
glfwPollEvents();
}
//.void glfwTerminate(void):关闭glfw库本身。
glfwTerminate();
return 0;
}
希望自己能坚持看完吧!