可以在后台线程中更新纹理但在前景线程中打印纹理吗?

时间:2018-11-23 06:18:51

标签: android opengl-es webrtc opengl-es-2.0

在webRTC中,在SurfaceTextureHelper中,surfaceTexture(用于处理openGL纹理的创建/更新)是在后台线程内创建的:

final HandlerThread thread = new HandlerThread(threadName);
thread.start();

我们在这个新创建的线程中

oesTextureId = GlUtil.generateTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);
surfaceTexture = new SurfaceTexture(oesTextureId); 

问题是OnFrameAvailableListener的{​​{1}}将在创建surfacetexture的线程中被调用(无缝逻辑)。我的问题是我的应用程序的所有绘制都在主UI线程中完成(而且我无法更改),因此我在这里最终将在背景线程中更新纹理( surfacetexture的纹理),但将打印在前景线程上。

是否有可能正常工作? textureID永远不会改变,只是纹理的内容会在bakcground线程中更新

0 个答案:

没有答案