cancel
Showing results for 
Search instead for 
Did you mean: 

Interaction -> Transition "Slide" not working correctly on Target

chaaalyy
Senior II

Hi,

I´m playing around a little bit and tried to set up a transition, as i did in TGFX 4.12... Just a very simple GUI with 1 Button on each of the 2 pages. Button on page 1 changes to page 2 and vice versa, nothing complicated. Transition is set up as "Slide" with direction "east" (tried other directions, no changes...).

In Simulator, everything works fine, sliding screens are clearly visible... But when it comes to the target (F746 Discovery, App Template was 3.0.0, UI template was "Blank UI" V2.0.0), it doesn´t work correctly anymore. I think, i can see a "slide" within around 0.05 Seconds, but of course that´s not the effect, it should be 😉

In TGFX 4.12 i did this many times without problems, but since 4.13 and CubeIDE 1.3, some basic "things" seem to be broken.

btw: Timing settings seem to be correct. I tried the "Fade widget" Interaction and it ran quite fine within the specified time (3000ms -> 3 seconds)...

/Charly

7 REPLIES 7
Romain DIELEMAN
ST Employee

Hi,

this is due to the fact that we disable the animation storage. You have to set it up yourself in hardware.

/Romain

Romain DIELEMAN
ST Employee

(I forgot how to do it but I will describe it to you once I find it)

chaaalyy
Senior II

Hi Romain,

thanks for the hint with the disabled animation storage. A few google searches later i found the solution in this document:

https://touchgfx.zendesk.com/hc/en-us/articles/205452611-Animation-storage?mobile_site=true

So i searched for the according functions and found them in TouchGFXGeneratedHAL.cpp. To keep compatibility with the generator i disabled the derived call in TouchGFXHal.cpp and copied the generated call. Then i modified it to get the animation storage working. I (as the dummie, i am...) hope, this was the correct way, to do it... On target it seems to work now.

/Charly

from TouchGFXHal.cpp, generated one is untouched ... I calculated the animation storage adress just on top of the doublebuffer ...

void TouchGFXHAL::initialize()
{
    // Calling parent implementation of initialize().
    //
    // To overwrite the generated implementation, omit call to parent function
    // and implemented needed functionality here.
    // Please note, HAL::initialize() must be called to initialize the framework.
 
    //TouchGFXGeneratedHAL::initialize();
 
    HAL::initialize();
 
    registerEventListener(*(touchgfx::Application::getInstance()));
 
    setFrameBufferStartAddresses((void*)0xC0000000, (void*)0xC005FA00, (void*)0xC00BF400);
    /*
     * Set whether the DMA transfers are locked to the TFT update cycle. If
     * locked, DMA transfer will not begin until the TFT controller has finished
     * updating the display. If not locked, DMA transfers will begin as soon as
     * possible. Default is true (DMA is locked with TFT).
     *
     * Setting to false to increase performance when using double buffering
     */
    lockDMAToFrontPorch(false);
}

chaaalyy
Senior II

What i forgot:

I highly recommend (and request xD) this to be integrated in the generator 😉 Just in TouchGFX Generator / Display : Activation below Framebuffer Strategy and Address would fit fine right below Start Address 2 😉

Hi 🙂
after i searched for my own solution, i found your answers as e-mail (which i didn´t check yesterday xD)
I didn´t try with one transition as cover, but when this worked for the 2nd one as slide (as you wrote…), i´m a little bit confused now xD
I posted the way, i made the slide (on another gui: 1 splashscreen, fading in. After interaction is done, it triggers the slide-transition to screen 2, the slide never worked originally…) in the original post:
https://community.st.com/s/question/0D50X0000CDns0zSQB/interaction-transition-slide-not-working-correctly-on-target
maybe this helps to figure out, what´s going on 🙂
Before i found this, i also tried several f746 discovery boards. They all showed the same behaviour, so it was definitely not limited to a single board. Hardware was working fine 🙂
Hi again 🙂
I was just curious and played around a little bit...
I added a 3rd Screen, just for testing and a button on screen 2 to enter it (with a slide...)
Then i changed the TouchGFXHal.cpp back to original, just to see, if the slides don´t work anymore: Yepp, they don´t...
After that, i tried your approach, to set the transitions to "cover" ...
Ok, the cover-transitions seem to work now as slide, even the directions are correct (VERY strange 😉 ) ...
Changed back the TouchGFXHal.cpp to the codesnippet from my post...
Ouch... NOW the cover still works as slide AND the slide works as slide also ….
NOW i´m really confused xD
Ouch… Update for the update...
I believe, i got mixed up with "cover" and "slide", as they look quite similar. After further testing:
Cover works always correct here (with or without edited TouchGFXHal.cpp)
Slide just works, if i use the altered code with the initializaton of the animation storage...
Time for weekend xD I think, i´m TOO confused atm xD