// EXTERNAL INCLUDES
#include <sys/time.h>
+#include <dali/public-api/common/dali-common.h>
#include <dali/public-api/actors/actor.h>
#include <dali/public-api/actors/layer.h>
#include <dali/integration-api/debug.h>
mId( mSceneHolderCounter++ ),
mSurface( nullptr ),
mAdaptor( nullptr ),
+ mDpi(),
mIsBeingDeleted( false ),
mAdaptorStarted( false ),
mVisible( true )
return mScene;
}
+Uint16Pair SceneHolder::GetDpi() const
+{
+ return mDpi;
+}
+
void SceneHolder::SetSurface(Dali::RenderSurfaceInterface* surface)
{
mSurface.reset( surface );
mScene.SurfaceReplaced();
- SurfaceResized();
+ SurfaceResized( false );
- unsigned int dpiHorizontal, dpiVertical;
- dpiHorizontal = dpiVertical = 0;
-
- mSurface->GetDpi( dpiHorizontal, dpiVertical );
- mScene.SetDpi( Vector2( static_cast<float>( dpiHorizontal ), static_cast<float>( dpiVertical ) ) );
+ InitializeDpi();
mSurface->SetAdaptor( *mAdaptor );
mSurface->SetScene( mScene );
OnSurfaceSet( surface );
}
-void SceneHolder::SurfaceResized()
+void SceneHolder::SurfaceResized( bool forceUpdate )
{
PositionSize surfacePositionSize = mSurface->GetPositionSize();
- mScene.SurfaceResized( static_cast<float>( surfacePositionSize.width ), static_cast<float>( surfacePositionSize.height ) );
+ int orientation = mSurface->GetOrientation();
+ mScene.SurfaceResized( static_cast<float>( surfacePositionSize.width ), static_cast<float>( surfacePositionSize.height ), orientation, forceUpdate );
GraphicsInterface& graphics = mAdaptor->GetGraphicsInterface();
EglGraphics* eglGraphics = static_cast<EglGraphics*>(&graphics);
return;
}
+ DALI_ASSERT_DEBUG(mSurface && "Surface needs to be set before calling this method\n");
+
mAdaptorStarted = true;
// Create the scene
// Create an observer for the adaptor lifecycle
mAdaptor->AddObserver( *mLifeCycleObserver );
- if ( mSurface )
- {
- unsigned int dpiHorizontal, dpiVertical;
- dpiHorizontal = dpiVertical = 0;
-
- mSurface->GetDpi( dpiHorizontal, dpiVertical );
- mScene.SetDpi( Vector2( static_cast<float>( dpiHorizontal ), static_cast<float>( dpiVertical ) ) );
+ InitializeDpi();
- mSurface->SetAdaptor( *mAdaptor );
- mSurface->SetScene( mScene );
- }
+ mSurface->SetAdaptor( *mAdaptor );
+ mSurface->SetScene( mScene );
OnAdaptorSet( adaptor );
}
mAdaptor->ProcessCoreEvents();
}
+void SceneHolder::InitializeDpi()
+{
+ unsigned int dpiHorizontal, dpiVertical;
+ dpiHorizontal = dpiVertical = 0;
+
+ mSurface->GetDpi( dpiHorizontal, dpiVertical );
+ mScene.SetDpi( Vector2( static_cast<float>( dpiHorizontal ), static_cast<float>( dpiVertical ) ) );
+
+ mDpi.SetX( dpiHorizontal );
+ mDpi.SetY( dpiVertical );
+}
}// Adaptor