2021-11-04 08:08 AM
According to the documentation, widgets are only redrawn once in the 'render' phase:
https://support.touchgfx.com/docs/basic-concepts/rendering#render
However, when I call `invalidate` on a widget from a function that is not the `tick`, it is immediately redrawn, as can be seen in the following stack trace:
I would say this is not according to what the documentation mentions. It can be a major inefficiency in the framework, as multiple calls to invalidate now also call `flushFrameBuffer` multiple times, which in turn updates the screen at an irregular frequency. Furthermore, it poses a major problem to our GUI, as it now accesses the external resources at an irregular interval. Note that this only happens when we call `invalidate` from outside the `tick`.
Is it possible to correctly implement this in the TouchGFX framework, such that a call to `invalidate` from outside the `tick` does not immediately result in `draw`, but instead is deferred to the `render` phase as documented?