3 struct vg_convar debug_cvars
[] =
5 { .name
= "debug_sfx", .data
= &debug_sfx
, .data_type
= k_convar_dtype_i32
}
8 static void sfx_internal_debug_overlay(void)
20 u32 buffer_length
, clip_start
, clip_end
;
22 infos
[ SFX_MAX_SYSTEMS
];
25 MUTEX_LOCK( sfx_mux_t01
);
27 num_systems
= sfx_sys_len
;
29 for( int i
= 0; i
< sfx_sys_len
; i
++ )
31 sfx_system
*sys
= sfx_sys
+ i
;
32 struct sound_info
*snd
= &infos
[ i
];
34 //snd->signal = sys->signal_average;
35 snd
->name
= sys
->name
;
36 snd
->cursor
= sys
->cur
;
37 snd
->flags
= sys
->flags
;
38 snd
->clip_start
= sys
->clip_start
;
39 snd
->clip_end
= sys
->clip_end
;
40 snd
->buffer_length
= sys
->buffer_length
;
43 MUTEX_UNLOCK( sfx_mux_t01
);
49 for( int i
= 0; i
< num_systems
; i
++ )
51 ui_global_ctx
.cursor
[2] = 150;
52 ui_global_ctx
.cursor
[3] = 12;
54 u32 alpha
= (infos
[i
].flags
& SFX_FLAG_PERSISTENT
)? 0xff000000: 0x22000000;
56 ui_new_node( &ui_global_ctx
);
58 ui_fill_rect( &ui_global_ctx
, ui_global_ctx
.cursor
, 0x00333333 | alpha
);
60 ui_px baseline
= ui_global_ctx
.cursor
[0];
61 ui_px width_block_1
= (ui_px
)(((float)infos
[i
].clip_start
/ (float)infos
[i
].buffer_length
) * 150.0f
);
62 ui_px width_block_2
= (ui_px
)(((float)(infos
[i
].buffer_length
-infos
[i
].clip_end
) / (float)infos
[i
].buffer_length
) * 150.0f
);
64 ui_global_ctx
.cursor
[2] = width_block_1
;
65 ui_fill_rect( &ui_global_ctx
, ui_global_ctx
.cursor
, 0x77ffffff );
67 ui_global_ctx
.cursor
[2] = width_block_2
;
68 ui_align_right( &ui_global_ctx
);
69 ui_fill_rect( &ui_global_ctx
, ui_global_ctx
.cursor
, 0x77ffffff );
73 ui_global_ctx
.cursor
[2] = 2;
74 ui_global_ctx
.cursor
[0] = baseline
+ (ui_px
)(((float)infos
[i
].cursor
/ (float)infos
[i
].buffer_length
) * 150.0f
);
75 ui_fill_rect( &ui_global_ctx
, ui_global_ctx
.cursor
, 0xffffffff );
77 ui_global_ctx
.cursor
[0] = baseline
+ 2;
78 ui_global_ctx
.cursor
[1] += 2;
79 ui_text( &ui_global_ctx
, infos
[i
].name
, 1 );
81 ui_end_down( &ui_global_ctx
);
82 ui_global_ctx
.cursor
[1] += 1;
86 static void vg_debugtools_draw(void)
88 sfx_internal_debug_overlay();
91 static void vg_debugtools_setup(void)
93 for( int i
= 0; i
< vg_list_size( debug_cvars
); i
++ )
95 vg_convar_push( debug_cvars
[i
] );