OpengGL是一个状态机

Posted on 2012-03-13 14:43  无忧consume  阅读(175)  评论(0编辑  收藏  举报

  OpenGL是一个状态机,尤其是使用固定功能的管线。可以设置它的各种状态(或模式),然后让这些状态一直生效,直到再次修改它们。

  每个状态变量(或模式)都有一个默认值。在任何时候都可以向系统查询每个状态变量的当前值。一般情况下,可以使用  glGetBooleanv(),glGetDoublev(),glGetIntegerv(),glGetfloatv(),glGetPointerv(),或glIsEnabled(),之一来完成这个任务。具体选择的函数取决于希望返回的结果的数据类型。

  有些状态变量还有更为特定的查询函数,如glGetLight*(),glGetError()或glGetPolygonStipple()等。

  还可以使用glPushAttrib(),glPushClientAttrib()函数把状态变量集合保存到一个属性栈中,对它们进行临时的修改,以后再用glPopAttrirb()或glPopClientAttrib()恢复这些值。如果需要对状体变量进行临时修改,就应该使用这些函数。

Copyright © 2025 无忧consume
Powered by .NET 9.0 on Kubernetes