+ /**
+ * @brief Informs the scene that the set surface has been resized.
+ */
+ void SurfaceResized( bool forceUpdate );
+
+ /**
+ * @brief Gets the rendering surface bound to the scene
+ *
+ * @return The render surface
+ */
+ Integration::RenderSurface* GetSurface() const;
+
+ /**
+ * @brief Discards this Scene from the Core.
+ */
+ void Discard();
+
+ /**
+ * @brief Retrieve the Scene that the given actor belongs to.
+ * @return The Scene.
+ */
+ static Integration::Scene Get( Actor actor );
+
+ /**
+ * This function is called when an event is queued.
+ * @param[in] event A event to queue.
+ */
+ void QueueEvent( const Integration::Event& event );
+
+ /**
+ * This function is called by Core when events are processed.
+ */
+ void ProcessEvents();
+
+ /**
+ * @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( TouchData event );
+ * @endcode
+ *
+ * @return The touch signal to connect to
+ * @note Motion events are not emitted.
+ */
+ TouchSignalType& TouchSignal();
+
+ /**
+ * @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();
+