My application (written in C++ with a Java bootstrap code) is running perfect on my Android MID device, but it’s not working on a friend’s Moto MB865 phone.
After digging with the GL context creation procedure, I found the EGL_NATIVE_RENDERABLE is GL_FALSE for all configurations which support OpenGL ES 2.0
It means I cannot access OpenGL ES 2.0 with my native code.
Why does the system has this strange restriction? I thought the native code can access all the OpenGL configurations before this.
Is there any way to work around this restriction? Or do I have to write a delegate to access EGL2 via JNI?
EGL_NATIVE_RENDERABLEhas nothing to do with the NDK.It just indicates the capability of the native rendering API to draw to buffers.
Refer to EGL spec: http://www.khronos.org/registry/egl/specs/eglspec.1.4.pdf
Paragraph
2.2.3 Interaction With Native Rendering:The reason of your problem should be different (GLES 2.0 unsupported, etc.).