我想在一个线程中渲染我的场景,然后在另一个线程拥有的窗口中将结果blit。为了避免将帧缓冲区读回到cpu内存,我想使用framebuffer对象。到目前为止,我还没有能够使这个工作(白色纹理),这让我相信opengl不支持这个。
如果有人可以指出我在文档中描述的位置,那将是一个奖励。
答案 0 :(得分:9)
无法在不同的上下文之间共享帧缓冲区。请参阅附录D的第一段,OpenGL 3.3规范。但是,您可以共享纹理和渲染缓冲区,这应该可以满足您的需要。
至于线程:它应该是可能的,但通常建议不要从多个线程发出GL命令(因为它很难同步)。通常,您将内容复制到pixel-buffer-object并从GL线程映射,然后使用另一个线程中的映射指针。