Android 용 C++에서 OpenGL ES 2.0을 완전히 구현하려고합니다.Android Native NDK OpenGL ES : 구현되지 않은 API
현재 Google 프로그램은 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 용입니다.
setEGLContextClientVersion은 OpenGL ES 네이티브에 속하지 않으므로 네이티브 C++ OGLES 개발에 적용 할 수 없습니다.
const EGLint attribList[] = {EGL_CONTEXT_CLIENT_VERSION, 2,EGL_NONE};
mContext = eglCreateContext(mDisplay, lConfig, EGL_NO_CONTEXT,attribList);
을하지만 오류가 아직 사라지지했습니다
따라서, 내가 대신 사용했다.
감사합니다. 나는 너의 제안을 따랐다. 그것은 문제를 해결했습니다. – ThreaderSlash