--- np2/win9xc/sysmng.cpp 2003/10/16 17:59:22 1.1.1.1 +++ np2/win9xc/sysmng.cpp 2004/02/14 07:56:51 1.5 @@ -1,6 +1,59 @@ #include "compiler.h" +#include "np2.h" #include "sysmng.h" +#include "cpucore.h" +#include "pccore.h" UINT sys_updates; + +// ---- + +static struct { + UINT32 tick; + UINT32 clock; + UINT32 draws; + SINT32 fps; + SINT32 khz; +} workclock; + +void sysmng_workclockreset(void) { + + workclock.tick = GETTICK(); + workclock.clock = CPU_CLOCK; + workclock.draws = drawcount; +} + +static BOOL workclockrenewal(void) { + + SINT32 tick; + + tick = GETTICK() - workclock.tick; + if (tick < 2000) { + return(FALSE); + } + workclock.tick += tick; + workclock.fps = ((drawcount - workclock.draws) * 10000) / tick; + workclock.draws = drawcount; + workclock.khz = (CPU_CLOCK - workclock.clock) / tick; + workclock.clock = CPU_CLOCK; + return(TRUE); +} + +void sysmng_updatecaption(void) { + + char title[256]; + char work[32]; + + if (workclockrenewal()) { + milstr_ncpy(title, szAppCaption, sizeof(title)); + SPRINTF(work, " - %u.%1uFPS", workclock.fps / 10, workclock.fps % 10); + milstr_ncat(title, work, sizeof(title)); + SPRINTF(work, " %2u.%03uMHz", + workclock.khz / 1000, workclock.khz % 1000); + milstr_ncat(title, work, sizeof(title)); + SetWindowText(hWndMain, title); + } +} +