学习资料来源
Joey de Vries 的 OpenGL入门教程
英文版地址 :https://learnopengl.com/
中文版地址 :https://learnopengl-cn.github.io/
OpenGL官网 :https://www.opengl.org/
OpenGL各版本规范与扩展:https://www.khronos.org/registry/OpenGL/index_gl.php
GLFW官网 : https://www.glfw.org/
GLAD官网 : https://glad.dav1d.de/
#include <glad\glad.h>
#include <glfw3.h>
#include <iostream>
int main() {
//glfw初始化
glfwInit();
//设置OpenGL 版本号3.3
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
//设置OpenGL工作模式为核心模式
glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE);
//创建窗体
GLFWwindow* glfwWindow = glfwCreateWindow(800, 600, "LearnOpenGL01", NULL, NULL);
if (glfwWindow == NULL) {
std::cout << "err ==== createWindow fail" << std::endl;
glfwTerminate();
return -1;
}
//设置窗体为当前线程的主上下文
glfwMakeContextCurrent(glfwWindow);
//glad初始化 用来管理OpenGL的函数指针(不初始化的话 使用不了OpenGL的函数)
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
{
std::cout << "Failed to initialize GLAD" << std::endl;
return -1;
}
//主逻辑循环 当窗体没有关闭的时候执行
while (!glfwWindowShouldClose(glfwWindow)) {
//设置清除颜色RGBA
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
//使用颜色Buff清除窗口
glClear(GL_COLOR_BUFFER_BIT);
//接受事件触发,更新窗体的状态
glfwPollEvents();
//交换颜色缓冲区,渲染指令在后缓冲绘制 ,前缓冲用来输出显示到屏幕
glfwSwapBuffers(glfwWindow);
}
glfwTerminate();
return 0;
}