StateAttribute类

来源:互联网 发布:数据库支持的数据类型 编辑:程序博客网 时间:2024/05/16 13:54

osg::StateAttribute类是一个无法直接实例化的虚基类。
其函数如下:
unsigned int getMember() const
函数说明:虚函数,用于获取属性的成员号
bool getModeUsage(StateAttribute::ModeUsage &) const
函数说明:虚函数,用于获取与属性绑定的渲染模式
int compare(const StateAttribute &) const
函数说明:用于比较两个渲染属性,这个函数可以用于两个渲染状态集的比较
const ParentList &getParents() const
函数说明:获取父对象列表,渲染属性的父对象是渲染状态集类型
void apply(State &) const
函数说明:虚函数,应用这个渲染属性,可被派生类继承
void compileGLObjects(State &) const
函数说明:虚函数,用于编译OpenGL对象,某些渲染属性(例如纹理)需要预先进行编译
void releaseGLObjects(State *) const
函数说明:虚函数,用于释放编译得到的OpenGL对象

OSG允许用户根据场景图形中任意位置的渲染属性和模式需求单独改变原有的状态继承特性。可以选择以下几种枚举形式。
osg::StateAttribute::OVERRIDE:如果将一个模式属性和模式设置为OVERRIDE,那么所有的子节点都将继承这一属性或模式,子节点对它们的更改将会无效。
osg::StateAttribute::PROTECTED:这种形式可以视为OVERRIDE的一个例外。凡是设置为PROTECTED的渲染属性或模式,均不会受到父节点的影响。
osg::StateAttribute::INHERIT:这种模式强制子节点继承父节点的渲染状态,其效果是子节点的渲染状态被解除,而使用父节点的状态替代。