X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fintegration-api%2Fscene.h;h=ad414797042edcb07e193dd538b6e610759b6860;hb=3f5099b7e8b501e5d4a808869faf5889b0701454;hp=eeb191f5bb4116128bffc47cf9a5ac316ffba9a1;hpb=d5be622593d4ab0091103b5969232c11fcf653a4;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/integration-api/scene.h b/dali/integration-api/scene.h index eeb191f..ad41479 100644 --- a/dali/integration-api/scene.h +++ b/dali/integration-api/scene.h @@ -2,7 +2,7 @@ #define DALI_SCENE_H /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 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. @@ -22,6 +22,8 @@ #include // INTERNAL INCLUDES +#include +#include #include #include #include @@ -41,6 +43,11 @@ namespace Internal DALI_INTERNAL class Scene; } +namespace Graphics +{ +class RenderTarget; +} + namespace Integration { struct Event; @@ -70,7 +77,7 @@ public: * * @return a handle to a newly allocated Dali resource. */ - static Scene New(Size size, int orientation = 0); + static Scene New(Size size, int32_t orientation = 0); /** * @brief Downcast an Object handle to Scene handle. @@ -218,6 +225,13 @@ public: void Discard(); /** + * @brief Sets the render target for the surface. + * + * @param[in] renderTarget The render target create info for the surface + */ + void SetSurfaceRenderTarget(const Graphics::RenderTargetCreateInfo& createInfo); + + /** * @brief Retrieve the Scene that the given actor belongs to. * @return The Scene. */ @@ -242,7 +256,7 @@ public: * * @note A callback of the following type may be used: * @code - * void MyFunction( int frameId ); + * void MyFunction( int32_t frameId ); * @endcode * This callback will be deleted once it is called. * @@ -258,7 +272,7 @@ public: * * @note A callback of the following type may be used: * @code - * void MyFunction( int frameId ); + * void MyFunction( int32_t frameId ); * @endcode * This callback will be deleted once it is called. * @@ -291,7 +305,21 @@ public: * @param[in] height The height of rotated surface * @param[in] orientation The orientation of rotated surface */ - void SurfaceRotated(float width, float height, int orientation); + void SurfaceRotated(float width, float height, int32_t orientation); + + /** + * @brief Gets the current surface orientation. It gets the value from the scene object. + * + * @return The current surface orientation. + */ + int32_t GetCurrentSurfaceOrientation() const; + + /** + * @brief Gets the current surface rectangle. It gets the value from the scene object. + * + * @return The current surface rectangle + */ + const Rect& GetCurrentSurfaceRect() const; /** * Query wheter the surface rect is changed or not. @@ -300,6 +328,30 @@ public: bool IsSurfaceRectChanged() const; /** + * @brief Send message to acknowledge for completing window rotation with current window orientation. + * + * If this function is called, the message is sent to render thread, then mSurfaceRectChanged in scene-graph-scene is set with true. + * After that, render thread checks whether window rotation event is received, mSurfaceRectChanged and the neccessary flag are set. + * If they are all true, rotation done function is called to complete window rotation. + */ + void SetRotationCompletedAcknowledgement(); + + /** + * @brief Query wheter is set to acknowledge for completing surface rotation. + * @return true it should be acknowledged. + * + * If SetRotationCompletedAcknowledgement() is called and the related message is received to scene-graph-scene, + * then mSurfaceRectChanged in scene-graph-scene is set with true. + * + * When this function is called, the mSurfaceRectChanged in scene-graph-scene is return. + * Then, the flag will be reset. + * + * @note This function should be not called the application's main thread. + * Because this function should be called in windwow surface's postrender() function to complete window rotation manually. + */ + bool IsRotationCompletedAcknowledgementSet() const; + + /** * @brief This signal is emitted just after the event processing is finished. * * @return The signal to connect to