{
mAdaptor->RemoveObserver( *mLifeCycleObserver.get() );
mAdaptor->RemoveWindow( this );
+
+ mAdaptor->DeleteSurface( *mSurface.get() );
+
mAdaptor = nullptr;
}
+
+ if ( mScene )
+ {
+ mScene.Discard();
+ }
}
void SceneHolder::Add( Dali::Actor actor )
OnSurfaceSet( surface );
}
+void SceneHolder::SurfaceResized()
+{
+ mScene.SurfaceResized();
+}
+
Dali::RenderSurfaceInterface* SceneHolder::GetSurface() const
{
return mSurface.get();
void SceneHolder::SetBackgroundColor( const Vector4& color )
{
- if ( mSurface )
+ if( mScene )
{
- mSurface->SetBackgroundColor( color );
+ mScene.SetBackgroundColor( color );
}
}
Vector4 SceneHolder::GetBackgroundColor() const
{
- return mSurface ? mSurface->GetBackgroundColor() : Vector4();
+ return mScene ? mScene.GetBackgroundColor() : Color::BLACK;
}
void SceneHolder::SetAdaptor(Dali::Adaptor& adaptor)
mAdaptorStarted = true;
// Create the scene
- PositionSize positionSize = mSurface->GetPositionSize();
- mScene = Dali::Integration::Scene::New( Vector2( positionSize.width, positionSize.height ) );
- mScene.SetSurface( *mSurface.get() );
+ mScene = Dali::Integration::Scene::New( *mSurface );
Internal::Adaptor::Adaptor& adaptorImpl = Internal::Adaptor::Adaptor::GetImplementation( adaptor );
mAdaptor = &adaptorImpl;