|
|
|
@ -175,7 +175,8 @@ void |
|
|
|
doRenderLoop(RenderState* rs, |
|
|
|
doRenderLoop(RenderState* rs, |
|
|
|
u32 framerate, |
|
|
|
u32 framerate, |
|
|
|
frame_callback_fn cb_func_pre, |
|
|
|
frame_callback_fn cb_func_pre, |
|
|
|
frame_callback_fn cb_func_post) |
|
|
|
frame_callback_fn cb_func_post, |
|
|
|
|
|
|
|
void* user_data) |
|
|
|
{ |
|
|
|
{ |
|
|
|
u32 delay = (framerate > 0) ? 1 / framerate : 0; |
|
|
|
u32 delay = (framerate > 0) ? 1 / framerate : 0; |
|
|
|
u32 frameStart, frameTime; |
|
|
|
u32 frameStart, frameTime; |
|
|
|
@ -186,7 +187,7 @@ doRenderLoop(RenderState* rs, |
|
|
|
frameStart = SDL_GetTicks(); |
|
|
|
frameStart = SDL_GetTicks(); |
|
|
|
|
|
|
|
|
|
|
|
if (cb_func_pre != nullptr) { |
|
|
|
if (cb_func_pre != nullptr) { |
|
|
|
cb_func_pre(rs); |
|
|
|
cb_func_pre(rs, user_data); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
while (SDL_PollEvent(&e)) { |
|
|
|
while (SDL_PollEvent(&e)) { |
|
|
|
if (e.type == SDL_QUIT || |
|
|
|
if (e.type == SDL_QUIT || |
|
|
|
@ -201,7 +202,7 @@ doRenderLoop(RenderState* rs, |
|
|
|
renderFrame(rs, rs->clear_col); |
|
|
|
renderFrame(rs, rs->clear_col); |
|
|
|
|
|
|
|
|
|
|
|
if (cb_func_post != nullptr) |
|
|
|
if (cb_func_post != nullptr) |
|
|
|
cb_func_post(rs); |
|
|
|
cb_func_post(rs, user_data); |
|
|
|
|
|
|
|
|
|
|
|
SDL_GL_SwapWindow(rs->handles.window); |
|
|
|
SDL_GL_SwapWindow(rs->handles.window); |
|
|
|
frameTime = SDL_GetTicks() - frameStart; |
|
|
|
frameTime = SDL_GetTicks() - frameStart; |
|
|
|
|