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)