我尝试使用QQuickFramebufferObject尝试使用屏幕外渲染。似乎我不能这样做 - 如果我尝试将FBO绑定到屏幕外渲染,则在我释放FBO并尝试渲染到帧缓冲区后,帧缓冲区最终会永久变为蓝色。
为了简化共享代码,我已将示例上传到https://github.com/sohailshafii/textureinsgnode_offscreen。它基本上是" textureinsgnode" Qt示例已修改为包含可以呈现的FBO。现在在fboinsgrenderer(https://github.com/sohailshafii/textureinsgnode_offscreen/blob/master/fboinsgrenderer.cpp)的渲染功能中,我禁用了屏幕外渲染:
// uncomment this block of code to see an incorrect rendering
/*m_fbo->bind();
logo.render();
update();
m_fbo->release();
m_fbo->bindDefault();*/
logo.render();
update();
但是一旦我在这里取消注释FBO,我就会得到一个稳定的蓝屏。我在QT中查看了屏幕外渲染示例,但不幸的是,他们没有描述如何使用QQuickFramebufferObject完成它。我正在运行QT 5.7.1。