Tightened up the setting of the Member property of Texture attributes

This commit is contained in:
Robert Osfield 2018-08-08 07:34:14 +01:00
parent 985e82049f
commit 6d0b8c4693

View File

@ -1459,10 +1459,10 @@ void StateSet::setTextureAttribute(unsigned int unit,StateAttribute *attribute,
{
if (attribute->isTextureAttribute())
{
setAttribute(getOrCreateTextureAttributeList(unit),attribute,value);
TextureAttribute* ta = dynamic_cast<TextureAttribute*>(attribute);
if (ta) ta->setTextureUnit(unit);
setAttribute(getOrCreateTextureAttributeList(unit),attribute,value);
}
else
{
@ -1488,11 +1488,11 @@ void StateSet::setTextureAttributeAndModes(unsigned int unit,StateAttribute *att
}
else
{
setAttribute(getOrCreateTextureAttributeList(unit),attribute,value);
setAssociatedTextureModes(unit,attribute,value);
TextureAttribute* ta = dynamic_cast<TextureAttribute*>(attribute);
if (ta) ta->setTextureUnit(unit);
setAttribute(getOrCreateTextureAttributeList(unit),attribute,value);
setAssociatedTextureModes(unit,attribute,value);
}
}
else
@ -1565,27 +1565,27 @@ void StateSet::removeTextureAttribute(unsigned int unit, StateAttribute* attribu
StateAttribute* StateSet::getTextureAttribute(unsigned int unit,StateAttribute::Type type)
{
if (unit>=_textureAttributeList.size()) return 0;
return getAttribute(_textureAttributeList[unit],type,0);
return getAttribute(_textureAttributeList[unit],type,unit);
}
const StateAttribute* StateSet::getTextureAttribute(unsigned int unit,StateAttribute::Type type) const
{
if (unit>=_textureAttributeList.size()) return 0;
return getAttribute(_textureAttributeList[unit],type,0);
return getAttribute(_textureAttributeList[unit],type,unit);
}
StateSet::RefAttributePair* StateSet::getTextureAttributePair(unsigned int unit, StateAttribute::Type type)
{
if (unit>=_textureAttributeList.size()) return 0;
return getAttributePair(_textureAttributeList[unit],type,0);
return getAttributePair(_textureAttributeList[unit],type,unit);
}
const StateSet::RefAttributePair* StateSet::getTextureAttributePair(unsigned int unit, StateAttribute::Type type) const
{
if (unit>=_textureAttributeList.size()) return 0;
return getAttributePair(_textureAttributeList[unit],type,0);
return getAttributePair(_textureAttributeList[unit],type,unit);
}
bool StateSet::checkValidityOfAssociatedModes(osg::State& state) const