ā2020-03-04 01:09 PM
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
ā2020-03-05 05:42 AM
Hi,
this is due to the fact that we disable the animation storage. You have to set it up yourself in hardware.
/Romain
ā2020-03-05 05:42 AM
(I forgot how to do it but I will describe it to you once I find it)
ā2020-03-05 11:40 AM
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);
}
ā2020-03-05 12:02 PM
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 ;)
ā2020-03-06 12:14 AM
ā2020-03-06 01:20 AM
ā2020-03-06 01:40 AM