I'm having no luck using any of the OpenGL 3.0 shader functions on my Nexus 5 w/ KitKat 4.4, I get "called unimplemented opengl es api" for functions such as
glCreateProgram()
glShaderSource()
glCompileShader()
e.t.c. I am performing all calls whilst the OpenGL context is active. I can't imagine that these functions would not be implemented, so believe I must be doing something wrong! I have included the following
<GLES3/gl3.h>
<GLES2/gl2ext.h>
<GLES3/gl3platform.h>
and am using
-lGLESv3
in my LOCAL_LDLIBS. I noticed that in EGL/egl.h there is no EGL_OPENGL_ES3_BIT, so during context creation if I don't define EGL_RENDERABLE_TYPE, or if I use EGL_OPENGL_ES2_BIT, the results are the same.
A bit more info on where I am in case it helps: I'm porting my OpenGL game engine from Windows to Android using OpenGL ES 3.0 and the NDK. I have everything compiling ok with no errors, and have tested and verified that windowing, GL context management, Android lifecycle integration and the basic running of the engine works ok. I have a basic scene which simply activates the context, performs a glClearColour then swaps buffers, pulsating from black to red every second, and it works the same as it does on Windows.
Any help would be appreciated!
Turns out I also had to use EGL_CONTEXT_CLIENT_VERSION when using eglCreateContext: