Визуализация SurfaceTexture в GLSurfaceView - Android - PullRequest
0 голосов
/ 25 января 2020

У меня есть 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.

.
...