cancel
Showing results for 
Search instead for 
Did you mean: 

Screen slide transition works in simulator but not in hardware

BParh.1
Senior III

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!

3 REPLIES 3
Tuoman
Senior II

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)));
}

BParh.1
Senior III

Thank you @Tuoman​ , could you elaborate how this animation storage relevant to this issue?