Refresh flashing how to avoid ?

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Refresh flashing how to avoid ?

      A1B1
      A2B2
      A3B3
      A4B4
      A5B5


      Our machine GUI uses emwin, and the whole window background window is the parent window
      The coordinates are A(A1-A5) and B on the right
      It's all use Framewin.
      Between A1 and A6, there is a gap of 1 pixel, so that there is naturally a background color as a dividing line

      Now there's a pop-up window, and when it opens, it's the part that covers A(A1-A5).
      Issue:
      When you close this large window, you can see the process of closing the window.
      And it feels like the background, a few Framewin refreshes cut the large window into several parts



      In the refresh of the main window, I will draw the background color the size of the A+B real screen (because the pop-up window will have residues)

      emwin5.48 version

      I can not use NUM_BUFFERS because of driver not ok

      if i remove A1-A5, no flashing

      The post was edited 2 times, last by hpxzw520 ().

    • Hi,

      What you are describing sounds like flickering, which is normal behavior when the display is updated frequently and there is no multi buffering or display cache enabled.

      Which display driver are you using? Some drivers support a caching mode that reduces the flickering.

      Alternatively, there is also caching handled by the window manager based on memory devices. This can be enabled by calling WM_SetCreateFlags(WM_CF_MEMDEV) after GUI_Init() and before creating any windows.

      Best regards,
      Florian
      Please read the forum rules before posting.

      Keep in mind, this is *not* a support forum.
      Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
      Should you be entitled to support you can contact us via our support system: segger.com/ticket/

      Or you can contact us via e-mail.