Рендеринг SurfaceTexture на GLSurfaceView — Android

У меня есть предварительный просмотр CameraX, который предоставляет мне 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, но понятия не имею, как это реализовать, а затем визуализировать текстуру в полноэкранном режиме на GLSurfaceView.


person annitotrk    schedule 25.01.2020    source источник
comment
В Интернете доступно множество примеров кода. Вот один .   -  person greeble31    schedule 25.01.2020
comment
Спасибо, это работает! Из-за другого варианта использования и описания я не мог найти его раньше   -  person annitotrk    schedule 26.01.2020
comment
Благодаря @greeble31, наконец, нашел ответ в ветке: -2-0" title="поворот предварительного просмотра камеры Android на 90 градусов в glsurfaceview с использованием opengl 2 0"> stackoverflow.com/questions/36703984/   -  person annitotrk    schedule 26.01.2020