【问题标题】:Share OpenGL textures between two rendering threads?在两个渲染线程之间共享 OpenGL 纹理?
【发布时间】:2012-08-14 14:23:24
【问题描述】:

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

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

【问题讨论】:

    标签: android opengl-es textures memory-optimization


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 2018-10-01
      • 1970-01-01
      • 2013-06-03
      • 2013-12-27
      • 2011-07-26
      • 1970-01-01
      相关资源
      最近更新 更多