#include<iostream>
#include<cstdlib>
#include<ctime>
#include<string>
#include<GL/glew.h>
#include <GL/glut.h>
#include<GLFW/glfw3.h>
#define MAX 1000
//#define PI 3.14
using namespace std;
void init(GLFWwindow* window){}
void display(GLFWwindow* window, double currentTime)
{
//glClearColor()命令指定了清除背景时用的颜色值,这里的(1,0,0,1)代表RGB中的红色,末尾的1表示不透明度
glClearColor(1.0, 0.0, 0.0, 1.0);
//使用红色对颜色缓冲区进行填充
glClear(GL_COLOR_BUFFER_BIT);
}
int main(void)
{
//初始化
if (!glfwInit())
{
exit(EXIT_FAILURE);
}
//glfwWindowHint()指定了机器必须与OpenGL版本4.3兼容,主版本号4,次版本号3
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
//glfwCreateWindow()指定了窗口的宽,高,以及窗口顶部主题,这里没有用到的另外两个参数设为NULL,分别用来允许全屏显示以及资源共享。
GLFWwindow* window = glfwCreateWindow(600, 600, "Chapter2-program1", NULL, NULL);
//创建GLFW窗口不会自动将它与上下文关联起来,需要调用glfwMakeContextCurrent()
glfwMakeContextCurrent(window);
if (glewInit() != GLEW_OK)
{
exit(EXIT_FAILURE);
}
//用来开启垂直同步
glfwSwapInterval(1);
init(window);
while (!glfwWindowShouldClose(window))
{
display(window, glfwGetTime());
//与glfwSwapInterval()一样用来开启垂直同步,GLFW窗口默认双缓冲。
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwDestroyWindow(window);
glfwTerminate();
exit(EXIT_SUCCESS);
}
输出的结果: