Mercurial > hg > dmlib
changeset 345:cac13f180169
Work towards timeline support.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 15 Oct 2012 23:13:40 +0300 |
parents | 9cf1a58b0234 |
children | 882503ef7ab8 |
files | dmengine.c dmengine.h dmsimple.c |
diffstat | 3 files changed, 44 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/dmengine.c Mon Oct 15 22:48:41 2012 +0300 +++ b/dmengine.c Mon Oct 15 23:13:40 2012 +0300 @@ -12,36 +12,6 @@ DMFrameData frame; -int engineGetTick() -{ - return (frame.startTime - engine.startTime) + engine.adjustTime; -} - - -float engineGetTimeDT() -{ - return (float) engineGetTick() / 1000.0f; -} - - -int engineGetTimeDTi() -{ - return (float) engineGetTick() / 1000; -} - - -int engineGetTime(int t) -{ - return engineGetTick() - (1000 * t); -} - - -int engineGetDT(int t) -{ - return engineGetTime(t) / 1000; -} - - static int engineResImageLoad(DMResource *res) { SDL_Surface *img = dmLoadImage(res);
--- a/dmengine.h Mon Oct 15 22:48:41 2012 +0300 +++ b/dmengine.h Mon Oct 15 23:13:40 2012 +0300 @@ -5,6 +5,7 @@ #include <SDL_events.h> #include <SDL_audio.h> #include "dmres.h" +#include "dmtimeline.h" #ifdef DM_USE_JSS #include "jss.h" @@ -21,6 +22,9 @@ typedef struct { + DMTimeline *tl; + DMPreparedTimeline *ptl; + int currFrame, endTime, startTime, totalFrameTime, adjustTime, pauseTime;
--- a/dmsimple.c Mon Oct 15 22:48:41 2012 +0300 +++ b/dmsimple.c Mon Oct 15 23:13:40 2012 +0300 @@ -48,6 +48,36 @@ } +int engineGetTick() +{ + return (frame.startTime - engine.startTime) + engine.adjustTime; +} + + +float engineGetTimeDT() +{ + return (float) engineGetTick() / 1000.0f; +} + + +int engineGetTimeDTi() +{ + return (float) engineGetTick() / 1000; +} + + +int engineGetTime(int t) +{ + return engineGetTick() - (1000 * t); +} + + +int engineGetDT(int t) +{ + return engineGetTime(t) / 1000; +} + + static void engineAudioCallback(void *userdata, Uint8 *stream, int len) { (void) userdata; @@ -355,8 +385,16 @@ } // Call main tick - if ((err = engine.demoRender()) != DMERR_OK) - goto error_exit; + if (engine.demoRender != NULL) + { + if ((err = engine.demoRender()) != DMERR_OK) + goto error_exit; + } + else + { + if ((err = dmExecuteTimeline(engine.ptl, engine.screen, engineGetTime())) != DMERR_OK) + goto error_exit; + } // Flip screen if (SDL_MUSTLOCK(engine.screen) != 0)