map.Insert( DevelVisual::Property::OPACITY, mImpl->mMixColor.a );
}
+void Visual::Base::CreateInstancePropertyMap( Property::Map& map ) const
+{
+ DoCreateInstancePropertyMap( map );
+
+ if( mImpl->mCustomShader )
+ {
+ mImpl->mCustomShader->CreatePropertyMap( map );
+ }
+
+ //map.Insert( DevelVisual::Property::DEPTH_INDEX, mImpl->mDepthIndex );
+ //map.Insert( DevelVisual::Property::ENABLED, (bool) mImpl->mRenderer );
+}
+
+
void Visual::Base::EnablePreMultipliedAlpha( bool preMultipled )
{
if( preMultipled )
return mImpl->mFlags & Impl::IS_ON_STAGE;
}
-bool Visual::Base::IsFromCache() const
-{
- return mImpl->mFlags & Impl::IS_FROM_CACHE;
-}
-
void Visual::Base::RegisterMixColor()
{
// Only register if not already registered.
return mImpl->mMixColor;
}
+void Visual::Base::AddResourceObserver( Visual::ResourceObserver& observer)
+{
+ mImpl->mResourceObserver = &observer;
+}
+
+void Visual::Base::RemoveResourceObserver( Visual::ResourceObserver& observer )
+{
+ mImpl->mResourceObserver = NULL;
+}
+
+void Visual::Base::ResourceReady()
+{
+ if( mImpl->mResourceReady )
+ {
+ // only inform the observer the first time the resource is ready
+ return;
+ }
+ mImpl->mResourceReady = true;
+
+ if( mImpl->mResourceObserver )
+ {
+ // observer is currently a control impl
+ mImpl->mResourceObserver->ResourceReady( *this );
+ }
+}
+
+bool Visual::Base::IsResourceReady() const
+{
+ return mImpl->mResourceReady;
+}
+
Renderer Visual::Base::GetRenderer()
{
return mImpl->mRenderer;