我可以在glPushAttrib(GL_ALL_ATTRIB_BITS)
和glPopAttrib()
之间做任何我想做的事情,并且仍然不会使用-在前后设置gl状态(这些功能提供完全隔离)吗?
最佳答案
不,那只能将服务器端的状态压入堆栈。
也有客户端状态,例如像素存储和顶点数组。对于他们,您必须使用 glPushClientAttrib (...)
。
虽然不经常更改像素存储状态,但在不赞成使用的代码中,顶点阵列状态的更改非常常见。因此,如果要正确执行此操作,则需要保存和还原服务器和客户端状态。