From 635dce298230ac7bd22657e4fa40269fb6e98e71 Mon Sep 17 00:00:00 2001 From: Seoyeon Kim Date: Wed, 16 Sep 2020 12:06:52 +0900 Subject: [PATCH] [Tizen] Add New API of Scene with screen orientation This reverts commit 3009003fa7c0cc84454fc9d255ff958c0f308df8. --- dali/integration-api/scene.cpp | 6 ++++++ dali/integration-api/scene.h | 10 ++++++++++ dali/internal/event/common/scene-impl.cpp | 15 +++++++++++++-- dali/internal/event/common/scene-impl.h | 8 +++++++- 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/dali/integration-api/scene.cpp b/dali/integration-api/scene.cpp index 192ad2e..2675ba5 100644 --- a/dali/integration-api/scene.cpp +++ b/dali/integration-api/scene.cpp @@ -33,6 +33,12 @@ Scene Scene::New(Size size) return Scene(internal.Get()); } +Scene Scene::New(Size size, int orientation) +{ + Internal::ScenePtr internal = Internal::Scene::New(size, orientation); + return Scene(internal.Get()); +} + Scene Scene::DownCast(BaseHandle handle) { return Scene(dynamic_cast(handle.GetObjectPtr())); diff --git a/dali/integration-api/scene.h b/dali/integration-api/scene.h index c663e67..1f6a60a 100644 --- a/dali/integration-api/scene.h +++ b/dali/integration-api/scene.h @@ -72,6 +72,16 @@ public: static Scene New(Size size); /** + * @brief Create an initialized Scene handle. + * + * @param[in] size The size of the set surface for this scene + * @param[in] orientation The orientation of the set surface for this scene + * + * @return a handle to a newly allocated Dali resource. + */ + static Scene New( Size size, int orientation ); + + /** * @brief Downcast an Object handle to Scene handle. * * If handle points to a Scene object the downcast produces diff --git a/dali/internal/event/common/scene-impl.cpp b/dali/internal/event/common/scene-impl.cpp index 45bda4d..208c1f7 100755 --- a/dali/internal/event/common/scene-impl.cpp +++ b/dali/internal/event/common/scene-impl.cpp @@ -48,7 +48,17 @@ ScenePtr Scene::New( Size size ) ScenePtr scene = new Scene; // Second-phase construction - scene->Initialize( size ); + scene->Initialize( size, 0 ); + + return scene; +} + +ScenePtr Scene::New( Size size, int orientation ) +{ + ScenePtr scene = new Scene; + + // Second-phase construction + scene->Initialize( size, orientation ); return scene; } @@ -95,7 +105,7 @@ Scene::~Scene() // When this destructor is called, the scene has either already been removed from Core or Core has already been destroyed } -void Scene::Initialize( Size size ) +void Scene::Initialize( Size size, int orientation ) { ThreadLocalStorage* tls = ThreadLocalStorage::GetInternal(); @@ -131,6 +141,7 @@ void Scene::Initialize( Size size ) // Create the default render-task and ensure clear is enabled on it to show the background color RenderTaskPtr renderTask = mRenderTaskList->CreateTask( mRootLayer.Get(), mDefaultCamera.Get() ); renderTask->SetClearEnabled(true); + mSurfaceOrientation = orientation; SurfaceResized( size.width, size.height, mSurfaceOrientation, false ); diff --git a/dali/internal/event/common/scene-impl.h b/dali/internal/event/common/scene-impl.h index 6597ddc..c84d4c6 100755 --- a/dali/internal/event/common/scene-impl.h +++ b/dali/internal/event/common/scene-impl.h @@ -117,6 +117,11 @@ public: static ScenePtr New( Size size ); /** + * @copydoc Dali::Integration::Scene::New + */ + static ScenePtr New( Size size, int orientation ); + + /** * virtual destructor */ ~Scene() override; @@ -340,8 +345,9 @@ private: * Second-phase constructor. * * @param[in] size The size of the set surface + * @param[in] orientation The orientation of the set surface for this scene */ - void Initialize( Size size ); + void Initialize( Size size, int orientation ); // Undefined Scene(const Scene&) = delete; -- 2.7.4