c++ - 可以在不附加到帧缓冲区的情况下复制渲染缓冲区吗?

标签 c++ opengl framebuffer

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

最佳答案

不,如果不附加到 FBO,渲染缓冲区将毫无用处。

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

您的提示是您不想为了复制内容而破坏您的 FBO 的状态吗? DSA 通常会解决此类问题,但由于这不是 DSA 涵盖的内容,因此您必须自己处理任何绑定(bind)状态恢复。

关于c++ - 可以在不附加到帧缓冲区的情况下复制渲染缓冲区吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23924707/

相关文章:

c++ - 构建 gcc/libstdc++ 时使用了哪些配置选项?

opengl - 按下 GLUT 键并按下 CTRL 键上键

android - Nexus 10 - 渲染到外部渲染目标仅适用于横向

c++ - OpenGL 乒乓球反馈纹理未完全清除自身。留下了足迹

android - 在 Android 上使用 OpenGL ES 2.0 绘制到后台缓冲区

c++ - 比较迭代器时的奇怪(?)行为

c++ - 使用 Boost Dijkstra 和指定的 MAX DISTANCE 查找最短路径

macos - GLSL 示例无法在 Mac 上运行

c++ - qt-everywhere-opensource-src-4.8.1 中没有 qtCreator

math - 着色器语言中的逆FFT?