annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 #ifndef DMSIMPLE_H
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
2 #define DMSIMPLE_H
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
4 #include "dmlib.h"
310
713c8018c3ce Fix includes in the dmsimple engine.
Matti Hamalainen <ccr@tnsp.org>
parents: 288
diff changeset
5 #include <SDL_events.h>
713c8018c3ce Fix includes in the dmsimple engine.
Matti Hamalainen <ccr@tnsp.org>
parents: 288
diff changeset
6 #include <SDL_audio.h>
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 #include "dmres.h"
345
cac13f180169 Work towards timeline support.
Matti Hamalainen <ccr@tnsp.org>
parents: 342
diff changeset
8 #include "dmtimeline.h"
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
9
105
d5d27f262227 Beging merging of dmsimple2-fork into the main "engine".
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
10 #ifdef DM_USE_JSS
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
11 #include "jss.h"
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
12 #include "jssmod.h"
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13 #include "jssmix.h"
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
14 #include "jssplr.h"
105
d5d27f262227 Beging merging of dmsimple2-fork into the main "engine".
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
15 #endif
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
16
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
17
317
adb101296bb8 Add C++ protectors.
Matti Hamalainen <ccr@tnsp.org>
parents: 311
diff changeset
18 #ifdef __cplusplus
adb101296bb8 Add C++ protectors.
Matti Hamalainen <ccr@tnsp.org>
parents: 311
diff changeset
19 extern "C" {
adb101296bb8 Add C++ protectors.
Matti Hamalainen <ccr@tnsp.org>
parents: 311
diff changeset
20 #endif
adb101296bb8 Add C++ protectors.
Matti Hamalainen <ccr@tnsp.org>
parents: 311
diff changeset
21
adb101296bb8 Add C++ protectors.
Matti Hamalainen <ccr@tnsp.org>
parents: 311
diff changeset
22
366
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
23 struct DMEngineData;
359
59045853853d Make resource management re-entrant.
Matti Hamalainen <ccr@tnsp.org>
parents: 354
diff changeset
24
59045853853d Make resource management re-entrant.
Matti Hamalainen <ccr@tnsp.org>
parents: 354
diff changeset
25
59045853853d Make resource management re-entrant.
Matti Hamalainen <ccr@tnsp.org>
parents: 354
diff changeset
26 typedef struct
59045853853d Make resource management re-entrant.
Matti Hamalainen <ccr@tnsp.org>
parents: 354
diff changeset
27 {
59045853853d Make resource management re-entrant.
Matti Hamalainen <ccr@tnsp.org>
parents: 354
diff changeset
28 DMResourceLib *resources;
59045853853d Make resource management re-entrant.
Matti Hamalainen <ccr@tnsp.org>
parents: 354
diff changeset
29
354
ba284f5e7ea5 More work on editor, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 345
diff changeset
30 DMResource *timeline;
345
cac13f180169 Work towards timeline support.
Matti Hamalainen <ccr@tnsp.org>
parents: 342
diff changeset
31 DMTimeline *tl;
cac13f180169 Work towards timeline support.
Matti Hamalainen <ccr@tnsp.org>
parents: 342
diff changeset
32 DMPreparedTimeline *ptl;
cac13f180169 Work towards timeline support.
Matti Hamalainen <ccr@tnsp.org>
parents: 342
diff changeset
33
361
bf60f60cafba Fix engine breakage.
Matti Hamalainen <ccr@tnsp.org>
parents: 359
diff changeset
34 int frameTime, frameCount,
bf60f60cafba Fix engine breakage.
Matti Hamalainen <ccr@tnsp.org>
parents: 359
diff changeset
35 startTime, endTime,
bf60f60cafba Fix engine breakage.
Matti Hamalainen <ccr@tnsp.org>
parents: 359
diff changeset
36 adjustTime, pauseTime;
93
15fdd5573344 Add simple (and buggy / not really working) debug mode.
Matti Hamalainen <ccr@tnsp.org>
parents: 32
diff changeset
37
15fdd5573344 Add simple (and buggy / not really working) debug mode.
Matti Hamalainen <ccr@tnsp.org>
parents: 32
diff changeset
38 BOOL pauseFlag, paused, exitFlag;
361
bf60f60cafba Fix engine breakage.
Matti Hamalainen <ccr@tnsp.org>
parents: 359
diff changeset
39
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
40 SDL_Surface *screen;
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
41 SDL_Event event;
105
d5d27f262227 Beging merging of dmsimple2-fork into the main "engine".
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
42 SDL_AudioSpec optAfmt;
d5d27f262227 Beging merging of dmsimple2-fork into the main "engine".
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
43 int optScrWidth, optScrHeight, optVFlags, optBitDepth, optResFlags;
d5d27f262227 Beging merging of dmsimple2-fork into the main "engine".
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
44 char *optDataPath, *optPackFilename;
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
45
105
d5d27f262227 Beging merging of dmsimple2-fork into the main "engine".
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
46 #ifdef DM_USE_JSS
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
47 JSSMixer *dev;
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
48 JSSPlayer *plr;
110
8db49a23b393 Fixes to make the JSS audio subsystem support work again in the engine framework.
Matti Hamalainen <ccr@tnsp.org>
parents: 105
diff changeset
49 int jss_format;
105
d5d27f262227 Beging merging of dmsimple2-fork into the main "engine".
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
50 #endif
d5d27f262227 Beging merging of dmsimple2-fork into the main "engine".
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
51
d5d27f262227 Beging merging of dmsimple2-fork into the main "engine".
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
52 #ifdef DM_USE_TREMOR
359
59045853853d Make resource management re-entrant.
Matti Hamalainen <ccr@tnsp.org>
parents: 354
diff changeset
53 DMResource *audioRes;
113
34ccf783ecca Fix some warnings.
Matti Hamalainen <ccr@tnsp.org>
parents: 110
diff changeset
54 size_t audioPos;
105
d5d27f262227 Beging merging of dmsimple2-fork into the main "engine".
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
55 #endif
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
56
366
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
57 int (*demoInit)(struct DMEngineData *);
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
58 int (*demoInitPreVideo)(struct DMEngineData *);
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
59 int (*demoInitPostVideo)(struct DMEngineData *);
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
60 int (*demoRender)(struct DMEngineData *);
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
61 void (*demoShutdown)(struct DMEngineData *);
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
62 void (*demoQuit)(struct DMEngineData *);
127
ab4086db7dad Various improvements in modularity.
Matti Hamalainen <ccr@tnsp.org>
parents: 113
diff changeset
63
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
64 } DMEngineData;
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
65
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
66
366
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
67 #define engineGetResImage(eng, x, name) \
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
68 do { \
366
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
69 if ((x = (SDL_Surface *) engineGetResource(eng, name)) == NULL) \
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
70 return DMERR_INIT_FAIL; \
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
71 } while (0)
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
72
366
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
73 #define engineGetResModule(eng, x, name) \
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
74 do { \
366
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
75 if ((x = (JSSModule *) engineGetResource(eng, name)) == NULL) \
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
76 return DMERR_INIT_FAIL; \
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
77 } while (0)
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
78
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
79
342
c6ec970dc3cf Separate some demo engine parts to two different modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 335
diff changeset
80 int engineClassifier(DMResource *res);
366
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
81 void * engineGetResource(DMEngineData *eng, const char *name);
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
82 int engineGetTime(DMEngineData *eng, int t);
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
83 int engineGetTimeDTi(DMEngineData *eng);
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
84 int engineGetTick(DMEngineData *eng);
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
85 float engineGetTimeDT(DMEngineData *eng);
38e10b5f4e09 Work towards base engine re-entrancy.
Matti Hamalainen <ccr@tnsp.org>
parents: 361
diff changeset
86 int demoPreInit(DMEngineData *eng);
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
87
317
adb101296bb8 Add C++ protectors.
Matti Hamalainen <ccr@tnsp.org>
parents: 311
diff changeset
88
adb101296bb8 Add C++ protectors.
Matti Hamalainen <ccr@tnsp.org>
parents: 311
diff changeset
89 #ifdef __cplusplus
adb101296bb8 Add C++ protectors.
Matti Hamalainen <ccr@tnsp.org>
parents: 311
diff changeset
90 }
adb101296bb8 Add C++ protectors.
Matti Hamalainen <ccr@tnsp.org>
parents: 311
diff changeset
91 #endif
adb101296bb8 Add C++ protectors.
Matti Hamalainen <ccr@tnsp.org>
parents: 311
diff changeset
92
32
d1a6833a5d67 Added a simple demo engine core.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
93 #endif // DMSIMPLE_H