Mercurial > hg > forks > 3x666-SDL
comparison recording.patch @ 38:efb2709f3b00
Updated recording patch.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 19 Mar 2013 03:00:51 +0200 |
parents | b4c72c135f5b |
children |
comparison
equal
deleted
inserted
replaced
37:38b7583302c3 | 38:efb2709f3b00 |
---|---|
1 diff -r 62b5f87ebb2a 3x666.c | 1 diff -r 38b7583302c3 3x666.c |
2 --- a/3x666.c Tue Mar 19 02:46:34 2013 +0200 | 2 --- a/3x666.c Tue Mar 19 02:55:25 2013 +0200 |
3 +++ b/3x666.c Tue Mar 19 02:46:50 2013 +0200 | 3 +++ b/3x666.c Tue Mar 19 03:00:45 2013 +0200 |
4 @@ -7,6 +7,19 @@ | 4 @@ -7,6 +7,19 @@ |
5 #include "config.h" | 5 #include "config.h" |
6 #include "3xfont.h" | 6 #include "3xfont.h" |
7 | 7 |
8 +//#define RECORD 1 | 8 +#define RECORD 1 |
9 +#define RECORD_FPS 50 | 9 +#define RECORD_FPS 50 |
10 +#define RECORD_AUDIO_FILE "audio.wav" | 10 +#define RECORD_AUDIO_FILE "audio.wav" |
11 +#define RECORD_VIDEO_FILE "%05d.png" | 11 +#define RECORD_VIDEO_FILE "%05d.png" |
12 + | 12 + |
13 + | 13 + |
36 | 36 |
37 +#ifndef RECORD | 37 +#ifndef RECORD |
38 | 38 |
39 static void dmPrintVA(int level, const char *fmt, va_list ap) | 39 static void dmPrintVA(int level, const char *fmt, va_list ap) |
40 { | 40 { |
41 @@ -98,6 +114,7 @@ | 41 @@ -99,6 +115,7 @@ |
42 dmErrorVA(fmt, ap); | 42 dmErrorVA(fmt, ap); |
43 va_end(ap); | 43 va_end(ap); |
44 } | 44 } |
45 +#endif | 45 +#endif |
46 | 46 |
47 | 47 |
48 static int engineGetTick() | 48 static int engineGetTick() |
49 @@ -964,10 +981,12 @@ | 49 @@ -994,10 +1011,12 @@ |
50 engine.optAfmt.callback = engineAudioCallback; | 50 engine.optAfmt.callback = engineAudioCallback; |
51 | 51 |
52 // Initialize SDL audio | 52 // Initialize SDL audio |
53 +#ifndef RECORD | 53 +#ifndef RECORD |
54 if (SDL_OpenAudio(&engine.optAfmt, NULL) < 0) | 54 if (SDL_OpenAudio(&engine.optAfmt, NULL) < 0) |
57 } | 57 } |
58 +#endif | 58 +#endif |
59 | 59 |
60 // Initialize SDL video | 60 // Initialize SDL video |
61 if (!engineInitializeVideo()) | 61 if (!engineInitializeVideo()) |
62 @@ -989,13 +1008,53 @@ | 62 @@ -1019,13 +1038,53 @@ |
63 | 63 |
64 // Start audio, enter main loop | 64 // Start audio, enter main loop |
65 dmPrint(0, "We are go.\n"); | 65 dmPrint(0, "We are go.\n"); |
66 +#ifdef RECORD | 66 +#ifdef RECORD |
67 + DMImage image; | 67 + DMImage image; |
111 + engine.frameTime += 1000 / RECORD_FPS; | 111 + engine.frameTime += 1000 / RECORD_FPS; |
112 +#else | 112 +#else |
113 // Handle SDL events | 113 // Handle SDL events |
114 while (SDL_PollEvent(&engine.event)) | 114 while (SDL_PollEvent(&engine.event)) |
115 switch (engine.event.type) | 115 switch (engine.event.type) |
116 @@ -1036,8 +1095,9 @@ | 116 @@ -1066,8 +1125,9 @@ |
117 break; | 117 break; |
118 } | 118 } |
119 | 119 |
120 + engine.frameTime = SDL_GetTicks(); | 120 + engine.frameTime = SDL_GetTicks(); |
121 +#endif | 121 +#endif |
122 // Draw frame | 122 // Draw frame |
123 - engine.frameTime = SDL_GetTicks(); | 123 - engine.frameTime = SDL_GetTicks(); |
124 int qt = engineGetTick(&engine); | 124 int qt = engineGetTick(&engine); |
125 | 125 |
126 if (SDL_MUSTLOCK(engine.screen) != 0 && SDL_LockSurface(engine.screen) != 0) | 126 if (SDL_MUSTLOCK(engine.screen) != 0 && SDL_LockSurface(engine.screen) != 0) |
127 @@ -1154,13 +1214,25 @@ | 127 @@ -1184,13 +1244,25 @@ |
128 n /= 10; | 128 n /= 10; |
129 } | 129 } |
130 | 130 |
131 - // Flip screen, increase frame count, wait | 131 - // Flip screen, increase frame count, wait |
132 +#ifdef RECORD | 132 +#ifdef RECORD |
149 SDL_Delay(20); | 149 SDL_Delay(20); |
150 +#endif | 150 +#endif |
151 } | 151 } |
152 | 152 |
153 error_exit: | 153 error_exit: |
154 @@ -1176,9 +1248,26 @@ | 154 @@ -1206,9 +1278,26 @@ |
155 if (engine.screen) | 155 if (engine.screen) |
156 SDL_FreeSurface(engine.screen); | 156 SDL_FreeSurface(engine.screen); |
157 | 157 |
158 +#ifdef RECORD | 158 +#ifdef RECORD |
159 + if (audioFile != NULL) | 159 + if (audioFile != NULL) |
176 SDL_UnlockAudio(); | 176 SDL_UnlockAudio(); |
177 +#endif | 177 +#endif |
178 | 178 |
179 audio_close(); | 179 audio_close(); |
180 | 180 |
181 diff -r 62b5f87ebb2a Makefile.gen | 181 diff -r 38b7583302c3 Makefile.gen |
182 --- a/Makefile.gen Tue Mar 19 02:46:34 2013 +0200 | 182 --- a/Makefile.gen Tue Mar 19 02:55:25 2013 +0200 |
183 +++ b/Makefile.gen Tue Mar 19 02:46:50 2013 +0200 | 183 +++ b/Makefile.gen Tue Mar 19 03:00:45 2013 +0200 |
184 @@ -26,6 +26,8 @@ | 184 @@ -24,11 +24,10 @@ |
185 ### Main demo | |
186 ### | |
185 $(OBJPATH)3x666.o: 3x666.c config.h 3xfont.h | 187 $(OBJPATH)3x666.o: 3x666.c config.h 3xfont.h |
186 $(CC) $(CFLAGS) -c -o $@ $< $(SDL_CFLAGS) -Idmlib/ | 188 - $(CC) $(CFLAGS) -c -o $@ $< $(SDL_CFLAGS) -Idmlib/ |
189 + $(CC) $(CFLAGS) -c -o $@ $< $(SDL_CFLAGS) -Idmlib/ -DDM_USE_LIBPNG | |
187 | 190 |
191 -$(BINPATH)3x666$(EXEEXT): $(OBJPATH)3x666.o | |
192 - $(CC) -o $@ $+ $(LDFLAGS) $(SDL_LDFLAGS) | |
193 - | |
188 +$(BINPATH)3x666$(EXEEXT): $(OBJPATH)3x666.o dmlib/unix/dmwav.o dmlib/unix/dmfile.o dmlib/unix/dmlib.o dmlib/unix/libgfx.o dmlib/unix/dmbstr.o | 194 +$(BINPATH)3x666$(EXEEXT): $(OBJPATH)3x666.o dmlib/unix/dmwav.o dmlib/unix/dmfile.o dmlib/unix/dmlib.o dmlib/unix/libgfx.o dmlib/unix/dmbstr.o |
189 + $(CC) -o $@ $+ $(LDFLAGS) $(SDL_LDFLAGS) -lpng | 195 + $(CC) -o $@ $+ $(LDFLAGS) $(SDL_LDFLAGS) -lpng |
190 | 196 |
191 | |
192 ### | 197 ### |
198 ### Special targets |