X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fintegration-api%2Fadaptor-framework%2Fscene-holder-impl.cpp;h=7aa6f29102ef028cd82b3fc462525db582206e02;hb=6639efb20527a94f0cb5e2660dbb8585c95b07d2;hp=5b6463843a3ca20b8866551c757d85b686bf3716;hpb=ea68cf28bef0700c1432b8b84cef7758eede61c3;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/integration-api/adaptor-framework/scene-holder-impl.cpp b/dali/integration-api/adaptor-framework/scene-holder-impl.cpp index 5b64638..7aa6f29 100644 --- a/dali/integration-api/adaptor-framework/scene-holder-impl.cpp +++ b/dali/integration-api/adaptor-framework/scene-holder-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -122,6 +122,11 @@ Dali::Layer SceneHolder::GetRootLayer() const return mScene ? mScene.GetRootLayer() : Dali::Layer(); } +Dali::Layer SceneHolder::GetOverlayLayer() +{ + return mScene ? mScene.GetOverlayLayer() : Dali::Layer(); +} + uint32_t SceneHolder::GetId() const { return mId; @@ -153,7 +158,9 @@ void SceneHolder::SetSurface(Dali::RenderSurfaceInterface* surface) mScene.SurfaceReplaced(); - SurfaceResized(); + PositionSize surfacePositionSize = surface->GetPositionSize(); + + SurfaceResized(static_cast(surfacePositionSize.width), static_cast(surfacePositionSize.height)); InitializeDpi(); @@ -166,10 +173,9 @@ void SceneHolder::SetSurface(Dali::RenderSurfaceInterface* surface) OnSurfaceSet(surface); } -void SceneHolder::SurfaceResized() +void SceneHolder::SurfaceResized(float width, float height) { - PositionSize surfacePositionSize = mSurface->GetPositionSize(); - mScene.SurfaceResized(static_cast(surfacePositionSize.width), static_cast(surfacePositionSize.height)); + mScene.SurfaceResized(width, height); mSurface->SetFullSwapNextFrame(); @@ -211,8 +217,10 @@ void SceneHolder::SetAdaptor(Dali::Adaptor& adaptor) // Create the scene PositionSize surfacePositionSize = mSurface->GetPositionSize(); - int orientation = mSurface->GetOrientation(); - mScene = Dali::Integration::Scene::New(Size(static_cast(surfacePositionSize.width), static_cast(surfacePositionSize.height)), orientation); + int windowOrientation = mSurface->GetSurfaceOrientation(); + int screenOrientation = mSurface->GetScreenOrientation(); + + mScene = Dali::Integration::Scene::New(Size(static_cast(surfacePositionSize.width), static_cast(surfacePositionSize.height)), windowOrientation, screenOrientation); Internal::Adaptor::Adaptor& adaptorImpl = Internal::Adaptor::Adaptor::GetImplementation(adaptor); mAdaptor = &adaptorImpl; @@ -238,9 +246,8 @@ void SceneHolder::CreateRenderTarget() .SetSurface(mSurface.get()) .SetExtent({static_cast(mSurface->GetPositionSize().width), static_cast(mSurface->GetPositionSize().height)}) .SetPreTransform(0 | Graphics::RenderTargetTransformFlagBits::TRANSFORM_IDENTITY_BIT); - mRenderTarget = mAdaptor->GetGraphicsInterface().GetController().CreateRenderTarget(rtInfo, std::move(mRenderTarget)); - mScene.SetSurfaceRenderTarget(mRenderTarget.get()); + mScene.SetSurfaceRenderTarget(rtInfo); } void SceneHolder::Pause() @@ -257,9 +264,9 @@ void SceneHolder::Resume() OnResume(); } -void SceneHolder::SurfaceRotated(float width, float height, int orientation) +void SceneHolder::SurfaceRotated(float width, float height, int32_t windowOrientation, int32_t screenOrientation) { - mScene.SurfaceRotated(width, height, orientation); + mScene.SurfaceRotated(width, height, windowOrientation, screenOrientation); } void SceneHolder::SetRotationCompletedAcknowledgement() @@ -274,7 +281,8 @@ void SceneHolder::FeedTouchPoint(Dali::Integration::Point& point, int timeStamp) timeStamp = TimeService::GetMilliSeconds(); } - RecalculateTouchPosition(point); + Vector2 convertedPosition = RecalculatePosition(point.GetScreenPosition()); + point.SetScreenPosition(convertedPosition); Integration::TouchEvent touchEvent; Integration::HoverEvent hoverEvent; @@ -309,6 +317,9 @@ void SceneHolder::FeedWheelEvent(Dali::Integration::WheelEvent& wheelEvent) // Keep the handle alive until the core events are processed. Dali::BaseHandle sceneHolder(this); + Vector2 convertedPosition = RecalculatePosition(wheelEvent.point); + wheelEvent.point = convertedPosition; + mScene.QueueEvent(wheelEvent); mAdaptor->ProcessCoreEvents(); }