Skip to main content
Lvan .2
Associate
November 4, 2021
Question

Why does TouchGFX invalidate immediately issue draw?

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:

0693W00000GWU71QAH.png 

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?

This topic has been closed for replies.