gpt4 book ai didi

c++ - 将数据从后台缓冲区复制到前台缓冲区

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:59:41 26 4
gpt4 key购买 nike

我在谷歌上搜索了一下这个主题,每个人似乎都相信在其他网页上,将内容从后缓冲区复制到前缓冲区,不调用 SwapBuffers 是不可能的.

有一些解决方法,如创建一个辅助的额外缓冲区(如 pBuffer),渲染它并将内容复制到纹理中,然后显示纹理。

但我想知道是否真的没有机会在Opengl的Backbuffer上渲染,并将内容复制到frontbuffer。我想实现这一点,因为在 SwapBuffers 的两次调用之间,我渲染的场景中的许多部分保持不变,只有一小部分(矩形)发生了变化,所以我想避免不必要地渲染其他 90% 的场景每次。

像素缓冲区对象似乎可以帮助我们使用直接内存访问将像素从 FrameBuffer 复制到像素缓冲区对象。我的机器不支持它,但即使它支持,我们也会再次分配一个额外的缓冲区。

那么是否真的完全没有办法在我的窗口的后缓冲区和前缓冲区之间复制内容或部分内容?

最佳答案

自 OpenGL 3.0(或通过扩展可用的更早版本)以来,您可以按如下方式执行此操作:

glReadBuffer(GL_BACK);
glDrawBuffer(GL_FRONT);
glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1,
dstX0, dstY0, dstX1, dstY1, GL_COLOR_BUFFER_BIT, GL_NEAREST);

关于c++ - 将数据从后台缓冲区复制到前台缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10916310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com