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

Mon*_*urd 14 opengl-es

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

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

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

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

Mon*_*urd 20

卫生署!刚发现它:

int nBufferSize = 0;

glGetBufferParameteriv(GL_ARRAY_BUFFER,GL_BUFFER_SIZE,&nBufferSize);

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