labs work
[vg.git] / vg.h
diff --git a/vg.h b/vg.h
index 523779260f1aa02d702415282574692a7979b00a..119e9b1b162b54ebe4e24ddf7c9c63ded761c2f8 100644 (file)
--- 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) );