创建一个OpenGL窗口
#define GLEW_STATIC
#include <iostream>
#include <GL/glew.h>
#include <GL/glfw3.h>
//输入ESCAPE关闭窗口
void processInput(GLFWwindow* window) {
if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) {
glfwSetWindowShouldClose(window, true);
}
}
glfw版本号3.3
glfwInit();//初始化glfw,成功的话返回GL_TRUE,否则返回GL_FALSE
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
//创建窗口
GLFWwindow* window = glfwCreateWindow(800, 800, "OPGLWindow001", NULL, NULL);
if (window == NULL) {
printf("窗口打开失败....");
glfwTerminate();
return -1;
}
//
glfwMakeContextCurrent(window);
glewExperimental = true;
if (glewInit() != GLEW_OK) {
printf("初始化失败....");
return -1;
}
else
{
printf("初始化窗口成功....");
}
return 0;
glViewport(0,0,800,800);// 以像素为单位,指定了窗口的左下角位置为原点,设置显示区域吧。
while (!glfwWindowShouldClose(window)) //判断窗口是否true
{
processInput(window);
glClearColor(0.1f,0.1f,0.1f,1.0f); //用预制的值来清空缓冲区
glClear(GL_COLOR_BUFFER_BIT); //清除颜色缓冲
//SwapBuffers双缓冲技术,用两个内存区域来保存数据,分为前缓冲区和后缓冲区,前缓冲区用于展示屏幕上的内容,而后缓冲区就用来绘制,然后每一帧开始的时候,将两个缓冲区交换,这样后缓冲区又可以画新的内容。
glfwSwapBuffers(window);
//处理已经设置的事件
glfwPollEvents();
}
//销毁glfw
glfwTerminate();
return 0;