У меня есть CameraX Preview, который предоставляет мне SurfaceTexture с фидом камеры:
Preview preview = new Preview.Builder().build();
preview.setPreviewSurfaceProvider((resolution, surfaceReleaseFuture) -> {
SurfaceTexture surfaceTexture = new SurfaceTexture(0);
surfaceTexture.setDefaultBufferSize(resolution.getWidth(), resolution.getHeight());
final Surface surface = new Surface(surfaceTexture);
// Once surfaceReleaseFuture completes, the Surface and SurfaceTexture
// are no longer used by the camera hence safe to close.
surfaceReleaseFuture.addListener(() -> {
surface.release();
surfaceTexture.release();
}, ContextCompat.getMainExecutor(this.reactContext));
// Return the Surface back in a ListenableFuture
return Futures.immediateFuture(surface);
});
Код запускается внутри класса, расширяющего GLSurfaceView
при монтировании компонента, и меня беспокоит то, как я могу отрендерить подачу камеры в onDrawFrame
? Я читал, что для этого мне понадобится binf GL_TEXTURE_EXTERNAL_OES
, но я понятия не имею, как это реализовать, а затем рендерил текстуру 'fullscreen' на GLSurfaceView
.
.