標準の GLSurfaceView クラスがあります。
public class TestSurfaceView extends GLSurfaceView {
public MainRenderer mRenderer;
public GStreamerSurfaceView(Context context) {
super(context);
setEGLContextClientVersion(2);
mRenderer = new MainRenderer(context);
setRenderer(mRenderer);
setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);
}
}
GLSurfaceView.Renderer を実装する Renderer クラスがあります。
public class MainRenderer implements GLSurfaceView.Renderer {
private int[] hTex;
private SurfaceTexture mSTexture;
private Context context;
MainRenderer(Context c) {
context = c;
}
public void onSurfaceCreated(GL10 unused, EGLConfig config) {
}
public void onDrawFrame(GL10 unused) {
}
public void onSurfaceChanged(GL10 unused, int width, int height) {
}
public void onSurfaceCreated(GL10 arg0, javax.microedition.khronos.egl.EGLConfig arg1) {
}
}
別の JNI スレッドで、いくつかのビデオ データ (YUV 形式) を OpenGLES テクスチャにアップロードしました。新しいテクスチャが利用可能であり、対応するテクスチャ ID があるという通知を Java で受け取ります。
パフォーマンスへの影響を最小限に抑えて、Renderer クラスでこのテクスチャのコンテンツを表示するにはどうすればよいですか?