+ * @brief Gets the callback list that is called when the frame is displayed on the display.
+ *
+ * @param[out] callbacks The callback list
+ *
+ * @note This is called in the update thread.
+ */
+ void GetFramePresentedCallback(FrameCallbackContainer& callbacks);
+
+ /**
+ * @brief Informs the scene that the set surface has been rotated.
+ *
+ * @param[in] width The width of rotated surface
+ * @param[in] height The height of rotated surface
+ * @param[in] orientation The orientation of rotated surface
+ */
+ 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<int32_t>& GetCurrentSurfaceRect() const;
+
+ /**
+ * Query wheter the surface rect is changed or not.
+ * @return true if the surface rect is changed.
+ */
+ 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
+ */
+ EventProcessingFinishedSignalType& EventProcessingFinishedSignal();
+
+ /**
+ * @brief This signal is emitted when key event is received.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * void YourCallbackName(const KeyEvent& event);
+ * @endcode
+ * @return The signal to connect to
+ */
+ KeyEventSignalType& KeyEventSignal();
+
+ /**
+ * @brief The user would connect to this signal to get a KeyEvent when KeyEvent is generated.
+ *
+ * If the control already consumed key event, KeyEventProcessor do not need to Emit keyEvent.
+ * Therefore, KeyinputManager first checks whether KeyEvent is generated as KeyEventGeneratedSignal.
+ * After that keyEventProcessor must invoke KeyEvent only if KeyEventGeneratedSignal () is not consumed.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallbackName(const KeyEvent& event);
+ * @endcode
+ *
+ * @return The return is true if KeyEvent is consumed, otherwise false.
+ */
+ KeyEventGeneratedSignalType& KeyEventGeneratedSignal();
+
+ /**
+ * @brief This signal is emitted when the screen is touched and when the touch ends
+ * (i.e. the down & up touch events only).
+ *
+ * If there are multiple touch points, then this will be emitted when the first touch occurs and
+ * then when the last finger is lifted.
+ * An interrupted event will also be emitted (if it occurs).
+ * A callback of the following type may be connected:
+ * @code
+ * void YourCallbackName( TouchEvent event );
+ * @endcode
+ *
+ * @return The touch signal to connect to
+ * @note Motion events are not emitted.
+ */
+ TouchEventSignalType& TouchedSignal();
+
+ /**
+ * @brief This signal is emitted when wheel event is received.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * void YourCallbackName(const WheelEvent& event);
+ * @endcode
+ * @return The signal to connect to
+ */
+ WheelEventSignalType& WheelEventSignal();
+
+public: // Not intended for application developers
+ /**