diff dmengine.h @ 366:38e10b5f4e09

Work towards base engine re-entrancy.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 16 Oct 2012 23:16:42 +0300
parents bf60f60cafba
children 9875c65029af
line wrap: on
line diff
--- a/dmengine.h	Tue Oct 16 22:44:41 2012 +0300
+++ b/dmengine.h	Tue Oct 16 23:16:42 2012 +0300
@@ -20,10 +20,7 @@
 #endif
 
 
-typedef struct
-{
-    int time, number;
-} DMFrameData;
+struct DMEngineData;
 
 
 typedef struct
@@ -57,40 +54,36 @@
     size_t audioPos;
 #endif
 
-    int    (*demoInit)();
-    int    (*demoInitPreVideo)();
-    int    (*demoInitPostVideo)();
-    int    (*demoRender)();
-    void   (*demoShutdown)();
-    void   (*demoQuit)();
+    int    (*demoInit)(struct DMEngineData *);
+    int    (*demoInitPreVideo)(struct DMEngineData *);
+    int    (*demoInitPostVideo)(struct DMEngineData *);
+    int    (*demoRender)(struct DMEngineData *);
+    void   (*demoShutdown)(struct DMEngineData *);
+    void   (*demoQuit)(struct DMEngineData *);
 
 } DMEngineData;
 
 
-extern DMEngineData engine;
-
-
-#define engineGetResImage(x, name) \
+#define engineGetResImage(eng, x, name) \
     do { \
-        if ((x = (SDL_Surface *) engineGetResource(name)) == NULL) \
+        if ((x = (SDL_Surface *) engineGetResource(eng, name)) == NULL) \
             return DMERR_INIT_FAIL; \
     } while (0)
 
-#define engineGetResModule(x, name) \
+#define engineGetResModule(eng, x, name) \
     do { \
-        if ((x = (JSSModule *) engineGetResource(name)) == NULL) \
+        if ((x = (JSSModule *) engineGetResource(eng, name)) == NULL) \
             return DMERR_INIT_FAIL; \
     } while (0)
 
 
 int    engineClassifier(DMResource *res);
-void * engineGetResource(const char *name);
-int    engineGetTime(int t);
-int    engineGetTimeDTi();
-int    engineGetTick();
-float  engineGetTimeDT();
-
-int    demoPreInit();
+void * engineGetResource(DMEngineData *eng, const char *name);
+int    engineGetTime(DMEngineData *eng, int t);
+int    engineGetTimeDTi(DMEngineData *eng);
+int    engineGetTick(DMEngineData *eng);
+float  engineGetTimeDT(DMEngineData *eng);
+int    demoPreInit(DMEngineData *eng);
 
 
 #ifdef __cplusplus