0

カメラからのフレームをエンコードするためにメディアコーデックを使用しており、gl サーフェスビューを使用してレンダリングしています。

私の ondrawframe は次のようになります

public void onDrawFrame(GL10 unused)
{
        float[] mtx = new float[16];
        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);
        surface.updateTexImage();
        surface.getTransformMatrix(mtx); 

        mDirectVideo.draw(surface);
        saveRenderState();

        delegate.mInputSurface.makeCurrent();
        mDirectVideo.draw(surface);
        delegate.swapBuffers();
        restoreRenderState();

}

したがって、ここでは、サーフェスにレンダリングする Draw(surface) を 2 回実行しています。これにより、システムのオーバーヘッドが発生します。オンドローを1回だけできるところはありますか?シェーダーを 2 回使用するのはコストのかかる操作です。レンダーとエンコーダーの間でサーフェスを共有する方法はありますか?

4

1 に答える 1