I have an OpenGL engine set up, and have added OpenGL ES support to it recently. Currently I am targeting android, and in an effort to speed up debugging I have added OpenGL ES support to the windows side of things using the MALI GLES 3.0 Emulator.
I am using the GL_OES_mapbuffer extension if it is available for sprite rendering, falling back to glBufferData if it isn't. This works on both my test phone, which supports the extension, and the android emulator, which doesn't. However running this on my main computer results in the call to glMapBufferOES to return null and calling glGetError returns GL_INVALID_VALUE. I find this strange, since glMapBuffer shouldn't even return GL_INVALID_VALUE, so I assume this is a bug.
I am calling glMapBufferOES with these arguments, it should be valid for OpenGL ES. glMapBufferOES(GL_ARRAY_BUFFER, GL_WRITE_ONLY);
Does anyone have any idea why this would be happening, any help would be appreciated.
It still gives GL_INVALID_ENUM for target GL_ELEMENT_ARRAY_BUFFER, though it works fine with GL_ARRAY_BUFFER. Please confirm if it is the case or Its not working only for me.
Hi Programmdude,
I will raise this with the Tools team and get back to you.
Cheers,
Stephen
Having looked at the specification for glMapBufferOES extension. It says that it is based on the OpenGL 2.0 function glMapBuffer. In the OpenGL2.0 spec there is no support for GL_ELEMENT_ARRAY_BUFFER this was introduced later. As a result it is also not supported in the emulator.
Kind regards,