Может ли текстура обновляться в фоновом потоке, но печататься в основном потоке? - PullRequest
0 голосов
/ 23 ноября 2018

В 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 из surfacetexture будет вызываться в потоке, в котором был создан surfacetexture (логический шов).Моя проблема в том, что все рисование моего приложения выполняется в основном потоке пользовательского интерфейса (и я не могу это изменить), поэтому здесь я получаю нечто, где текстура будет обновляться в фоновом потоке (текстураиз GL_TEXTURE_EXTERNAL_OES), но будет напечатан в главном потоке.

Возможно ли, что это сработает?textureID никогда не меняется, только содержимое текстуры обновляется в потоке bakcground

...