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

Something is rotten with texture-based widgets that are native child widgets or are children of a native child widget

    XMLWordPrintable

Details

    • 244daf4cfc (qt/qtbase/dev) 244daf4cfc (qt/tqtc-qtbase/dev) d58ac206a8 (qt/qtbase/6.4) d58ac206a8 (qt/tqtc-qtbase/6.4), 373c08d03 (dev), 56079c1a4 (6.5), 3e09f3abb (6.6)

    Description

      Turning a QOpenGLWidget or QQuickWidget into a native child widget - or adding one under a widget that is turned native (winId / WA_NativeWindow) - has problems, most likely since Qt 6.4.

      If the winId() call or setting WA_NativeWindow happens early on, before showing the top-level, the texture-based widget will not render (because the backingstore never even sees its texture for some reason?).

      Doing the same later on, e.g. calling winId() or setting WA_NativeWindow after show(), things render as expected. The behavior was different with 5.15 and with 6.2, those tend to work either way.

      Test application attached. (ripped out of a modified tst_qopenglwidget autotest; it is worth noting that there is a nativeWindow case in that test which is supposed to exercise this, but it doesn't exactly test what it was meant to, and so that cannot catch this problem. It should be fixed up too.)

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              lagocs Laszlo Agocs
              lagocs Laszlo Agocs
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: