14

我想在一个线程中渲染我的场景,然后在另一个线程拥有的窗口中对结果进行 blit。为了避免将帧缓冲区读回 CPU 内存,我想使用一个帧缓冲区对象。到目前为止,我还不能让它工作(白色纹理),这让我相信这不受 opengl 支持。

  1. 是否可以在不同的上下文之间共享帧缓冲区对象?
  2. 考虑到对象一次只被一个线程绑定,是否可以在不同线程之间共享一个帧缓冲区对象?

如果有人可以指出我在文档中描述的位置,那将是一个奖励。

4

1 回答 1

12

不可能在不同的上下文之间共享帧缓冲区。请参阅附录 D 的第一段,OpenGL 3.3 规范。但是,您可以共享纹理和渲染缓冲区,这应该可以满足您的需求。

至于线程:应该可以,但一般建议不要从多个线程发出GL命令(因为它很难同步)。通常,您会将内容复制到像素缓冲区对象并从 GL 线程映射它,然后使用来自另一个线程的映射指针。

于 2010-12-08T13:16:01.100 回答