2021-08-02 03:12 AM
Hi,
I setup screen transition to slide from one screen to another from e.g East direction, it works on simulator but not in hardware. In hardware the transition occurred immediately.
I am using TouchGFX designer v4.17 and hardware is DISCO board STM32F769 Discovery board.
Please help!
2021-08-02 04:18 AM
Have you setup animationStorage?
For example in my project:
Animation storage not enabled (most screen transitions do not work):
namespace
{
// Use the section "TouchGFX_Framebuffer" in the linker to specify the placement of the buffer
LOCATION_PRAGMA("TouchGFX_Framebuffer")
uint32_t frameBuf[(240 * 320 * 2 + 3) / 4 * 2] LOCATION_ATTRIBUTE("TouchGFX_Framebuffer");
static uint16_t lcd_int_active_line;
static uint16_t lcd_int_porch_line;
}
void TouchGFXGeneratedHAL::initialize()
{
HAL::initialize();
registerEventListener(*(Application::getInstance()));
setFrameBufferStartAddresses((void*)frameBuf, (void*)(frameBuf + sizeof(frameBuf) / (sizeof(uint32_t) * 2)), (void*)0);
}
Animation storage enabled:
namespace
{
// Use the section "TouchGFX_Framebuffer" in the linker to specify the placement of the buffer
LOCATION_PRAGMA("TouchGFX_Framebuffer")
uint32_t frameBuf[(240 * 320 * 2 + 3) / 4 * 3] LOCATION_ATTRIBUTE("TouchGFX_Framebuffer");
static uint16_t lcd_int_active_line;
static uint16_t lcd_int_porch_line;
}
void TouchGFXGeneratedHAL::initialize()
{
HAL::initialize();
registerEventListener(*(Application::getInstance()));
setFrameBufferStartAddresses(
(void*)frameBuf,
(void*)(frameBuf + sizeof(frameBuf) / (sizeof(uint32_t) * 3)),
(void*)(frameBuf + 2 *sizeof(frameBuf) / (sizeof(uint32_t) * 3)));
}
2021-08-03 06:12 PM
Thank you @Tuoman , could you elaborate how this animation storage relevant to this issue?
2021-08-04 12:39 AM