Jump to content
emeb

Visible tearing / flicker during gdispFillString()

Recommended Posts

My application updates several text fields on an ILI9341 display which is interfaced via a SPI port. When using the gdispGFillString() routine to overwrite a new text string on the display there is a noticeable tearing / flicker visible on the display. Looking at the underlying code for the gdispFillString() function it appears that the screen region is first cleared to the background color, then the text is rendered in the foreground color, so the time interval between the clear and render is what's causing the visible flicker.

Is there an alternative way for me to update text on the display that would operate in a single pass? In other graphics libraries I've used off-screen buffers for this, but for uGFX that would mean pixmaps which as I understand it are not available for me because I'm using single-file include.

Share this post


Link to post
Share on other sites

Unfortunately there are only two mechanisms, off-screen drawing (pixmaps) and double buffering. Double buffering is a big nasty topic in its own right - search the forum for some of the discussions on that subject. It is probably also not viable for you given your controller and bus interface.

As far as pixmaps are concerned v3.0 will fix the incompatibility with single file make. The filled string drawing algorithm will be updated at some time in the future too but that is not a simple task as their are lots of complexities with fonts.

Share this post


Link to post
Share on other sites
15 hours ago, emeb said:

Is there an alternative way for me to update text on the display that would operate in a single pass? In other graphics libraries I've used off-screen buffers for this, but for uGFX that would mean pixmaps which as I understand it are not available for me because I'm using single-file include.

Yep, that's correct: Pixmaps are meant to be used for this.
Single-file inclusion is just a method designed to be as comfortable as possible. You can always include the µGFX library sources the classical way. It's just a bit more work. But now that you already know µGFX a bit it should be fairly simple :) 

Share this post


Link to post
Share on other sites

OK. Looks like the best solution is to get pixmaps working, which means figuring out how to get the Xilinx Eclipse-based XSDK to build uGFX in the "classical way".

Thanks.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×