可以复制渲染缓冲区而不附加到帧缓冲区吗?

时间:2014-05-29 02:14:02

标签: c++ opengl framebuffer

我正在编写一个renderbuffer类,需要定义复制构造函数。我还有一个framebuffer类,允许你附加纹理或渲染缓冲区。 OpenGL是否允许您将renderbuffer数据从一个复制到另一个而无需先将其附加到帧缓冲区并从中读取/写入?

1 个答案:

答案 0 :(得分:2)

不,如果没有附加到FBO,渲染缓冲区就没用了。

复制它们的唯一方法是在一个绘制缓冲区和另一个绘制缓冲区之间glBlitFramebuffer (...)。如果此功能确实存在,您可能会在Direct State Access扩展程序中看到类似glBlitNamedFramebuffer (...)的内容,但唉,它没有。

您的投诉是否不想破坏FBO的状态以复制内容? DSA通常会解决这类问题,但由于这不是DSA所涵盖的内容,因此您必须自己处理任何绑定状态恢复。