X-Git-Url: https://harrygodden.com/git/?p=vg.git;a=blobdiff_plain;f=vg.h;fp=vg.h;h=119e9b1b162b54ebe4e24ddf7c9c63ded761c2f8;hp=523779260f1aa02d702415282574692a7979b00a;hb=fce86711735b15bff37de0f70716808410fcf269;hpb=1c305409e8eca9cf8449d681df73208956ce14df diff --git a/vg.h b/vg.h index 5237792..119e9b1 100644 --- a/vg.h +++ b/vg.h @@ -167,6 +167,8 @@ struct vg{ time_fixed_extrapolate, time_frame_delta; + f32 time_fixed_delta; + u64 time_hp, time_hp_last, time_spinning; int fixed_iterations; @@ -194,7 +196,7 @@ struct vg{ vg_rand rand; } -static vg = { .time_rate = 1.0 }; +static vg = { .time_rate = 1.0, .time_fixed_delta = VG_TIMESTEP_FIXED }; const char *vg_get_basepath(void){ return vg.base_path; } @@ -265,8 +267,8 @@ static void vg_checkgl( const char *src_info ); /* Diagnostic */ static struct vg_profile vg_prof_update = {.name="update()"}, - vg_prof_render = {.name="render()"}, - vg_prof_swap = {.name="swap"}; + vg_prof_render = {.name="render()"}, + vg_prof_swap = {.name="swap"}; static void vg_checkgl( const char *src_info ) { @@ -323,11 +325,12 @@ static void _vg_load_full( void *data ){ #endif vg_loader_step( vg_profiler_init, NULL ); - vg_async_call( async_internal_complete, NULL, 0 ); - /* client */ vg_load(); + vg_async_call( async_internal_complete, NULL, 0 ); + + vg_success( "Client loaded in %fs\n", vg.time_real ); } @@ -432,10 +435,10 @@ static void _vg_gameloop_update(void) vg_lines.enabled = vg_lines.render; vg.time_fixed_accumulator += vg.time_delta; - while( vg.time_fixed_accumulator >= VG_TIMESTEP_FIXED ){ + while( vg.time_fixed_accumulator >= vg.time_fixed_delta ){ vg_fixed_update(); vg_lines.enabled = 0; - vg.time_fixed_accumulator -= VG_TIMESTEP_FIXED; + vg.time_fixed_accumulator -= vg.time_fixed_delta; vg.fixed_iterations ++; if( vg.fixed_iterations == 8 ){ @@ -443,7 +446,7 @@ static void _vg_gameloop_update(void) } } vg_lines.enabled = vg_lines.render; - vg.time_fixed_extrapolate = vg.time_fixed_accumulator / VG_TIMESTEP_FIXED; + vg.time_fixed_extrapolate = vg.time_fixed_accumulator / vg.time_fixed_delta; vg.engine_stage = k_engine_stage_update; vg_post_update(); @@ -458,6 +461,8 @@ static void _vg_gameloop_render(void) vg.engine_stage = k_engine_stage_rendering; vg_render(); + vg_profile_end( &vg_prof_render ); + /* ui */ vg.engine_stage = k_engine_stage_ui; { @@ -507,12 +512,10 @@ static void _vg_gameloop_render(void) vg.time_fixed_extrapolate, vg.time_frame_delta, vg.time_spinning ); - ui_text( (ui_rect){258, 4+24+12+12,900,900},perf,1,0,k_ui_align_left); + ui_text( (ui_rect){258,4,900,900},perf,1,0,k_ui_align_left); } ui_postrender(); } - - vg_profile_end( &vg_prof_render ); } static void aaaaaaaaaaaaaaaaa( ui_rect r ){ @@ -523,7 +526,7 @@ static void aaaaaaaaaaaaaaaaa( ui_rect r ){ (struct vg_profile *[]){ &vg_prof_update,&vg_prof_render,&vg_prof_swap}, 3, (1.0f/(f32)frame_target)*1500.0f, - r, 0, 1 + r, 1, 0 ); ui_fill( (ui_rect){ r[0], r[1] + (r[3]*2)/3, r[2], 1 }, ui_colour(k_ui_fg) );