2

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

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

4

1 回答 1

0

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

于 2013-08-16T12:59:16.893 回答