X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Fcommon%2Fscene-impl.h;h=ab55a3a0931d95a9b4ce9a3a3e33821501dd0d3b;hb=d353bae63798f48237dc24c078c2e8cb2aa0bc62;hp=b94175ac5c74f3d80c411f1044fa335f1942cec8;hpb=094df0544050c853dd5114b13ad582a7fa2f8d06;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/common/scene-impl.h b/dali/internal/event/common/scene-impl.h index b94175a..ab55a3a 100644 --- a/dali/internal/event/common/scene-impl.h +++ b/dali/internal/event/common/scene-impl.h @@ -2,7 +2,7 @@ #define DALI_INTERNAL_SCENE_H /* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 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. @@ -23,7 +23,6 @@ #include #include #include -#include #include #include #include @@ -35,13 +34,18 @@ namespace Dali namespace Integration { -class Event; +struct Event; } namespace Internal { +namespace SceneGraph +{ +class Scene; +} + class EventProcessor; class Layer; class LayerList; @@ -62,7 +66,7 @@ public: /** * @copydoc Dali::Integration::Scene::New */ - static ScenePtr New( const Size& size ); + static ScenePtr New( Size size ); /** * virtual destructor @@ -115,20 +119,24 @@ public: Dali::Layer GetLayer(uint32_t depth) const; /** - * @copydoc Dali::Integration::Scene::SetSurface + * Notify the surface has been resized. + * + * @param[in] width The new width of the set surface + * @param[in] height The new height of the set surface + * @param[in] orientation The orientation of the surface + * @param[in] forceUpdate The flag to update force */ - void SetSurface( Integration::RenderSurface& surface ); + void SurfaceResized( float width, float height, int orientation, bool forceUpdate ); /** - * @copydoc Dali::Integration::Scene::Discard + * @copydoc Dali::Integration::Scene::SurfaceReplaced */ - void Discard(); + void SurfaceReplaced(); /** - * Retrieve the render surface the scene is binded to. - * @return The render surface. + * @copydoc Dali::Integration::Scene::Discard */ - Integration::RenderSurface* GetSurface() const; + void Discard(); /** * Retrieve the ordered list of on-scene layers. @@ -159,10 +167,10 @@ public: void RebuildDepthTree(); /** - * @brief Sets the background color of the render surface. + * @brief Sets the background color of the render surface. * @param[in] color The new background color */ - void SetBackgroundColor(Vector4 color); + void SetBackgroundColor( const Vector4& color ); /** * @brief Gets the background color of the render surface. @@ -171,12 +179,26 @@ public: Vector4 GetBackgroundColor() const; /** + * @brief Get the Scene scene graph object + * + * @return the Scene scene graph object + */ + SceneGraph::Scene* GetSceneObject() const; + + /** * Used by the EventProcessor to emit key event signals. * @param[in] event The key event. */ void EmitKeyEventSignal(const KeyEvent& event); /** + * Used by the KeyEventProcessor to emit KeyEventGenerated signals. + * @param[in] event The key event. + * @return The return is true if KeyEvent is consumed, otherwise false. + */ + bool EmitKeyEventGeneratedSignal(const KeyEvent& event); + + /** * Emits the event processing finished signal. * * @see Dali::Scene::SignalEventProcessingFinished() @@ -201,6 +223,11 @@ public: */ Integration::Scene::KeyEventSignalType& KeyEventSignal(); + /** + * @copydoc Integration::Scene::KeyEventGeneratedSignal() + */ + Integration::Scene::KeyEventGeneratedSignalType& KeyEventGeneratedSignal(); + /** * @copydoc Integration::Scene::SignalEventProcessingFinished() */ @@ -241,12 +268,14 @@ public: private: // Constructor - Scene( const Size& size ); + Scene(); /** * Second-phase constructor. + * + * @param[in] size The size of the set surface */ - void Initialize(); + void Initialize( Size size ); // Undefined Scene(const Scene&) = delete; @@ -255,14 +284,17 @@ private: Scene& operator=(const Scene& rhs) = delete; private: - Integration::RenderSurface* mSurface; + Internal::SceneGraph::Scene* mSceneObject; - // The scene-size may be different with the surface-size Size mSize; - Size mSurfaceSize; Vector2 mDpi; + Vector4 mBackgroundColor; + + // The SurfaceOrientation + int mSurfaceOrientation; + LayerPtr mRootLayer; // Ordered list of currently on-stage layers @@ -273,15 +305,13 @@ private: // The list of render-tasks IntrusivePtr mRenderTaskList; - // The frame buffer - FrameBufferPtr mFrameBuffer; - bool mDepthTreeDirty:1; ///< True if the depth tree needs recalculating EventProcessor mEventProcessor; // The key event signal Integration::Scene::KeyEventSignalType mKeyEventSignal; + Integration::Scene::KeyEventGeneratedSignalType mKeyEventGeneratedSignal; // The event processing finished signal Integration::Scene::EventProcessingFinishedSignalType mEventProcessingFinishedSignal;