Mercurial > hg > dmlib
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