मैं एंड्रॉइड के लिए पूरी तरह से सी ++ में ओपनजीएल ईएस 2.0 को लागू करने के लिए काम कर रहा हूं।एंड्रॉइड नेटिव एनडीके ओपनजीएल ईएस: अनुपूरक एपीआई
वर्तमान में हमारा प्रोग्राम परियोजना में जेएनआई या किसी भी जावा क्लास के बिना चलता है, बजाय केवल मूल सक्रियता का उपयोग करता है।
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);
}
Android.mk में शामिल किया गया था:
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 एक की तरह है: -, Android: GLES20: Called unimplemented OpenGL ES API आदेश setEGLContextClientVersion कोड सहित
error libEGL called unimplemented OpenGL ES API
फोरम एक सुझाव जावा के लिए व्यावहारिक देता है: जब चलाने के लिए सेट, संदेश आता है जावा के लिए रैपर विधि का मतलब है।
setEGLContextClientVersion OpenGL ES देशी से संबंधित नहीं है, और देशी सी ++ ogles विकास के लिए लागू नहीं हो सकता है।
इसलिए, मैं बजाय प्रयोग किया:
const EGLint attribList[] = {EGL_CONTEXT_CLIENT_VERSION, 2,EGL_NONE};
mContext = eglCreateContext(mDisplay, lConfig, EGL_NO_CONTEXT,attribList);
लेकिन त्रुटि दूर अभी तक नहीं गया है।
धन्यवाद आदमी: आप की तरह EGL विशेषता EGL_OPENGL_ES2_BIT इस्तेमाल किया था! मैंने आपके सुझाव का पालन किया। यह समस्या हल हो गई। – ThreaderSlash