Added support for OpenGL mode black listing to provide better support

for extension checking and invalidation of OpenGL modes associated with
extensions.
This commit is contained in:
Robert Osfield
2006-02-22 14:31:13 +00:00
parent bd68d96106
commit 32b929a493
10 changed files with 110 additions and 11 deletions

View File

@@ -1131,6 +1131,32 @@ const StateSet::RefAttributePair* StateSet::getTextureAttributePair(unsigned int
return getAttributePair(_textureAttributeList[unit],type,0);
}
bool StateSet::checkValididityOfAssociatedModes(osg::State& state) const
{
bool modesValid = true;
for(AttributeList::const_iterator itr = _attributeList.begin();
itr!=_attributeList.end();
++itr)
{
if (!itr->second.first->checkValididityOfAssociatedModes(state)) modesValid = false;
}
for(TextureAttributeList::const_iterator taitr=_textureAttributeList.begin();
taitr!=_textureAttributeList.end();
++taitr)
{
for(AttributeList::const_iterator itr = taitr->begin();
itr!=taitr->end();
++itr)
{
if (!itr->second.first->checkValididityOfAssociatedModes(state)) modesValid = false;
}
}
return modesValid;
}
void StateSet::compileGLObjects(State& state) const
{