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
;
39 if( sys
->thread_clone
)
41 snd
->clip_start
= sys
->thread_clone
->clip_start
;
42 snd
->clip_end
= sys
->thread_clone
->clip_end
;
43 snd
->buffer_length
= sys
->thread_clone
->buffer_length
;
48 snd
->clip_end
= sys
->end
;
49 snd
->buffer_length
= sys
->end
;
53 MUTEX_UNLOCK( sfx_mux_t01
);
59 for( int i
= 0; i
< num_systems
; i
++ )
61 ui_global_ctx
.cursor
[2] = 150;
62 ui_global_ctx
.cursor
[3] = 12;
64 u32 alpha
= (infos
[i
].flags
& SFX_FLAG_GHOST
)? 0x44000000: 0xff000000;
66 ui_new_node( &ui_global_ctx
);
68 ui_fill_rect( &ui_global_ctx
, ui_global_ctx
.cursor
, 0x00333333 | alpha
);
70 ui_px baseline
= ui_global_ctx
.cursor
[0];
71 ui_px width_block_1
= (ui_px
)(((float)infos
[i
].clip_start
/ (float)infos
[i
].buffer_length
) * 150.0f
);
72 ui_px width_block_2
= (ui_px
)(((float)(infos
[i
].buffer_length
-infos
[i
].clip_end
) / (float)infos
[i
].buffer_length
) * 150.0f
);
74 ui_global_ctx
.cursor
[2] = width_block_1
;
75 ui_fill_rect( &ui_global_ctx
, ui_global_ctx
.cursor
, 0x77ffffff );
77 ui_global_ctx
.cursor
[2] = width_block_2
;
78 ui_align_right( &ui_global_ctx
);
79 ui_fill_rect( &ui_global_ctx
, ui_global_ctx
.cursor
, 0x77ffffff );
83 ui_global_ctx
.cursor
[2] = 2;
84 ui_global_ctx
.cursor
[0] = baseline
+ (ui_px
)(((float)infos
[i
].cursor
/ (float)infos
[i
].buffer_length
) * 150.0f
);
85 ui_fill_rect( &ui_global_ctx
, ui_global_ctx
.cursor
, 0xffffffff );
87 ui_global_ctx
.cursor
[0] = baseline
+ 2;
88 ui_global_ctx
.cursor
[1] += 2;
89 ui_text( &ui_global_ctx
, infos
[i
].name
, 1, 0 );
91 ui_end_down( &ui_global_ctx
);
92 ui_global_ctx
.cursor
[1] += 1;
96 static void vg_debugtools_draw(void)
98 sfx_internal_debug_overlay();
101 static void vg_debugtools_setup(void)
103 for( int i
= 0; i
< vg_list_size( debug_cvars
); i
++ )
105 vg_convar_push( debug_cvars
[i
] );