【发布时间】:2011-03-15 15:37:43
【问题描述】:
Android OpenGL-ES VBO 支持与否?我该如何检查?
谢谢
【问题讨论】:
Android OpenGL-ES VBO 支持与否?我该如何检查?
谢谢
【问题讨论】:
有些手机支持,有些不支持。一般情况下,OpenGL 1.1 中的 VBO 是强制性的,所以如果设备报告了
gl.glGetString(GL10.GL_VERSION);
作为 1.1 或更高版本(您也可以编写应用清单文件,以便安装需要 1.1)然后支持它们。
如果设备只支持OpenGL ES 1.0,你应该检查返回值
gl.glGetString(GL10.GL_EXTENSIONS);
是否包含ARB_vertex_buffer_object。应该会吧。
关于 Android 设备的各种 GL 功能的(略微)相关信息,您可以在以下问题中找到一些信息:OpenGL extensions available on different Android devices。
【讨论】:
void draw(GL10 gl){
GL11 gl11 = (GL11)gl;
...
gl11.glBindBuffer(...);
}
【讨论】:
OpenGL ES 2.0 很好地支持 VBO,但在 Android 2.2 中存在一个问题,它缺少 GLES20 类中的 api:
public static native void glDrawElements(
int mode,
int count,
int type,
int offset
);
该问题已从 Android 2.3 开始修复。
【讨论】: