X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fintegration-api%2Fscene.h;h=6225563ba1db31ce77bf672a06ed52622b648925;hb=e2fca778e7c7a1ab6e414b1fe436f8d4dd65fb09;hp=9211ae18ad5d860099a5e0673f1bae3b6f2c1c3f;hpb=ea0b5e20c8be3552da9203124457b225d2dee766;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/integration-api/scene.h b/dali/integration-api/scene.h old mode 100755 new mode 100644 index 9211ae1..6225563 --- a/dali/integration-api/scene.h +++ b/dali/integration-api/scene.h @@ -18,20 +18,24 @@ * */ +// EXTERNAL INCLUDES +#include + // INTERNAL INCLUDES #include #include #include +#include namespace Dali { class Actor; -struct KeyEvent; +class KeyEvent; class Layer; class RenderTaskList; -class TouchData; -struct WheelEvent; +class TouchEvent; +class WheelEvent; namespace Internal DALI_INTERNAL { @@ -52,11 +56,13 @@ struct Event; class DALI_CORE_API Scene : public BaseHandle { public: - typedef Signal< void () > EventProcessingFinishedSignalType; ///< Event Processing finished signal type - typedef Signal< void (const Dali::KeyEvent&) > KeyEventSignalType; ///< Key event signal type - typedef Signal< bool (const Dali::KeyEvent&) > KeyEventGeneratedSignalType; ///< key event generated signal type - typedef Signal< void (const Dali::TouchData&) > TouchSignalType; ///< Touch signal type - typedef Signal< void (const Dali::WheelEvent&) > WheelEventSignalType; ///< Touched signal type + using EventProcessingFinishedSignalType = Signal; ///< Event Processing finished signal type + using KeyEventSignalType = Signal; ///< Key event signal type + using KeyEventGeneratedSignalType = Signal; ///< key event generated signal type + using TouchEventSignalType = Signal; ///< Touch signal type + using WheelEventSignalType = Signal; ///< WheelEvent signal type + + using FrameCallbackContainer = std::vector< std::pair< std::unique_ptr< CallbackBase >, int32_t > >; /** * @brief Create an initialized Scene handle. @@ -230,6 +236,56 @@ public: void ProcessEvents(); /** + * @brief Adds a callback that is called when the frame rendering is done by the graphics driver. + * + * @param[in] callback The function to call + * @param[in] frameId The Id to specify the frame. It will be passed when the callback is called. + * + * @note A callback of the following type may be used: + * @code + * void MyFunction( int frameId ); + * @endcode + * This callback will be deleted once it is called. + * + * @note Ownership of the callback is passed onto this class. + */ + void AddFrameRenderedCallback( std::unique_ptr< CallbackBase > callback, int32_t frameId ); + + /** + * @brief Adds a callback that is called when the frame is displayed on the display. + * + * @param[in] callback The function to call + * @param[in] frameId The Id to specify the frame. It will be passed when the callback is called. + * + * @note A callback of the following type may be used: + * @code + * void MyFunction( int frameId ); + * @endcode + * This callback will be deleted once it is called. + * + * @note Ownership of the callback is passed onto this class. + */ + void AddFramePresentedCallback( std::unique_ptr< CallbackBase > callback, int32_t frameId ); + + /** + * @brief Gets the callback list that is called when the frame rendering is done by the graphics driver. + * + * @param[out] callbacks The callback list + * + * @note This is called in the update thread. + */ + void GetFrameRenderedCallback( FrameCallbackContainer& callbacks ); + + /** + * @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 This signal is emitted just after the event processing is finished. * * @return The signal to connect to @@ -272,13 +328,13 @@ public: * An interrupted event will also be emitted (if it occurs). * A callback of the following type may be connected: * @code - * void YourCallbackName( TouchData event ); + * void YourCallbackName( TouchEvent event ); * @endcode * * @return The touch signal to connect to * @note Motion events are not emitted. */ - TouchSignalType& TouchSignal(); + TouchEventSignalType& TouchedSignal(); /** * @brief This signal is emitted when wheel event is received.