我正在编写一个渲染缓冲类,需要定义复制构造函数。我还有一个帧缓冲区类,允许您将纹理或渲染缓冲区附加到它。 OpenGL 是否允许您将渲染缓冲区数据从一个复制到另一个,而无需先将其附加到帧缓冲区并从中读取/写入?
最佳答案
不,如果不附加到 FBO,渲染缓冲区将毫无用处。
复制它们的唯一方法是在一个绘图缓冲区和另一个绘图缓冲区之间glBlitFramebuffer (...)
。如果此功能确实存在,您可能会在 Direct State Access 中看到类似 glBlitNamedFramebuffer (...)
的内容扩展名,但遗憾的是,它没有。
您的提示是您不想为了复制内容而破坏您的 FBO 的状态吗? DSA 通常会解决此类问题,但由于这不是 DSA 涵盖的内容,因此您必须自己处理任何绑定(bind)状态恢复。
关于c++ - 可以在不附加到帧缓冲区的情况下复制渲染缓冲区吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23924707/