2.8 branch: Merge 11959 from trunk. Makes Object::setName() virtual, which fixes an issue with the uniform name ID mechanism.
This commit is contained in:
@@ -96,10 +96,14 @@ class OSG_EXPORT Object : public Referenced
|
||||
|
||||
|
||||
/** Set the name of object using C++ style string.*/
|
||||
inline void setName( const std::string& name ) { _name = name; }
|
||||
virtual void setName( const std::string& name ) { _name = name; }
|
||||
|
||||
/** Set the name of object using a C style string.*/
|
||||
inline void setName( const char* name ) { _name = name; }
|
||||
inline void setName( const char* name )
|
||||
{
|
||||
if (name) setName(std::string(name));
|
||||
else setName(std::string());
|
||||
}
|
||||
|
||||
/** Get the name of object.*/
|
||||
inline const std::string& getName() const { return _name; }
|
||||
|
||||
@@ -232,7 +232,7 @@ class OSG_EXPORT Uniform : public Object
|
||||
Type getType() const { return _type; }
|
||||
|
||||
/** Set the name of the glUniform, ensuring it is only set once.*/
|
||||
void setName( const std::string& name );
|
||||
virtual void setName( const std::string& name );
|
||||
|
||||
/** Set the length of a uniform, ensuring it is only set once (1==scalar)*/
|
||||
void setNumElements( unsigned int numElements );
|
||||
|
||||
@@ -88,8 +88,8 @@ void Uniform::setName( const std::string& name )
|
||||
osg::notify(osg::WARN) << "cannot change Uniform name" << std::endl;
|
||||
return;
|
||||
}
|
||||
_name = name;
|
||||
_nameID = getNameID(name);
|
||||
Object::setName(name);
|
||||
_nameID = getNameID(_name);
|
||||
}
|
||||
|
||||
void Uniform::setNumElements( unsigned int numElements )
|
||||
|
||||
Reference in New Issue
Block a user