私はOpenGL ES 2.0をAndroid用にC++で完全に実装しようとしています。Android Native NDK OpenGL ES:実装されていないAPI
現在のところ、私たちのプログラムは、JNIやプロジェクト内のJavaクラスなしで、代わりにNativeActivityを使用して実行されます。部品自体のレンダリングアプリケーションに焦点を当て
は、我々は簡単な方法だ:Android.mkで
renderWorld()
{ GLfloat vVertices[] = { 0.0f, 0.5f, 0.0f,
-0.5f, -0.5f, 0.0f,
0.5f, -0.5f, 0.0f };
glClear (GL_COLOR_BUFFER_BIT);
glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 0, vVertices);
glEnableVertexAttribArray (0);
glDrawArrays (GL_TRIANGLES, 0, 3);
}
が含まれていました:
LOCAL_LDLIBS := -landroid -llog -lEGL -lGLESv1_CM -lOpenSLES -lGLESv2
とのAndroidManifest.xmlには通知された:
<uses-feature android:glEsVersion="0x00020000"></uses-feature>
したがって、プログラムは問題なくデバッグしてコンパイルします。
GLSurfaceView surfaceView = new GLSurfaceView(this);
surfaceView.setEGLContextClientVersion(2);
はしかし、setEGLContextClientVersionはの一種である: - コードコマンドsetEGLContextClientVersionに含め、Android: GLES20: Called unimplemented OpenGL ES API
error libEGL called unimplemented OpenGL ES API
フォーラムは、Javaのための実行可能な提案を与える:実行するように設定すると、メッセージが来ますJava用のラッパーメソッド。
setEGLContextClientVersionはOpenGL ESネイティブに属しておらず、ネイティブC++ OGLES開発には適用できません。
const EGLint attribList[] = {EGL_CONTEXT_CLIENT_VERSION, 2,EGL_NONE};
mContext = eglCreateContext(mDisplay, lConfig, EGL_NO_CONTEXT,attribList);
しかし、エラーがまだ消えていません。
はしたがって、私が代わりに使用しました。
ありがとうございました!私はあなたの提案に従った。それは問題を解決しました。 – ThreaderSlash