Skip to main content
chaaalyy
Senior II
March 4, 2020
Question

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

  • March 4, 2020
  • 7 replies
  • 2387 views

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

This topic has been closed for replies.

7 replies

Romain DIELEMAN
ST Employee
March 5, 2020

Hi,

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

/Romain

chaaalyy
chaaalyyAuthor
Senior II
March 6, 2020
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 :)
Romain DIELEMAN
ST Employee
March 5, 2020

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

chaaalyy
chaaalyyAuthor
Senior II
March 5, 2020

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
chaaalyyAuthor
Senior II
March 5, 2020

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