Added timeline

This commit is contained in:
2021-07-15 09:22:38 -07:00
parent 81a79e136d
commit 9e40d8f576
8 changed files with 189 additions and 10 deletions

View File

@ -6,10 +6,9 @@
#pragma once
#include "libs.h"
// Animation
#include "animation/easing.h"
// Display / Rendering
#include "display/animation/easing.h"
#include "display/animation/timeline.h"
#include "display/debug/grid.h"
#include "display/gui/bitmapfont.h"

View File

@ -5,7 +5,6 @@
* https://opensource.org/licenses/MIT
*/
#pragma once
#include "../libs.h"
/**
* Returns the ease time for a given real time duration span.

View File

@ -0,0 +1,55 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include "../../libs.h"
/** Type forwarder for timeline_t */
typedef struct _timeline_t timeline_t;
/** Callback for when a timeline event occurs */
typedef void timelinecallback_t(timeline_t*);
typedef struct test_t {
/**
* The time that this action should occur within the timeline
* set to 0 or less to start immediately.
*/
float start;
/**
* The duration of the action, this will decide for how long onDuration will
* be called for, and when onEnd should be called.
* Set to a negative number to have this continue forever.
* Set to 0 to only fire the onStart.
* onStart can fire with either onDuration and onEnd on the same frame, but
* onEnd and onDuration cannot fire the same frame.
*/
float duration;
timelinecallback_t *onStart;
timelinecallback_t *onDuration;
timelinecallback_t *onEnd;
} timelineaction_t;
typedef struct _timeline_t {
/** The current time as far as the timeline is concerned */
float current;
/** The time of the last "frame" as far as the timeline is concerned */
float previous;
/** The frame time diff, essentially current = previous + diff */
float diff;
/** User pointer, allows you to point to some other data */
void *user;
/** Actions within the timeline */
timelineaction_t actions[128];
uint8_t actionCount;
} timeline_t;