在两个渲染线程之间共享OpenGL纹理



我有一个GLSurfaceView的接口渲染,但在某个时候,我启动了另一个渲染线程,以便能够以更大的规模渲染接口的一部分(只是几个纹理),然后将它们作为图像文件写入sd卡。我想知道,当我启动另一个用于写入磁盘的渲染器时,是否以及如何使用我已经加载到GUI渲染线程中的大型纹理?

目前,我有一个非常糟糕的解决方法,那就是在加载纹理后将bmp保存在内存中,然后当我启动写磁盘渲染器时,我只是从位图创建一个新纹理。但显然,当我觉得这真的没有必要时,这既耗时又消耗内存,因为位图实际上已经作为一个大纹理加载在GPU中的某个地方了。

您可以使用共享上下文。当您为第二个线程创建上下文时,将第一个上下文作为shared_context参数传递。然后,可以使用与原始线程中相同的控制柄访问第二个线程中的纹理。

相关内容

  • 没有找到相关文章

最新更新