メインスレッド外でテクスチャを読み込むために複数のEGLコンテキストを使用しようとしています。 エラーが発生しました。eglCreateContext
呼び出し後にエラーが発生します。 android.opengl.RendererOpenGLコンテキストのAndroid間のリソースの共有
public void onSurfaceCreated (javax.microedition.khronos.opengles.GL10 gl, EGLConfig config) {
// ...
EGLContext sharedContext = egl.getCurrentContext();
EGLDisplay display = eglGetCurrentDisplay();
eglCreateContext(display, config, sharedContext, new int[] { EGL_CONTEXT_CLIENT_VERSION, 2 });
}
がEGL_BAD_CONTEXT
がshare_contextが同じクライアントのEGLレンダリングコンテキストがない場合は
EGL_BAD_CONTEXTが生成されると言うドキュメントhere、に私を導く私のインサイド
新しく作成されたコンテキストとしてのAPI型であり、EGL_NO_CONTEXTではありません。
これが私がEGL_CONTEXT_CLIENT_VERSION
パラメータを追加した理由ですが、それは効果がないようです。
私が見ているのは、このエラーが発生しているにもかかわらず、コンテキストが半有効であるようです。私は、そのスレッドでテクスチャを作成することがエラーが発生することはありません、この後に別のスレッドに
egl.eglMakeCurrent(display, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, context);
を、それを使用することができますよ。しかし、テクスチャ名は共有されていないことがわかります。各スレッドは0からカウントアップしているようです。
私の次の仮定は、コンテキスト間の表面を共有する必要があるということでした。しかし、誰かが欠けているか知っているん私は私のeglMakeCurrent
に元のコンテキストから同じ表面を通過するが、私はそこほとんどだかのように私は感じ
E/AndroidRuntime(3210): java.lang.IllegalArgumentException
E/AndroidRuntime(3210): at com.google.android.gles_jni.EGLImpl._eglCreateContext(Native Method)
E/AndroidRuntime(3210): at com.google.android.gles_jni.EGLImpl.eglCreateContext(EGLImpl.java:54)
で完全に失敗した場合は?