scrobj = src/introscr.obj src/menuscr.obj
gameobj = src/game.obj src/util.obj src/gfxutil.obj src/dynarr.obj src/rbtree.obj
gfxobj = src/3dgfx/3dgfx.obj src/3dgfx/mesh.obj src/3dgfx/meshload.obj &
- src/3dgfx/polyfill.obj src/3dgfx/polyclip.obj
-csprobj = cspr/dbgfont.obj
+ src/3dgfx/polyfill.obj src/3dgfx/polyclip.obj src/sprite.obj
incpath = -Isrc -Isrc/dos -Ilibs/imago/src
libpath = libpath libs/imago
!else
gameobj = src\game.obj src\util.obj src\gfxutil.obj src\dynarr.obj &
src\rbtree.obj
gfxobj = src\3dgfx\3dgfx.obj src\3dgfx\mesh.obj src\3dgfx\meshload.obj &
- src\3dgfx\polyfill.obj src\3dgfx\polyclip.obj
-csprobj = cspr/dbgfont.obj
+ src\3dgfx\polyfill.obj src\3dgfx\polyclip.obj src\sprite.obj
incpath = -Isrc -Isrc\dos -Ilibs\imago\src
libpath = libpath libs\imago
!endif
-obj = $(dosobj) $(gameobj) $(gfxobj) $(scrobj) $(csprobj)
+obj = $(dosobj) $(gameobj) $(gfxobj) $(scrobj)
bin = game.exe
def = -dM_PI=3.141592653589793
$(LD) debug all name $@ system dos4g file { @objects } @ldflags
.c: src;src/dos;src/3dgfx
-.asm: src;src/dos;src/3dgfx;cspr
+.asm: src;src/dos;src/3dgfx
cflags.occ: Makefile
%write $@ $(CFLAGS)
clean: .symbolic
del src\*.obj
del src\dos\*.obj
- del cspr\*.obj
del *.lnk
del cflags.occ
del $(bin)
static void blit_frame_lfb(void *pixels, int vsync)
{
+ dbg_fps(pixels);
if(vsync) wait_vsync();
memcpy(vpgaddr[frontidx], pixels, pgsize);
}
unsigned int pending;
unsigned char *pptr = pixels;
+ dbg_fps(pixels);
+
if(vsync) wait_vsync();
/* assume initial window offset at 0 */
+#include <stdio.h>
+#include <stdarg.h>
#include "game.h"
#include "screens.h"
#include "sprite.h"
}
}
+void dbg_printf(void *fb, int x, int y, const char *fmt, ...)
+{
+ static char buf[2048];
+ va_list ap;
+
+ va_start(ap, fmt);
+ vsprintf(buf, fmt, ap);
+ va_end(ap);
+
+ dbg_print(fb, x, y, buf);
+}
+
+void dbg_fps(void *fb)
+{
+ static char fpsbuf[8];
+ static long frame, prev_upd;
+ long msec = time_msec;
+ long delta;
+
+ frame++;
+
+ delta = msec - prev_upd;
+ if(delta >= 1024) {
+ frame *= 1000;
+ sprintf(fpsbuf, "%2ld.%1ld", frame >> 10, 10 * (frame & 0x3ff) >> 10);
+ frame = 0;
+ prev_upd = msec;
+ }
+
+ dbg_print(fb, 2, 2, fpsbuf);
+}
void game_quit(void);
void dbg_print(void *fb, int x, int y, const char *str);
+void dbg_printf(void *fb, int x, int y, const char *fmt, ...);
+void dbg_fps(void *fb);
#endif /* GAME_H_ */
}
}
- dbg_print(fb_pixels, 10, 10, "foo");
-
blit_frame(fb_pixels, 1);
}
wait_vsync();
}
+ dbg_fps(pixels);
+
if(SDL_MUSTLOCK(fbsurf)) {
SDL_LockSurface(fbsurf);
}