将QOpenGLFramebufferObject的内容绘制到QOpenGLWidget上

时间:2015-08-15 23:30:42

标签: opengl qt5

我目前从Qt4移植到Qt5。虽然Qt5仍然提供QGLWidget等类,但这些类将由QOpenGLWidget等替换。

目前我正在将复杂的东西绘制到帧缓冲对象中一次。然后我使用drawTexture()方法在屏幕上绘制它(进入GL小部件):

target->drawTexture(rect, fb->texture());

之后,我用其他临时的东西透支了。因此,每当我需要更新临时内容时,我都可以重新使用framebuffer对象,而不是重新绘制复杂的内容。

然而,使用QOpenGLWidget以及QOpenGLContext,不再有方便的drawTexture()方法。使用OpenGL手绘绘制纹理至少需要20行复杂的东西。我承认教科书的内容。

有没有优雅/ Qt方式将我的fbo内容放到屏幕上?例如,据记载,QOpenGLWidget也使用fbo作为后端。而不是绘制纹理,我们也可以blit FBO。但是如何?

0 个答案:

没有答案