窗体的创建
步骤一(初始化 glfw):
// 初始化glfw
glfwInit();
// 设置主版本
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
// 设置此版本
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
// 设置配置文件
// GLFW_OPENGL_CORE_PROFILE 核心模式
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
步骤二(生成窗体):
// 生成窗口对象
window = glfwCreateWindow(width, height, title_text.c_str(), NULL, NULL);
if (window == NULL)
{
std::cout << "Failed to create GLFW window" << std::endl;
glfwTerminate();
return -1;
}
//将窗口设置文主线程的上下文
glfwMakeContextCurrent(window);
//绘制窗口大小
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
步骤三(加载glad ):
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
{
std::cout << "Failed to initialize GLAD" << std::endl;
return -1;
}
步骤四(事件循环展示)
while (!glfwWindowShouldClose(window))
{
ProcessInput();
//设置颜色(状态)
glClearColor(m_red, m_green, m_blue, 1.0f);
//设置颜色(动作)
glClear(GL_COLOR_BUFFER_BIT);
//交换颜色缓冲, 它在这一迭代中被用来绘制,并且将会作为输出显示在屏幕上
glfwSwapBuffers(window);
//监听事件输入
glfwPollEvents();
}
代码展示:
https://github.com/heisai/OpenglProject/tree/master/opengl_rectangle