X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=vg_profiler.h;h=dfc47ef1266d680b5fe1db657f4ad9b583870493;hb=fac9f6fff674421f27fa4f4c1d2844998f0003d6;hp=67808a7a6d42d898f42e747d0be49f0a4528b8aa;hpb=ee7f1a82603a356e896f28416eed25d3c9008430;p=vg.git diff --git a/vg_profiler.h b/vg_profiler.h index 67808a7..dfc47ef 100644 --- a/vg_profiler.h +++ b/vg_profiler.h @@ -59,25 +59,23 @@ static void vg_profile_end( struct vg_profile *profile ) } static void vg_profile_drawn( struct vg_profile **profiles, u32 count, - float budget, ui_rect panel, u32 colour_offset ) + float budget, ui_rect panel, u32 colour_offset, + int dir ) { - if( !vg_profiler ) - return; - if( panel[2] == 0 ) panel[2] = 256; if( panel[3] == 0 ) panel[3] = VG_PROFILE_SAMPLE_COUNT * 2; - float sh = panel[3] / VG_PROFILE_SAMPLE_COUNT, - sw = panel[2]; + f32 sh = (f32)panel[3^dir] / (f32)VG_PROFILE_SAMPLE_COUNT, + sw = (f32)panel[2^dir]; ui_fill( panel, 0xa0000000 ); assert( count <= 8 ); - double avgs[8]; - int ptrs[8]; + f64 avgs[8]; + int ptrs[8]; for( int i=0; ibuffer_current; @@ -87,10 +85,10 @@ static void vg_profile_drawn( struct vg_profile **profiles, u32 count, u32 colours[] = { 0xff0000ff, 0xff00ff00, 0xff00ffff, 0xffff0000, 0xffff00ff, 0xffffff00 }; - double rate_mul = 1000.0 / (double)SDL_GetPerformanceFrequency(); + f64 rate_mul = 1000.0 / (f64)SDL_GetPerformanceFrequency(); for( int i=0; isamples[ptrs[j]] * rate_mul, - px = (total / (budget)) * sw, - wx = (sample / (budget)) * sw; + f64 sample = (f64)profiles[j]->samples[ptrs[j]] * rate_mul, + px = (total / (budget)) * sw, + wx = (sample / (budget)) * sw; - ui_rect block = { panel[0] + px, panel[1] + (float)i*sh, - wx, sh }; + ui_rect block; + block[0^dir] = panel[0^dir] + px; + block[1^dir] = panel[1^dir] + (f32)i*sh; + block[2^dir] = wx; + block[3^dir] = ceilf(sh)-1; u32 colour = colours[ (j+colour_offset) % vg_list_size(colours) ]; ui_fill( block, colour ); @@ -117,7 +118,7 @@ static void vg_profile_drawn( struct vg_profile **profiles, u32 count, snprintf( infbuf, 64, "accuracy: %.7fms", rate_mul ); ui_text( (ui_rect){ panel[0] + 4, - panel[1] + 0 * 14, 500, 30 }, + panel[1] + panel[3] - 14, 500, 30 }, infbuf, 1, k_ui_align_left, 0 );