glDelete在iOS上支持CPU使用率

时间:2017-02-25 10:55:17

标签: android c++ ios opengl-es

我正在使用C ++和GLES 2工作移动渲染库。在我的示例项目中,这是一个基本的演示应用程序(适用于Android和iOS),我渲染一个地图。由于地图的移动,缩放等,几何图形必须发生巨大变化。这必须尽快发生。

该库正在使用共享的GL上下文。主要直接在屏幕上绘制一些简单的纹理四边形。另一个绑定到后台工作线程,并将复杂的几何绘制到这些纹理。它还处理所有网格删除操作。

Mesh 类包含VBO和IBO缓冲区。它有绘图的逻辑。当要丢弃网格时,有两次调用glDeleteBuffers来删除vbo和ibo缓冲区。

void Mesh::free()
{
    if (vbo_ != 0)
        glDeleteBuffers(1, &vbo_);
    if (ibo_ != 0)
        glDeleteBuffers(1, &ibo_);
}

我的问题只发生在iOS上,CPU在这两次调用上花了很长时间。 CPU使用率达到100%,我可以看到内存使用率非常缓慢下降。我无法分辨出原因是什么。 在Android上同样的场景是顺畅的,我不必等待几秒钟。这对我来说是个大问题,因为图书馆的目标是在普通电话上达到至少30 fps。

0 个答案:

没有答案