Is this a joke? I hope it is because I hear VBO is the way to go and I want to use it from now on.
2 Answers
As Reto Koradi explained, 2.2 has VBO support but no Java bindings. To use VBO on 2.2 you can use GLES20Fix
bridge from official GDC11 demo: https://code.google.com/p/gdc2011-android-opengl/
However, 2.2 is almost completely extinct now so you can just use minimum API level 9. Stats of currently used Android versions: http://developer.android.com/about/dashboards/index.html

- 5,315
- 29
- 54
That's sort of true, at least if you're using the Java APIs. OpenGL ES 2.0, which includes VBO support, was added with API level 8, which corresponds to 2.2 (Froyo).
But they initially forgot to include a proper Java binding for the key entry point needed for VBO support. It ended up getting added in API level 9, which corresponds to 2.3 (Gingerbread). So in Froyo, you can use VBOs from native code with the NDK, but not with the Java bindings. The native bindings for ES 2.0 were actually there even before Froyo, I remember using them in Éclair.
You can see this by looking at the GLES20
documentation, it says "Added in API level 8".
But if you look at the small print next to the glVertexAttribPointer()
call that takes an int
as its last argument, it says that it was introduced with API level 9 (direct documentation link).

- 53,228
- 8
- 93
- 133