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

metaObject()->className() returns generic Quick3DEntity instead of Qt3DCore::QCamera or Qt3DCore::QTransform entities

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 6.4.0
    • Qt3D
    • None
    • macOS

    Description

      Given the few changes in Qt3D between 6.3.2 and 6.4.0 I suspect a change in the meta-object system to have caused this. Therefore I had to guess a bit with the component.

      Squish traverses the Qt object hierarchy from the Scene3D QtQuick item downwards into the 3D scene graph. The scene graph is built in QML for this tester app. When Squish asks the scene root (Scene3D::entity) for its children, I would expect it to get a list of QEntity instances or more specialized classes such as Qt3DCore::QCamera.

      From Qt 6.4 on, the child objects however have Qt3DCore::Quick::Quick3DEntity as their metaObject()->className(). That type seems to inherit from QEntity, however it doesn't seem to properly upcast to a QCamera for example.

      In Qt 6.3 and below, Squish used to at least get the correct information for a QCamera or QTransform entity from the meta object.

      I remember from the last time I worked with Qt3D that the Quick3DEntity/Quick3DNode classes do not inherit from QEntity/QNode in C++ terms, but the meta objects are parented together at runtime. This (maybe) also led to property IDs not being monotonic from parent to child classes, e.g. the ranges overlap for everything more specific than QEntity. (I'm going to file a separate ticket for that.)

      Please feel free to reach out for details, I struggle to reproduce the problem in simpler terms because I just don't understand where the chain starts...

      Attachments

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

        Activity

          People

            seanharmer Sean Harmer
            makummer Marcel Kummer
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes