有人知道将过多的OpenGL调用放入显示列表会导致它失败吗?如果是这样,有没有人估计有多少电话可能会这样做?它与视频内存有关吗?
我从JOGL调用OpenGL,但我认为这不重要。
答案 0 :(得分:4)
根据此documentation page,如果您尝试编译太大的列表,则应该收到GL_OUT_OF_MEMORY
错误消息。
确保在创建列表之前和之后调用glGetError()
并处理所有结果,直到返回GL_NO_ERROR
。
似乎没有办法估计列表可以包含的命令数。这可能是因为每个命令都采用不同的大小,具体取决于其参数和使用的设备特定编码。列表保存在卡的视频内存中,因此,如果您使用的是相对非古老的卡,对于任何合理大小的列表,这通常都不是问题。 如果你确实发现这确实是问题,你可以使用Vertex数组甚至是VBO