关于在Qt的QOpenGLWidget框架中----glClear(GL_COLOR_BUFFER_BIT)函数的一些有趣描述

QOpenGLWidget这个Qt下的OpenGL绘制框架,他有三个protected权限的成员函数:

关于在Qt的QOpenGLWidget框架中----glClear(GL_COLOR_BUFFER_BIT)函数的一些有趣描述_第1张图片

在initializeGL()里做参数的初始化,paintGL()里进行物体的绘制,resizeGL(int w, int h)里进行glViewport()视口的选择。

Vries的教程里,使用glfw.h与glad.h对最原始的OpenGL版本进行管理时,在每帧的循环中,使用glClear()函数显性清除GL_COLOR_BUFFER_BIT是一个很重要的工作。

关于在Qt的QOpenGLWidget框架中----glClear(GL_COLOR_BUFFER_BIT)函数的一些有趣描述_第2张图片

如果将这行注释掉,那我们什么也看不见,只有一个黑框框。

关于在Qt的QOpenGLWidget框架中----glClear(GL_COLOR_BUFFER_BIT)函数的一些有趣描述_第3张图片

但在QOpenGLWidget中,即使不写glclear(),不清理颜色缓冲与深度缓冲一样能正常渲染。

关于在Qt的QOpenGLWidget框架中----glClear(GL_COLOR_BUFFER_BIT)函数的一些有趣描述_第4张图片

在帮助文档中,关于paintGL()函数,也只是提了一句在函数调用之前,上下文与框架已经绑定。

你可能感兴趣的:(现代OpenGL学习教程)