libgdx/libgdx — pull request #2503 by NateAustin (2014-10-24 23:29:06+00:00)
Title: Lwjgl backend doesn't support OpenGL ES 3.2+ #2087

Fixes several issues that were preventing libgdx from working with OpenGL 3.2 core profiles.

* In core profiles glGetString(GL_EXTENSIONS) is deprecated, so a new mechanism is used to test for extensions.
* In core profiles VAOs are mandatory, and storing vertex data in client memory is not allowed. So VertexArray and VertexBufferObject cannot be used. I've created a new VertexData implementation, VertexBufferObjectWithVAO. This is based on the VertexBufferObject code, but is uses VAOs to bind the VBO instead of setting the attributes and data for each draw call. I modified Mesh to use the new implementation when GL30 is present, and I modified the users of the "expert" mesh constructor to also test for this case.

With these changes SpriteBatch and Mesh function properly on my machine. No shader changes were needed.

I have tested this on my windows desktop. My code uses SpriteBatch, BitmapFont, and custom meshes and shaders extensively.

I have not tested on Mac, Mobile, or GWT. (I strongly suspect GWT will still not work if a 3.0 core profile is requested.)