From Michael Platings, To address performance bottleneck that occurs when using large number of uniforms introduced a name to uniqued ID scheme for Uniforms so comparisons can be done on a uint rather than a string.

This commit is contained in:
Robert Osfield
2010-11-25 12:30:38 +00:00
parent 4b4e02e45b
commit cdfbb7a753
5 changed files with 48 additions and 14 deletions

View File

@@ -1253,7 +1253,7 @@ class OSG_EXPORT State : public Referenced, public Observer
}
inline const Program::PerContextProgram* getLastAppliedProgramObject() const { return _lastAppliedProgramObject; }
inline GLint getUniformLocation( const std::string& name ) const { return _lastAppliedProgramObject ? _lastAppliedProgramObject->getUniformLocation(name) : -1; }
inline GLint getUniformLocation( unsigned int uniformNameID ) const { return _lastAppliedProgramObject ? _lastAppliedProgramObject->getUniformLocation(uniformNameID) : -1; }
inline GLint getAttribLocation( const std::string& name ) const { return _lastAppliedProgramObject ? _lastAppliedProgramObject->getAttribLocation(name) : -1; }
typedef std::pair<const StateAttribute*,StateAttribute::OverrideValue> AttributePair;