void Material::SetShader( const Shader* shader )
{
mShader = shader;
- // @todo inform NewRenderer about this shader
+ // Inform NewRenderer about this shader: (Will force a re-load of the
+ // shader from the data providers)
mConnectionObservers.ConnectionsChanged(*this);
}
const SamplerDataProvider* sdp = static_cast< const SamplerDataProvider*>( sampler );
mSamplers.PushBack( sdp );
+ Sampler* mutableSampler = const_cast<Sampler*>(sampler);
+ mutableSampler->AddConnectionObserver( *this );
+ mutableSampler->AddUniformMapObserver( *this );
+
mConnectionObservers.ConnectionsChanged(*this);
}
if( found )
{
+ Sampler* mutableSampler = const_cast<Sampler*>(sampler);
+ mutableSampler->RemoveConnectionObserver( *this );
+ mutableSampler->RemoveUniformMapObserver( *this );
mSamplers.Erase(iter);
mConnectionObservers.ConnectionsChanged(*this);
}
mConnectionObservers.ConnectedUniformMapChanged();
}
+void Material::ConnectionsChanged( PropertyOwner& owner )
+{
+ mConnectionObservers.ConnectionsChanged(*this);
+}
+
+void Material::ConnectedUniformMapChanged( )
+{
+ mConnectionObservers.ConnectedUniformMapChanged();
+}
+
void Material::ResetDefaultProperties( BufferIndex updateBufferIndex )
{
mColor.ResetToBaseValue( updateBufferIndex );