如何在OpenGL-ES中获得VBO的大小?

时间:2010-09-29 06:51:34

标签: opengl-es

我每次想要绘制它们时都会向GPU发送顶点数组(32位浮点数),但这并不高效,所以我切换到顶点缓冲区对象来缓存GPU中的顶点数组。

它正在工作,但我想知道是否有办法在不返回原始顶点数组的情况下确定给定VBO的大小?这是我正在努力的过程:

  1. 我有一个顶点数组,例如,六个32位浮点数。
  2. 我通过OpenGL-ES将顶点数组发送到GPU,并将其存储在VBO中 - 我保留了一个句柄。
  3. 此时我的顶点数组是多余的,所以我删除了它。
  4. 后来我使用句柄使OpenGL-ES绘制了一些东西,但此时我还想知道如何确定最初用于创建VBO的顶点数组的大小。我现在只有VBO句柄 - 我能否以某种方式重新确定我在这个VBO中存储了6个32位浮点数?

我可能错过了一些非常明显的东西。 谢谢你的任何建议!

1 个答案:

答案 0 :(得分:18)

卫生署!刚发现它:

int nBufferSize = 0;

glGetBufferParameteriv(GL_ARRAY_BUFFER,GL_BUFFER_SIZE,& nBufferSize);

int originalVertexArraySize =(nBufferSize / sizeof(float));