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

Vistastyle paints invalid pixel data in backing store

    XMLWordPrintable

Details

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

    Description

      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.

      Attachments

        1. qtbug60562_log.txt
          6 kB
        2. qtbug60571_diag.diff
          5 kB
        3. qtbug60571.zip
          2 kB

        Issue Links

          For Gerrit Dashboard: QTBUG-60571
          # Subject Branch Project Status CR V

          Activity

            People

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

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There is 1 open Gerrit change