Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-60571

Vistastyle paints invalid pixel data in backing store

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P2: Important P2: Important
    • None
    • 5.9.0 Beta 4
    • None
    • b04b4ae4f618257a01132699df9858cd903f8c87 (qtbase/dev, 6.6.2017, 5.10)

      As revealed by QTBUG-60562, the windows vista style paints invalid background pixels into the backing store. This appears to be because QWindowsXPStylePrivate::drawBackgroundDirectly (src\widgets\styles\qwindowsxpstyle.cpp:707) does not correct the alpha values like QWindowsXPStylePrivate::drawBackgroundThruNativeBuffer does. So we end up with a whtle background fill with alpha set to 0, which is invalid in premultiplied data.

      Forcing canDrawDirectly to 'false' in QWindowsXPStylePrivate::drawBackground solves the issue by always using drawBackgroundThruNativeBuffer, but probably has a performance cost.

        1. qtbug60571_diag.diff
          5 kB
        2. qtbug60562_log.txt
          6 kB
        3. qtbug60571.zip
          2 kB
        For Gerrit Dashboard: QTBUG-60571
        # Subject Branch Project Status CR V

            kleint Friedemann Kleint
            allan.jensen Allan Sandfeld Jensen
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:

                There is 1 open Gerrit change