From eeeacde00c589cb227746b164a39372356d1eeec Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Sun, 23 Apr 2023 19:43:33 +0200 Subject: Fix a couple of rendering corner cases --- src/main.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index b6be6b9..aa5bd43 100644 --- a/src/main.c +++ b/src/main.c @@ -21,8 +21,6 @@ WITH REGARD TO THIS SOFTWARE. void render(void) { - // TODO: Decouple update from rendering. - // PROF(screen_fill(0), clear_cycles); PROF(draw_rect(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 1), clear_cycles); if (redraw_trigs) { PROF(draw_triggers(), draw_trigs_cycles); @@ -51,10 +49,17 @@ render(void) { } if (redraw_piano_note) { PROF(draw_piano(), draw_piano_cycles); - // TODO: Draw the notes currently playing with a fade off animation for - // the first 3 channels. - TriggerNote *trig = get_current_trig(); - PROF(draw_note(trig->note, COL_NOTE_PRESSED), draw_piano_cycles); + if (input_handler != handle_trigger_selection && + input_handler != handle_param_selection_sq1 && + input_handler != handle_param_selection_sq2 && + input_handler != handle_param_selection_wave && + input_handler != handle_param_selection_noise) { + // TODO: Show last/current played notes in all channels. + } else { + // Show currently selected trigger note. + TriggerNote *trig = get_current_trig(); + PROF(draw_note(trig->note, COL_NOTE_PRESSED), draw_piano_cycles); + } redraw_piano_note = false; } if (redraw_params) { @@ -97,6 +102,7 @@ main(void) { FRAME_START(); PROF(flip_buffer(), flip_cycles); PROF(handle_sequencer_input(), input_cycles); + // TODO: Update function to performa animations, etc. PROF(render(), render_cycles); FRAME_END(); } -- cgit v1.2.1