Re-add Transition Animations in C++ Firmware
Open, NormalPublic

Description

The (old) C-firmware featured a transition animation where the entire screen was moved or wiped out of the frame very quickly (4 directions could be chosen).

This was achieved by a second framebuffer (_transition_framebuffer) of the entire LCD.
At the start of such a transition - it basically captured a screenshot copy into said framebuffer and then with following frames shifted or cropped the content of this second framebuffer towards the move direction.

Reference: https://github.com/apertus-open-source-cinema/AXIOM-Remote/blob/dev/Archive/AXIOM_Remote_Prototype_V01.X/draw.c#L787

The animations start was triggered like this:
https://github.com/apertus-open-source-cinema/AXIOM-Remote/blob/dev/Archive/AXIOM_Remote_Prototype_V01.X/menu.c#L640

The animation itself was handled here:
https://github.com/apertus-open-source-cinema/AXIOM-Remote/blob/dev/Archive/AXIOM_Remote_Prototype_V01.X/main.c#L677

How could we best bring this back in the C++ Firmware?

The effect can be seen in this video:

sebastian triaged this task as Normal priority.
sebastian updated the task description. (Show Details)Apr 13 2020, 4:00 PM
sebastian added a comment.EditedApr 13 2020, 4:17 PM

The ILI9341 datasheet (https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf ) mentions support for "Vertical Scrolling" which would be great as it's a hardware feature and thus presumably would work rather fast.
The directions seem to be limited so the hardware acceleration will not work for every direction/effect.

sebastian renamed this task from Readd Transition Animations in C++ Firmware to Re-add Transition Animations in C++ Firmware.Apr 16 2020, 12:18 PM