From 69d8af71d6882e801496fcd7ed971081c0b720d8 Mon Sep 17 00:00:00 2001 From: chai Date: Sun, 8 Dec 2019 21:29:29 +0800 Subject: *misc --- src/main.c | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 1dd4663..176c2e6 100644 --- a/src/main.c +++ b/src/main.c @@ -8,8 +8,8 @@ SDL_Surface* suf; -#define SCREEN_WIDTH 600 /*800*/ -#define SCREEN_HEIGHT 500 /*600*/ +#define SCREEN_WIDTH 600/*800*/ +#define SCREEN_HEIGHT 480/*600*/ typedef void(*F)(void*); F onload; @@ -30,7 +30,7 @@ SETEXAMPLEF(onupdate, i) int main(int argc, char* argv[]) { - if (SDL_Init(SDL_INIT_EVERYTHING) < 0) + if (SDL_Init(SDL_INIT_EVENTS | SDL_INIT_TIMER | SDL_INIT_VIDEO) < 0) return 1; SDL_Window* wnd = SDL_CreateWindow("Soft Shade Room", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN); SDL_Event e; @@ -40,18 +40,24 @@ int main(int argc, char* argv[]) ssr_assert(suf->format->Rshift == 16); ssr_assert(suf->format->Gshift == 8); ssr_assert(suf->format->Bshift == 0); + /* init ssr */ ssr_Config config = { - SCREEN_WIDTH, SCREEN_HEIGHT,/* screen size */ - 0, /* double buffer */ - suf->pixels /* screen buffer */ + SCREEN_WIDTH, SCREEN_HEIGHT, + 0, + suf->pixels }; ssr_init(&config); + SETEXAMPLE(EXAMPLECUR); + onload(0); + /* main loop */ - uint previous = SDL_GetTicks(); + uint prev = SDL_GetTicks(); uint dt = 0; + uint frame_count = 0; + uint time_stamp = 0; while (1) { while (SDL_PollEvent(&e)) { if (e.type == SDL_QUIT) { @@ -60,15 +66,27 @@ int main(int argc, char* argv[]) onevent(&e); } } - dt = SDL_GetTicks() - previous; - previous = dt + previous; + + dt = SDL_GetTicks() - prev; + prev += dt; + time_stamp += dt; + ++frame_count; + if (time_stamp >= 1000) { + printf("%3d fps\n", frame_count); + time_stamp -= 1000; + frame_count = 0; + } + onupdate(&dt); ondraw(0); ssr_present(); SDL_UpdateWindowSurface(wnd); - Sleep(10); /*100fps limit*/ + + Sleep(1); /*reduce cpu usage*/ } - quit: + +quit: SDL_Quit(); + return 0; } -- cgit v1.1-26-g67d0