1、Qt551 + vs2013 + Win7x64
缘由:将“教程14:渲染到纹理.html(http://www.opengl-tutorial.org/cn/intermediate-tutorials/tutorial-14-render-to-texture/)”("E:OpenGL_somethingogl-master utorial14_render_to_texture")中的代码 改成 Qt的(原来是 C++&glfw)
问题:在 使用 帧缓存(Framebuffer)的时候出现问题:在paintGL(...)中 始终无法将图形画到窗口中
解决:使用 自定义的帧缓存的方式是"glBindFramebuffer(GL_FRAMEBUFFER, FramebufferName);",这个是一样的 没区别;但是 在切换到默认窗口帧缓存时,C++&glfw中使用"glBindFramebuffer(GL_FRAMEBUFFER, 0);"(GL_NONE),我以为 Qt中也是这样,但是 实际上却是 "glBindFramebuffer(GL_FRAMEBUFFER, context()->defaultFramebufferObject());"...(这里的 context()是QOpenGLWidget.context())
ZC:glBindFramebuffer(...)的第二个参数 我是从 Qt551源码里面看来的,具体主要搜索看如下4个函数:
QOpenGLFramebufferObjectPrivate::init() QOpenGLFramebufferObject::QOpenGLFramebufferObject(const QSize &size, Attachment attachment, GLenum target, GLenum internal_format) QOpenGLFramebufferObject::bind()
bool QOpenGLFramebufferObject::release()
2、
3、
4、
5、