Slide transition not working with single framebuffer
Hello,
I’m trying to understand some issues we have with the slide transition. The slide transition uses the snapshot widget functions to copy the "old" screen to the animation storage to combine this screen with the incoming screen.
Here is the code:
SlideTransition(const uint8_t transitionSteps = 20)
: Transition(),
snapshot(),
snapshotPtr(&snapshot),
handleTickCallback(this, &SlideTransition::tickMoveDrawable),
animationSteps(transitionSteps),
animationCounter(0),
calculatedValue(0)
{
if (HAL::USE_ANIMATION_STORAGE)
{
snapshot.setPosition(0, 0, HAL::DISPLAY_WIDTH, HAL::DISPLAY_HEIGHT);
snapshot.makeSnapshot();
...
}
...
}So far so good. When I use the snapshot functionalities with a "single framebuffer strategy" in CubeMx and an additional animation storage, the "old" screen consists of just random pixels during the sliding process, see image. The pixel data on the screen is the same as the pixel data in the animation storage.

When I use a double buffer strategy with an additional animation storage and same project settings, everything works well and as expected.
Do you have any ideas why it did not work with a single framebuffer but did work with a double buffer? I do not understand the correlation between the number of framebuffers and how the animation storage is filled. Shouldn’t it work in both cases?
We use a STM32F469.
Thanks in advance for your answers.
