forked from enlightenment/efl
Ecore: Improved ecore_animator documentation.
SVN revision: 61130
This commit is contained in:
parent
a5b1673a70
commit
cb9c1403fc
|
@ -408,7 +408,7 @@ extern "C" {
|
|||
ECORE_POS_MAP_SINUSOIDAL_FACTOR, /**< Start slow, speed up then slow down at end, v1 being a power factor, 0.0 being linear, 1.0 being normal sinusoidal, 2.0 being much more pronounced sinusoidal (squared), 3.0 being cubed, etc. */
|
||||
ECORE_POS_MAP_DIVISOR_INTERP, /**< Start at gradient * v1, interpolated via power of v2 curve */
|
||||
ECORE_POS_MAP_BOUNCE, /**< Start at 0.0 then "drop" like a ball bouncing to the ground at 1.0, and bounce v2 times, with decay factor of v1 */
|
||||
ECORE_POS_MAP_SPRING /**< Start at 0.0 then "wobble" like a sping rest position 1.0, and wobble v2 times, with decay factor of v1 */
|
||||
ECORE_POS_MAP_SPRING /**< Start at 0.0 then "wobble" like a spring rest position 1.0, and wobble v2 times, with decay factor of v1 */
|
||||
};
|
||||
typedef enum _Ecore_Pos_Map Ecore_Pos_Map;
|
||||
|
||||
|
@ -1456,21 +1456,286 @@ extern "C" {
|
|||
/**
|
||||
* @defgroup Ecore_Animator_Group Ecore Animator functions
|
||||
*
|
||||
* @brief Ecore animators are a helper to simplify creating animations.
|
||||
*
|
||||
* Creating an animation is as simple as saying for how long it should be run
|
||||
* and having a callback that does the animation, something like this:
|
||||
* @code
|
||||
* static Eina_Bool
|
||||
* _do_animation(void *data, double pos)
|
||||
* {
|
||||
* evas_object_move(data, 100 * pos, 100 * pos);
|
||||
* ... do some more animating ...
|
||||
* }
|
||||
* ...
|
||||
* ecore_animator_timeline_add(2, _do_animation, my_evas_object);
|
||||
* @endcode
|
||||
* In the sample above we create an animation to move @p my_evas_object from
|
||||
* position (0,0) to (100,100) in 2 seconds.
|
||||
*
|
||||
* If your animation will run for an unspecified amount of time you can use
|
||||
* ecore_animator_add(), which is like using ecore_timer_add() with the
|
||||
* interval being the @ref ecore_animator_frametime_set "framerate". Note that
|
||||
* this has tangible benefits to creating a timer for each animation in terms
|
||||
* of performance.
|
||||
*
|
||||
* For a more detailed example that show several animation see @ref
|
||||
* tutorial_ecore_animator.
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Add an animator to call @p func at every animaton tick during main
|
||||
* loop execution.
|
||||
*
|
||||
* @param func The function to call when it ticks off
|
||||
* @param data The data to pass to the function
|
||||
* @return A handle to the new animator
|
||||
*
|
||||
* This function adds a animator and returns its handle on success and NULL on
|
||||
* failure. The function @p func will be called every N seconds where N is the
|
||||
* @p frametime interval set by ecore_animator_frametime_set(). The function
|
||||
* will be passed the @p data pointer as its parameter.
|
||||
*
|
||||
* When the animator @p func is called, it must return a value of either 1 or
|
||||
* 0. If it returns 1 (or ECORE_CALLBACK_RENEW), it will be called again at
|
||||
* the next tick, or if it returns 0 (or ECORE_CALLBACK_CANCEL) it will be
|
||||
* deleted automatically making any references/handles for it invalid.
|
||||
*
|
||||
* @note The default @p frametime value is 1/30th of a second.
|
||||
*
|
||||
* @see ecore_animator_timeline_add()
|
||||
* @see ecore_animator_frametime_set()
|
||||
*/
|
||||
EAPI Ecore_Animator *ecore_animator_add(Ecore_Task_Cb func, const void *data);
|
||||
/**
|
||||
* @brief Add a animator that runs for a limited time
|
||||
*
|
||||
* @param runtime The time to run in seconds
|
||||
* @param func The function to call when it ticks off
|
||||
* @param data The data to pass to the function
|
||||
* @return A handle to the new animator
|
||||
*
|
||||
* This function is just like ecore_animator_add() except the animator only
|
||||
* runs for a limited time specified in seconds by @p runtime. Once the
|
||||
* runtime the animator has elapsed (animator finished) it will automatically
|
||||
* be deleted. The callback function @p func can return ECORE_CALLBACK_RENEW
|
||||
* to keep the animator running or ECORE_CALLBACK_CANCEL ro stop it and have
|
||||
* it be deleted automatically at any time.
|
||||
*
|
||||
* The @p func will ALSO be passed a position parameter that will be in value
|
||||
* from 0.0 to 1.0 to indicate where along the timeline (0.0 start, 1.0 end)
|
||||
* the animator run is at. If the callback wishes not to have a linear
|
||||
* transition it can "map" this value to one of several curves and mappings
|
||||
* via ecore_animator_pos_map().
|
||||
*
|
||||
* @note The default @p frametime value is 1/30th of a second.
|
||||
*
|
||||
* @see ecore_animator_add()
|
||||
* @see ecore_animator_pos_map()
|
||||
* @since 1.1.0
|
||||
*/
|
||||
EAPI Ecore_Animator *ecore_animator_timeline_add(double runtime, Ecore_Timeline_Cb func, const void *data);
|
||||
/**
|
||||
* @brief Delete the specified animator from the animator list.
|
||||
*
|
||||
* @param animator The animator to delete
|
||||
* @return The data pointer set for the animator on add
|
||||
*
|
||||
* Delete the specified @p animator from the set of animators that are
|
||||
* executed during main loop execution. This function returns the data
|
||||
* parameter that was being passed to the callback on success, or NULL on
|
||||
* failure. After this call returns the specified animator object @p animator
|
||||
* is invalid and should not be used again. It will not get called again after
|
||||
* deletion.
|
||||
*/
|
||||
EAPI void *ecore_animator_del(Ecore_Animator *animator);
|
||||
/**
|
||||
* @brief Suspend the specified animator.
|
||||
*
|
||||
* @param animator The animator to delete
|
||||
*
|
||||
* The specified @p animator will be temporarly removed from the set of
|
||||
* animators that are executed during main loop.
|
||||
*
|
||||
* @warning Freezing an animator doesn't freeze accounting of how long that
|
||||
* animator has been running. Therefore if the animator was created with
|
||||
* ecore_animator_timeline_add() the @p pos argument given to the callback
|
||||
* will increase as if the animator hadn't been frozen and the animator may
|
||||
* have it's execution halted if @p runtime elapsed.
|
||||
*/
|
||||
EAPI void ecore_animator_freeze(Ecore_Animator *animator);
|
||||
/**
|
||||
* @brief Restore execution of the specified animator.
|
||||
*
|
||||
* @param animator The animator to delete
|
||||
*
|
||||
* The specified @p animator will be put back in the set of animators that are
|
||||
* executed during main loop.
|
||||
*/
|
||||
EAPI void ecore_animator_thaw(Ecore_Animator *animator);
|
||||
/**
|
||||
* @brief Set the animator call interval in seconds.
|
||||
*
|
||||
* @param frametime The time in seconds in between animator ticks.
|
||||
*
|
||||
* This function sets the time interval (in seconds) between animator ticks.
|
||||
* At every tick the callback of every existing animator will be called.
|
||||
*
|
||||
* @note The default @p frametime value is 1/30th of a second.
|
||||
*/
|
||||
EAPI void ecore_animator_frametime_set(double frametime);
|
||||
/**
|
||||
* @brief Get the animator call interval in seconds.
|
||||
*
|
||||
* @return The time in second in between animator ticks.
|
||||
*
|
||||
* This function retrieves the time in seconds between animator ticks.
|
||||
*
|
||||
* @see ecore_animator_frametime_set()
|
||||
*/
|
||||
EAPI double ecore_animator_frametime_get(void);
|
||||
/**
|
||||
* @brief Maps an input position from 0.0 to 1.0 along a timeline to a
|
||||
* position in a different curve.
|
||||
*
|
||||
* @param pos The input position to map
|
||||
* @param map The mapping to use
|
||||
* @param v1 A parameter use by the mapping (pass 0.0 if not used)
|
||||
* @param v2 A parameter use by the mapping (pass 0.0 if not used)
|
||||
* @return The mapped value
|
||||
*
|
||||
* Takes an input position (0.0 to 1.0) and maps to a new position (normally
|
||||
* between 0.0 and 1.0, but it may go above/below 0.0 or 1.0 to show that it
|
||||
* has "overshot" the mark) using some interpolation (mapping) algorithm.
|
||||
*
|
||||
* This function useful to create non-linear animations. It offers a variety
|
||||
* of possible animaton curves to be used:
|
||||
* @li ECORE_POS_MAP_LINEAR - Linear, returns @p pos
|
||||
* @li ECORE_POS_MAP_ACCELERATE - Start slow then speed up
|
||||
* @li ECORE_POS_MAP_DECELERATE - Start fast then slow down
|
||||
* @li ECORE_POS_MAP_SINUSOIDAL - Start slow, speed up then slow down at end
|
||||
* @li ECORE_POS_MAP_ACCELERATE_FACTOR - Start slow then speed up, v1 being a
|
||||
* power factor, 0.0 being linear, 1.0 being ECORE_POS_MAP_ACCELERATE, 2.0
|
||||
* being much more pronounced accelerate (squared), 3.0 being cubed, etc.
|
||||
* @li ECORE_POS_MAP_DECELERATE_FACTOR - Start fast then slow down, v1 being a
|
||||
* power factor, 0.0 being linear, 1.0 being ECORE_POS_MAP_DECELERATE, 2.0
|
||||
* being much more pronounced decelerate (squared), 3.0 being cubed, etc.
|
||||
* @li ECORE_POS_MAP_SINUSOIDAL_FACTOR - Start slow, speed up then slow down
|
||||
* at end, v1 being a power factor, 0.0 being linear, 1.0 being
|
||||
* ECORE_POS_MAP_SINUSOIDAL, 2.0 being much more pronounced sinusoidal
|
||||
* (squared), 3.0 being cubed, etc.
|
||||
* @li ECORE_POS_MAP_DIVISOR_INTERP - Start at gradient * v1, interpolated via
|
||||
* power of v2 curve
|
||||
* @li ECORE_POS_MAP_BOUNCE - Start at 0.0 then "drop" like a ball bouncing to
|
||||
* the ground at 1.0, and bounce v2 times, with decay factor of v1
|
||||
* @li ECORE_POS_MAP_SPRING - Start at 0.0 then "wobble" like a spring rest
|
||||
* position 1.0, and wobble v2 times, with decay factor of v1
|
||||
* @note When not listed v1 and v2 have no effect.
|
||||
*
|
||||
* One way to use this would be:
|
||||
* @code
|
||||
* double pos; // input position in a timeline from 0.0 to 1.0
|
||||
* double out; // output position after mapping
|
||||
* int x1, y1, x2, y2; // x1 & y1 are start position, x2 & y2 are end position
|
||||
* int x, y; // x & y are the calculated position
|
||||
*
|
||||
* out = ecore_animator_pos_map(pos, ECORE_POS_MAP_BOUNCE, 1.8, 7);
|
||||
* x = (x1 * out) + (x2 * (1.0 - out));
|
||||
* y = (y1 * out) + (y2 * (1.0 - out));
|
||||
* move_my_object_to(myobject, x, y);
|
||||
* @endcode
|
||||
* This will make an animaton that bounces 7 each times diminishing by a
|
||||
* factor of 1.8.
|
||||
*
|
||||
* @see _Ecore_Pos_Map
|
||||
*
|
||||
* @since 1.1.0
|
||||
*/
|
||||
EAPI double ecore_animator_pos_map(double pos, Ecore_Pos_Map map, double v1, double v2);
|
||||
/**
|
||||
* @brief Set the source of animator ticks for the mainloop
|
||||
*
|
||||
* @param source The source of animator ticks to use
|
||||
*
|
||||
* This sets the source of animator ticks. When an animator is active the
|
||||
* mainloop will "tick" over frame by frame calling all animators that are
|
||||
* registered until none are. The mainloop will tick at a given rate based
|
||||
* on the animator source. The default source is the system clock timer
|
||||
* source - ECORE_ANIMATOR_SOURCE_TIMER. This source uses the system clock
|
||||
* to tick over every N seconds (specified by ecore_animator_frametime_set(),
|
||||
* with the default being 1/30th of a second unless set otherwise). You can
|
||||
* set a custom tick source by setting the source to
|
||||
* ECORE_ANIMATOR_SOURCE_CUSTOM and then drive it yourself based on some input
|
||||
* tick source (like another application via ipc, some vertical blanking
|
||||
* interrupt interrupt etc.) using
|
||||
* ecore_animator_custom_source_tick_begin_callback_set() and
|
||||
* ecore_animator_custom_source_tick_end_callback_set() to set the functions
|
||||
* that will be called to start and stop the ticking source, which when it
|
||||
* gets a "tick" should call ecore_animator_custom_tick() to make the "tick" over 1
|
||||
* frame.
|
||||
*/
|
||||
EAPI void ecore_animator_source_set(Ecore_Animator_Source source);
|
||||
/**
|
||||
* @brief Get the animator source currently set.
|
||||
*
|
||||
* @return The current animator source
|
||||
*
|
||||
* This gets the current animator source.
|
||||
*
|
||||
* @see ecore_animator_source_set()
|
||||
*/
|
||||
EAPI Ecore_Animator_Source ecore_animator_source_get(void);
|
||||
/**
|
||||
* @brief Set the function that begins a custom animator tick source
|
||||
*
|
||||
* @param func The function to call when ticking is to begin
|
||||
* @param data The data passed to the tick begin function as its parameter
|
||||
*
|
||||
* The Ecore Animator infrastructure handles tracking if animators are needed
|
||||
* or not and which ones need to be called and when, but when the tick source
|
||||
* is custom, you have to provide a tick source by calling
|
||||
* ecore_animator_custom_tick() to indicate a frame tick happened. In order
|
||||
* to allow the source of ticks to be dynamically enabled or disabled as
|
||||
* needed, the @p func when set is called to enable the tick source to
|
||||
* produce tick events that call ecore_animator_custom_tick(). If @p func
|
||||
* is NULL then no function is called to begin custom ticking.
|
||||
*
|
||||
* @see ecore_animator_source_set()
|
||||
* @see ecore_animator_custom_source_tick_end_callback_set()
|
||||
* @see ecore_animator_custom_tick()
|
||||
*/
|
||||
EAPI void ecore_animator_custom_source_tick_begin_callback_set(Ecore_Cb func, const void *data);
|
||||
/**
|
||||
* @brief Set the function that ends a custom animator tick source
|
||||
*
|
||||
* @param func The function to call when ticking is to end
|
||||
* @param data The data passed to the tick end function as its parameter
|
||||
*
|
||||
* This function is a matching pair to the function set by
|
||||
* ecore_animator_custom_source_tick_begin_callback_set() and is called
|
||||
* when ticking is to stop. If @p func is NULL then no function will be
|
||||
* called to stop ticking. For more information please see
|
||||
* ecore_animator_custom_source_tick_begin_callback_set().
|
||||
*
|
||||
* @see ecore_animator_source_set()
|
||||
* @see ecore_animator_custom_source_tick_begin_callback_set()
|
||||
* @see ecore_animator_custom_tick()
|
||||
*/
|
||||
EAPI void ecore_animator_custom_source_tick_end_callback_set(Ecore_Cb func, const void *data);
|
||||
/**
|
||||
* @brief Trigger a custom animator tick
|
||||
*
|
||||
* When animator source is set to ECORE_ANIMATOR_SOURCE_CUSTOM, then calling
|
||||
* this function triggers a run of all animators currently registered with
|
||||
* Ecore as this indicates a "frame tick" happened. This will do nothing if
|
||||
* the animator source(set by ecore_animator_source_set()) is not set to
|
||||
* ECORE_ANIMATOR_SOURCE_CUSTOM.
|
||||
*
|
||||
* @see ecore_animator_source_set()
|
||||
* @see ecore_animator_custom_source_tick_begin_callback_set
|
||||
* @see ecore_animator_custom_source_tick_end_callback_set()()
|
||||
*/
|
||||
EAPI void ecore_animator_custom_tick(void);
|
||||
|
||||
/**
|
||||
|
|
|
@ -133,34 +133,6 @@ _do_tick(void)
|
|||
return ECORE_CALLBACK_RENEW;
|
||||
}
|
||||
|
||||
/**
|
||||
* @addtogroup Ecore_Group Ecore - Main Loop and Job Functions.
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @addtogroup Ecore_Animator_Group Ecore Animator functions
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* Add a animator to tick off at every animaton tick during main loop execution.
|
||||
* @param func The function to call when it ticks off
|
||||
* @param data The data to pass to the function
|
||||
* @return A handle to the new animator
|
||||
*
|
||||
* This function adds a animator and returns its handle on success and NULL on
|
||||
* failure. The function @p func will be called every N seconds where N is the
|
||||
* frametime interval set by ecore_animator_frametime_set(). The function will
|
||||
* be passed the @p data pointer as its parameter.
|
||||
*
|
||||
* When the animator @p func is called, it must return a value of either 1 or 0.
|
||||
* If it returns 1 (or ECORE_CALLBACK_RENEW), it will be called again at the
|
||||
* next tick, or if it returns 0 (or ECORE_CALLBACK_CANCEL) it will be deleted
|
||||
* automatically making any references/handles for it invalid.
|
||||
*/
|
||||
EAPI Ecore_Animator *
|
||||
ecore_animator_add(Ecore_Task_Cb func, const void *data)
|
||||
{
|
||||
|
@ -179,28 +151,6 @@ ecore_animator_add(Ecore_Task_Cb func, const void *data)
|
|||
return animator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a animator that runs for a limited time
|
||||
* @param runtime The time to run in seconds
|
||||
* @param func The function to call when it ticks off
|
||||
* @param data The data to pass to the function
|
||||
* @return A handle to the new animator
|
||||
*
|
||||
* This function is just like ecore_animator_add() except the animator only
|
||||
* runs for a limited time specified in seconds by @p runtime. Once the runtime
|
||||
* the animator has elapsed (animator finished) it will automatically be
|
||||
* deleted. The callback function @p func can return ECORE_CALLBACK_RENEW to
|
||||
* keep the animator running or ECORE_CALLBACK_CANCEL ro stop it and have
|
||||
* it be deleted automatically at any time.
|
||||
*
|
||||
* The @p func will ALSO be passed a position parameter that will be in value
|
||||
* from 0.0 to 1.0 to indicate where along the timeline (0.0 start, 1.0 end)
|
||||
* the animator run is at. If the callback wishes not to have a linear
|
||||
* transition it can "map" this value to one of several curves and mappings
|
||||
* via ecore_animator_pos_map().
|
||||
*
|
||||
* @since 1.1.0
|
||||
*/
|
||||
EAPI Ecore_Animator *
|
||||
ecore_animator_timeline_add(double runtime, Ecore_Timeline_Cb func, const void *data)
|
||||
{
|
||||
|
@ -274,34 +224,6 @@ _pos_map_spring(double pos, int bounces, double decfac)
|
|||
return _pos_map_sin((M_PI / 2.0) + (p2 * len)) * decay;
|
||||
}
|
||||
|
||||
/**
|
||||
* Maps an input position from 0.0 to 1.0 along a timeline to another position
|
||||
*
|
||||
* Takes an input position (0.0 to 1.0) and maps to a new position (normally
|
||||
* between 0.0 and 1.0, but it may go above/below 0.0 or 1.0 to show that it
|
||||
* has "overshot" the mark) using some interpolation (mapping) algorithm.
|
||||
*
|
||||
* You might normally use this like:
|
||||
* @code
|
||||
* double pos; // input position in a timeline from 0.0 to 1.0
|
||||
* double out; // output position after mapping
|
||||
* int x1, y1, x2, y2; // x1 & y1 are start position, x2 & y2 are end position
|
||||
* int x, y; // x & y are the calculated position
|
||||
*
|
||||
* out = ecore_animator_pos_map(pos, ECORE_POS_MAP_BOUNCE, 1.8, 7);
|
||||
* x = (x1 * out) + (x2 * (1.0 - out));
|
||||
* y = (y1 * out) + (y2 * (1.0 - out));
|
||||
* move_my_object_to(myobject, x, y);
|
||||
* @endcode
|
||||
*
|
||||
* @param pos The input position to map
|
||||
* @param map The mapping to use
|
||||
* @param v1 A parameter use by the mapping (pass 0.0 if not used)
|
||||
* @param v2 A parameter use by the mapping (pass 0.0 if not used)
|
||||
* @return The mapped value
|
||||
*
|
||||
* @since 1.1.0
|
||||
*/
|
||||
EAPI double
|
||||
ecore_animator_pos_map(double pos, Ecore_Pos_Map map, double v1, double v2)
|
||||
{
|
||||
|
@ -348,17 +270,6 @@ ecore_animator_pos_map(double pos, Ecore_Pos_Map map, double v1, double v2)
|
|||
v2 = 0.0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the specified animator from the animator list.
|
||||
* @param animator The animator to delete
|
||||
* @return The data pointer set for the animator on add
|
||||
*
|
||||
* Delete the specified @p aqnimator from the set of animators that are executed
|
||||
* during main loop execution. This function returns the data parameter that
|
||||
* was being passed to the callback on success, or NULL on failure. After this
|
||||
* call returns the specified animator object @p animator is invalid and should not
|
||||
* be used again. It will not get called again after deletion.
|
||||
*/
|
||||
EAPI void *
|
||||
ecore_animator_del(Ecore_Animator *animator)
|
||||
{
|
||||
|
@ -377,12 +288,6 @@ ecore_animator_del(Ecore_Animator *animator)
|
|||
return animator->data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the animator call interval in seconds.
|
||||
* @param frametime The time in seconds in between animator ticks.
|
||||
*
|
||||
* This function sets the time interval (in seconds) between animator ticks.
|
||||
*/
|
||||
EAPI void
|
||||
ecore_animator_frametime_set(double frametime)
|
||||
{
|
||||
|
@ -395,25 +300,12 @@ ecore_animator_frametime_set(double frametime)
|
|||
if (animators) _begin_tick();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the animator call interval in seconds.
|
||||
* @return The time in second in between animator ticks.
|
||||
*
|
||||
* this function retrieves the time between animator ticks, in seconds.
|
||||
*/
|
||||
EAPI double
|
||||
ecore_animator_frametime_get(void)
|
||||
{
|
||||
return animators_frametime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Suspend the specified animator.
|
||||
* @param animator The animator to delete
|
||||
*
|
||||
* The specified @p animator will be temporarly removed from the set of animators
|
||||
* that are executed during main loop execution.
|
||||
*/
|
||||
EAPI void
|
||||
ecore_animator_freeze(Ecore_Animator *animator)
|
||||
{
|
||||
|
@ -429,13 +321,6 @@ ecore_animator_freeze(Ecore_Animator *animator)
|
|||
animator->suspended = EINA_TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restore execution of the specified animator.
|
||||
* @param animator The animator to delete
|
||||
*
|
||||
* The specified @p animator will be put back in the set of animators
|
||||
* that are executed during main loop execution.
|
||||
*/
|
||||
EAPI void
|
||||
ecore_animator_thaw(Ecore_Animator *animator)
|
||||
{
|
||||
|
@ -451,27 +336,6 @@ ecore_animator_thaw(Ecore_Animator *animator)
|
|||
animator->suspended = EINA_FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the source of animator ticks for the mainloop
|
||||
*
|
||||
* @param source The source of animator ticks to use
|
||||
*
|
||||
* This sets the source of animator ticks. When an animator is active the
|
||||
* mainloop will "tick" over frame by frame calling all animators that are
|
||||
* registered until none are. The mainloop will tick at a given rate based
|
||||
* on the animator source. The default source is the system clock timer
|
||||
* source - ECORE_ANIMATOR_SOURCE_TIMER. This source uses the system clock
|
||||
* to tick over every N seconds (specified by ecore_animator_frametime_set(),
|
||||
* with the default being 1/30th of a second unless set otherwise). You can
|
||||
* set a custom tick source by setting the source to
|
||||
* ECORE_ANIMATOR_SOURCE_CUSTOM and then drive it yourself based on some input
|
||||
* tick source (like another application via ipc, some vertical blanking
|
||||
* interrupt etc.) using ecore_animator_custom_source_tick_begin_callback_set()
|
||||
* and ecore_animator_custom_source_tick_end_callback_set() to set the
|
||||
* functions that will be called to start and stop the ticking source, which
|
||||
* when it gets a "tick" should call ecore_animator_custom_tick() to make
|
||||
* the animator "tick" over 1 frame.
|
||||
*/
|
||||
EAPI void
|
||||
ecore_animator_source_set(Ecore_Animator_Source source)
|
||||
{
|
||||
|
@ -482,13 +346,6 @@ ecore_animator_source_set(Ecore_Animator_Source source)
|
|||
if (animators) _begin_tick();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the animator source currently set
|
||||
* @return The current animator source
|
||||
*
|
||||
* This gets the current animator source. See ecore_animator_source_set() for
|
||||
* more information.
|
||||
*/
|
||||
EAPI Ecore_Animator_Source
|
||||
ecore_animator_source_get(void)
|
||||
{
|
||||
|
@ -497,21 +354,6 @@ ecore_animator_source_get(void)
|
|||
return src;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the function that begins a custom animator tick source
|
||||
*
|
||||
* @param func The function to call when ticking is to begin
|
||||
* @param data The data passed to the tick begin function as its parameter
|
||||
*
|
||||
* The Ecore Animator infrastructure handles tracking if animators are needed
|
||||
* or not and which ones need to be called and when, but when the tick source
|
||||
* is custom, you have to provide a tick source by calling
|
||||
* ecore_animator_custom_tick() to indicate a frame tick happened. In order
|
||||
* to allow the source of ticks to be dynamically enabled or disabled as
|
||||
* needed, the @p func when set is called to enable the tick source to
|
||||
* produce tick events that call ecore_animator_custom_tick(). If @p func
|
||||
* is NULL then no function is called to begin custom ticking.
|
||||
*/
|
||||
EAPI void
|
||||
ecore_animator_custom_source_tick_begin_callback_set(Ecore_Cb func, const void *data)
|
||||
{
|
||||
|
@ -523,17 +365,6 @@ ecore_animator_custom_source_tick_begin_callback_set(Ecore_Cb func, const void *
|
|||
if (animators) _begin_tick();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the function that ends a custom animator tick source
|
||||
* @param func The function to call when ticking is to end
|
||||
* @param data The data passed to the tick end function as its parameter
|
||||
*
|
||||
* This function is a matching pair to the function set by
|
||||
* ecore_animator_custom_source_tick_begin_callback_set() and is called
|
||||
* when ticking is to stop. If @p func is NULL then no function will be
|
||||
* called to stop ticking. For more information please see
|
||||
* ecore_animator_custom_source_tick_begin_callback_set().
|
||||
*/
|
||||
EAPI void
|
||||
ecore_animator_custom_source_tick_end_callback_set(Ecore_Cb func, const void *data)
|
||||
{
|
||||
|
@ -545,15 +376,6 @@ ecore_animator_custom_source_tick_end_callback_set(Ecore_Cb func, const void *da
|
|||
if (animators) _begin_tick();
|
||||
}
|
||||
|
||||
/**
|
||||
* Trigger a custom animator tick
|
||||
*
|
||||
* When animator source is set to ECORE_ANIMATOR_SOURCE_CUSTOM, then calling
|
||||
* this function triggers a run of all animators currently registered with
|
||||
* Ecore as this indicates a "frame tick" happened. This will do nothing
|
||||
* if the animator source (set by ecore_animator_source_set() ) is not set
|
||||
* to ECORE_ANIMATOR_SOURCE_CUSTOM.
|
||||
*/
|
||||
EAPI void
|
||||
ecore_animator_custom_tick(void)
|
||||
{
|
||||
|
@ -601,11 +423,3 @@ _ecore_animator(void *data __UNUSED__)
|
|||
{
|
||||
return _do_tick();
|
||||
}
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue