学习一下OpenGL,这是做一下记录。
跟着https://learnopengl.com/Getting-started/Hello-Window
里面写的第一个窗口,做一下记录。
可能唯一的区别就是有注释。
#include<iostream>
#define GLEW_STATIC
#include <GL/glew.h>
#include<GLFW/glfw3.h>
using namespace std;
void glfwInput(GLFWwindow* window);
int main(int argc, char** argv[])
{
glfwInit();//初始化
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);//配置GLFW
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);//配置GLFW
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);//设置glfw的profile配置,为核心的一部分。
glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);//是否可以调整大小
GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", nullptr, nullptr);//创建一个800*600的名及哦啊learnOpenGL的窗口,后面两个一般都是空就可以了
if (window == nullptr)
{
cout << "Failed to create GLFW window" << endl;
glfwTerminate();//glfw终止
return -1;
}
glfwMakeContextCurrent(window);//制造当前窗口的内容
while (!glfwWindowShouldClose(window))
{
glfwInput(window);
glClearColor(0.2f,0.3f,0.3f,1.0f);//RGBA
glClear(GL_COLOR_BUFFER_BIT);//清理到颜色缓冲区
glfwPollEvents();//获取键盘输入
glfwSwapBuffers(window);//切换缓冲区
}
glfwTerminate();
return 0;
}
void glfwInput(GLFWwindow* window)
{
if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)//如何按下ESC键便会执行
{
glfwSetWindowShouldClose(window,true);//关闭窗口
}
}