Android için C++'da tamamen OpenGL ES 2.0 uygulamak için çalışıyorum.Android Yerel NDK OpenGL ES: kullanılmayan API
Şu anda programımız JNI veya projede herhangi bir java sınıfı olmadan çalışır, bunun yerine yalnızca NativeActivity değerini kullanır. Android.mk yılında
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);
}
dahil:
LOCAL_LDLIBS := -landroid -llog -lEGL -lGLESv1_CM -lOpenSLES -lGLESv2
Ve AndroidManifest.xml
bilgilendirilir: uygulama oluşturma kısmında kendisi üzerinde yoğunlaşırken , biz basit bir yöntem var<uses-feature android:glEsVersion="0x00020000"></uses-feature>
Program, hata ayıklayıp sorun çıkarmaz.
GLSurfaceView surfaceView = new GLSurfaceView(this);
surfaceView.setEGLContextClientVersion(2);
Ancak setEGLContextClientVersion tür bir taşımaktadır: - Komut setEGLContextClientVersion, Android: GLES20: Called unimplemented OpenGL ES API koduna dahil
error libEGL called unimplemented OpenGL ES API
Forum java için çalışılabilir bir öneri verir: çalıştırmak için ayarlandığında, mesaj geliyor Sarıcı yöntemi java için kastetti.
SetEGLContextClientVersion, OpenGL ES native'ye ait değildir ve yerel C++ OGLES geliştirme için geçerli olamaz.
const EGLint attribList[] = {EGL_CONTEXT_CLIENT_VERSION, 2,EGL_NONE};
mContext = eglCreateContext(mDisplay, lConfig, EGL_NO_CONTEXT,attribList);
Ama hata henüz gitmediyse:
nedenle, onun yerine kullanılan.
Teşekkürler! Önerinizi takip ettim. Sorunu çözdü. – ThreaderSlash