Search code examples
cstm32stm32f7

Animation using Single Frame buffer how is it possible?


I'm using the device STM32F746. I know it has a hardware 2D Graphics accelerator. I know how to do animation using double buffering. But according to this https://www.touchgfx.com/news/high-quality-graphics-using-only-internal-memory/

They are claiming that they use only one framebuffer for animation.

How is that possible and what techniques that are used using that STM32F746 ?


Solution

  • It is the double buffering. One buffer is stored in the MCU memory, where the next frame is prepared and composed. Another buffer is in LCD driver memory, to where data being transferred from the MCU when it is ready, and displayed on the LCD with the required refresh rate. That's why that library requires so much of MCU memory.

    Despite the answer was accepted it is wrong.

    In fact those controllers have their own LCD-driving circuit, thus, do not require external driver. They use part of internal memory as the screen buffer and constantly refresh the image on the LCD.

    In the library, that only part of memory is used. The write operatation are synchronized with LCD refresh, so they avoid flickering.

    So, the only one buffer is used: the same buffer contains the output image and used to compose the next frame.