diff options
Diffstat (limited to 'src/extras')
40 files changed, 95 insertions, 10 deletions
diff --git a/src/extras/3dtext/qextrudedtextgeometry.cpp b/src/extras/3dtext/qextrudedtextgeometry.cpp index b2612755c..1fc1c580f 100644 --- a/src/extras/3dtext/qextrudedtextgeometry.cpp +++ b/src/extras/3dtext/qextrudedtextgeometry.cpp @@ -514,3 +514,5 @@ Qt3DRender::QAttribute *QExtrudedTextGeometry::indexAttribute() const } // Qt3DExtras QT_END_NAMESPACE + +#include "moc_qextrudedtextgeometry.cpp" diff --git a/src/extras/3dtext/qextrudedtextmesh.cpp b/src/extras/3dtext/qextrudedtextmesh.cpp index fc93726d2..d6555b52b 100644 --- a/src/extras/3dtext/qextrudedtextmesh.cpp +++ b/src/extras/3dtext/qextrudedtextmesh.cpp @@ -167,3 +167,5 @@ float QExtrudedTextMesh::depth() const } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qextrudedtextmesh.cpp" diff --git a/src/extras/defaults/qabstractcameracontroller.cpp b/src/extras/defaults/qabstractcameracontroller.cpp index c8ebf42f3..4a0497d11 100644 --- a/src/extras/defaults/qabstractcameracontroller.cpp +++ b/src/extras/defaults/qabstractcameracontroller.cpp @@ -285,7 +285,8 @@ QAbstractCameraController::QAbstractCameraController(QAbstractCameraControllerPr d->init(); QObject::connect(d->m_frameAction, &Qt3DLogic::QFrameAction::triggered, - this, [=] (float dt) { + this, [this] (float dt) { + Q_D(const QAbstractCameraController); InputState state; state.rxAxisValue = d->m_rxAxis->value(); diff --git a/src/extras/defaults/qabstractspritesheet.cpp b/src/extras/defaults/qabstractspritesheet.cpp index 2cf134f7c..d70e924c4 100644 --- a/src/extras/defaults/qabstractspritesheet.cpp +++ b/src/extras/defaults/qabstractspritesheet.cpp @@ -141,3 +141,5 @@ void QAbstractSpriteSheet::setCurrentIndex(int currentIndex) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qabstractspritesheet.cpp" diff --git a/src/extras/defaults/qdiffusemapmaterial.cpp b/src/extras/defaults/qdiffusemapmaterial.cpp index 95ab7e9ac..fc6798f83 100644 --- a/src/extras/defaults/qdiffusemapmaterial.cpp +++ b/src/extras/defaults/qdiffusemapmaterial.cpp @@ -359,3 +359,5 @@ void QDiffuseMapMaterial::setTextureScale(float textureScale) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qdiffusemapmaterial.cpp" diff --git a/src/extras/defaults/qdiffusespecularmapmaterial.cpp b/src/extras/defaults/qdiffusespecularmapmaterial.cpp index 15dcb36bf..b5bb9c352 100644 --- a/src/extras/defaults/qdiffusespecularmapmaterial.cpp +++ b/src/extras/defaults/qdiffusespecularmapmaterial.cpp @@ -378,3 +378,5 @@ void QDiffuseSpecularMapMaterial::setTextureScale(float textureScale) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qdiffusespecularmapmaterial.cpp" diff --git a/src/extras/defaults/qdiffusespecularmaterial.cpp b/src/extras/defaults/qdiffusespecularmaterial.cpp index 2cb4c137c..f5c5929fa 100644 --- a/src/extras/defaults/qdiffusespecularmaterial.cpp +++ b/src/extras/defaults/qdiffusespecularmaterial.cpp @@ -539,3 +539,5 @@ void QDiffuseSpecularMaterial::setAlphaBlendingEnabled(bool enabled) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qdiffusespecularmaterial.cpp" diff --git a/src/extras/defaults/qforwardrenderer.cpp b/src/extras/defaults/qforwardrenderer.cpp index 71d99d84b..42283e88f 100644 --- a/src/extras/defaults/qforwardrenderer.cpp +++ b/src/extras/defaults/qforwardrenderer.cpp @@ -394,3 +394,5 @@ bool QForwardRenderer::showDebugOverlay() const } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qforwardrenderer.cpp" diff --git a/src/extras/defaults/qgoochmaterial.cpp b/src/extras/defaults/qgoochmaterial.cpp index b5665d776..a0088c80a 100644 --- a/src/extras/defaults/qgoochmaterial.cpp +++ b/src/extras/defaults/qgoochmaterial.cpp @@ -377,3 +377,5 @@ void QGoochMaterial::setShininess(float shininess) } QT_END_NAMESPACE + +#include "moc_qgoochmaterial.cpp" diff --git a/src/extras/defaults/qmetalroughmaterial.cpp b/src/extras/defaults/qmetalroughmaterial.cpp index 78e544ead..b2886c749 100644 --- a/src/extras/defaults/qmetalroughmaterial.cpp +++ b/src/extras/defaults/qmetalroughmaterial.cpp @@ -481,3 +481,5 @@ void QMetalRoughMaterial::setTextureScale(float textureScale) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qmetalroughmaterial.cpp" diff --git a/src/extras/defaults/qmorphphongmaterial.cpp b/src/extras/defaults/qmorphphongmaterial.cpp index 8469fc127..583af5ae9 100644 --- a/src/extras/defaults/qmorphphongmaterial.cpp +++ b/src/extras/defaults/qmorphphongmaterial.cpp @@ -330,3 +330,5 @@ void QMorphPhongMaterial::setInterpolator(float interpolator) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qmorphphongmaterial.cpp" diff --git a/src/extras/defaults/qnormaldiffusemapalphamaterial.cpp b/src/extras/defaults/qnormaldiffusemapalphamaterial.cpp index 03b8d8385..1d916ffc1 100644 --- a/src/extras/defaults/qnormaldiffusemapalphamaterial.cpp +++ b/src/extras/defaults/qnormaldiffusemapalphamaterial.cpp @@ -219,3 +219,5 @@ QNormalDiffuseMapAlphaMaterial::~QNormalDiffuseMapAlphaMaterial() } // namespace Qt3DRender QT_END_NAMESPACE + +#include "moc_qnormaldiffusemapalphamaterial.cpp" diff --git a/src/extras/defaults/qnormaldiffusemapmaterial.cpp b/src/extras/defaults/qnormaldiffusemapmaterial.cpp index c4f3e15b2..09f075ed0 100644 --- a/src/extras/defaults/qnormaldiffusemapmaterial.cpp +++ b/src/extras/defaults/qnormaldiffusemapmaterial.cpp @@ -408,3 +408,5 @@ void QNormalDiffuseMapMaterial::setTextureScale(float textureScale) } // namespace Qt3DRender QT_END_NAMESPACE + +#include "moc_qnormaldiffusemapmaterial.cpp" diff --git a/src/extras/defaults/qnormaldiffusespecularmapmaterial.cpp b/src/extras/defaults/qnormaldiffusespecularmapmaterial.cpp index 66586ef18..ff7d77af7 100644 --- a/src/extras/defaults/qnormaldiffusespecularmapmaterial.cpp +++ b/src/extras/defaults/qnormaldiffusespecularmapmaterial.cpp @@ -425,3 +425,5 @@ void QNormalDiffuseSpecularMapMaterial::setTextureScale(float textureScale) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qnormaldiffusespecularmapmaterial.cpp" diff --git a/src/extras/defaults/qpervertexcolormaterial.cpp b/src/extras/defaults/qpervertexcolormaterial.cpp index ef41cbce7..53ea83a7d 100644 --- a/src/extras/defaults/qpervertexcolormaterial.cpp +++ b/src/extras/defaults/qpervertexcolormaterial.cpp @@ -175,3 +175,5 @@ void QPerVertexColorMaterialPrivate::init() } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qpervertexcolormaterial.cpp" diff --git a/src/extras/defaults/qphongalphamaterial.cpp b/src/extras/defaults/qphongalphamaterial.cpp index 8d8464d85..1840cc659 100644 --- a/src/extras/defaults/qphongalphamaterial.cpp +++ b/src/extras/defaults/qphongalphamaterial.cpp @@ -470,3 +470,5 @@ void QPhongAlphaMaterial::setBlendFunctionArg(QBlendEquation::BlendFunction blen } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qphongalphamaterial.cpp" diff --git a/src/extras/defaults/qphongmaterial.cpp b/src/extras/defaults/qphongmaterial.cpp index 460bc9bb2..da044b32a 100644 --- a/src/extras/defaults/qphongmaterial.cpp +++ b/src/extras/defaults/qphongmaterial.cpp @@ -310,3 +310,5 @@ void QPhongMaterial::setShininess(float shininess) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qphongmaterial.cpp" diff --git a/src/extras/defaults/qskyboxentity.cpp b/src/extras/defaults/qskyboxentity.cpp index 8d01e8d82..cf5213295 100644 --- a/src/extras/defaults/qskyboxentity.cpp +++ b/src/extras/defaults/qskyboxentity.cpp @@ -383,3 +383,5 @@ bool QSkyboxEntity::isGammaCorrectEnabled() const \since 5.9 */ QT_END_NAMESPACE + +#include "moc_qskyboxentity.cpp" diff --git a/src/extras/defaults/qspritegrid.cpp b/src/extras/defaults/qspritegrid.cpp index 15016a891..0e4ab20ab 100644 --- a/src/extras/defaults/qspritegrid.cpp +++ b/src/extras/defaults/qspritegrid.cpp @@ -154,3 +154,5 @@ void QSpriteGrid::setColumns(int columns) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qspritegrid.cpp" diff --git a/src/extras/defaults/qspritesheet.cpp b/src/extras/defaults/qspritesheet.cpp index 8eb1e33e6..36fcb1f8d 100644 --- a/src/extras/defaults/qspritesheet.cpp +++ b/src/extras/defaults/qspritesheet.cpp @@ -171,3 +171,5 @@ void QSpriteSheet::setSprites(QVector<QSpriteSheetItem *> sprites) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qspritesheet.cpp" diff --git a/src/extras/defaults/qspritesheetitem.cpp b/src/extras/defaults/qspritesheetitem.cpp index b4e096ae9..e05e41bef 100644 --- a/src/extras/defaults/qspritesheetitem.cpp +++ b/src/extras/defaults/qspritesheetitem.cpp @@ -125,3 +125,5 @@ void QSpriteSheetItem::setHeight(int height) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qspritesheetitem.cpp" diff --git a/src/extras/defaults/qt3dwindow.cpp b/src/extras/defaults/qt3dwindow.cpp index 18ee6a730..aab919f0f 100644 --- a/src/extras/defaults/qt3dwindow.cpp +++ b/src/extras/defaults/qt3dwindow.cpp @@ -319,3 +319,5 @@ void setupWindowSurface(QWindow *window, Qt3DRender::API api) noexcept } // Qt3DExtras QT_END_NAMESPACE + +#include "moc_qt3dwindow.cpp" diff --git a/src/extras/defaults/qtexturematerial.cpp b/src/extras/defaults/qtexturematerial.cpp index dca45fded..436c2a0fb 100644 --- a/src/extras/defaults/qtexturematerial.cpp +++ b/src/extras/defaults/qtexturematerial.cpp @@ -285,3 +285,5 @@ void QTextureMaterial::setAlphaBlendingEnabled(bool enabled) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qtexturematerial.cpp" diff --git a/src/extras/geometries/qconegeometry.cpp b/src/extras/geometries/qconegeometry.cpp index 2cf526142..62f05d45c 100644 --- a/src/extras/geometries/qconegeometry.cpp +++ b/src/extras/geometries/qconegeometry.cpp @@ -755,3 +755,5 @@ QAttribute *QConeGeometry::indexAttribute() const } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qconegeometry.cpp" diff --git a/src/extras/geometries/qconemesh.cpp b/src/extras/geometries/qconemesh.cpp index a0d1bd310..bcaa28467 100644 --- a/src/extras/geometries/qconemesh.cpp +++ b/src/extras/geometries/qconemesh.cpp @@ -243,3 +243,5 @@ float QConeMesh::length() const } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qconemesh.cpp" diff --git a/src/extras/geometries/qcuboidgeometry.cpp b/src/extras/geometries/qcuboidgeometry.cpp index f9efaaf9d..6b4f30e24 100644 --- a/src/extras/geometries/qcuboidgeometry.cpp +++ b/src/extras/geometries/qcuboidgeometry.cpp @@ -916,3 +916,5 @@ QAttribute *QCuboidGeometry::indexAttribute() const } // Qt3DExtras QT_END_NAMESPACE + +#include "moc_qcuboidgeometry.cpp" diff --git a/src/extras/geometries/qcuboidmesh.cpp b/src/extras/geometries/qcuboidmesh.cpp index bdad566fc..166f3ee6d 100644 --- a/src/extras/geometries/qcuboidmesh.cpp +++ b/src/extras/geometries/qcuboidmesh.cpp @@ -225,3 +225,5 @@ QSize QCuboidMesh::xyMeshResolution() const } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qcuboidmesh.cpp" diff --git a/src/extras/geometries/qcylindergeometry.cpp b/src/extras/geometries/qcylindergeometry.cpp index 9d26068f2..7512c5707 100644 --- a/src/extras/geometries/qcylindergeometry.cpp +++ b/src/extras/geometries/qcylindergeometry.cpp @@ -607,3 +607,5 @@ QAttribute *QCylinderGeometry::indexAttribute() const } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qcylindergeometry.cpp" diff --git a/src/extras/geometries/qcylindermesh.cpp b/src/extras/geometries/qcylindermesh.cpp index 792944cd5..50ca42555 100644 --- a/src/extras/geometries/qcylindermesh.cpp +++ b/src/extras/geometries/qcylindermesh.cpp @@ -183,3 +183,5 @@ float QCylinderMesh::length() const } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qcylindermesh.cpp" diff --git a/src/extras/geometries/qplanegeometry.cpp b/src/extras/geometries/qplanegeometry.cpp index 7c77f5028..1df9e9601 100644 --- a/src/extras/geometries/qplanegeometry.cpp +++ b/src/extras/geometries/qplanegeometry.cpp @@ -573,3 +573,5 @@ void QPlaneGeometryPrivate::init() } // Qt3DExtras QT_END_NAMESPACE + +#include "moc_qplanegeometry.cpp" diff --git a/src/extras/geometries/qplanemesh.cpp b/src/extras/geometries/qplanemesh.cpp index 223e5a628..d34bb4aff 100644 --- a/src/extras/geometries/qplanemesh.cpp +++ b/src/extras/geometries/qplanemesh.cpp @@ -175,3 +175,5 @@ bool QPlaneMesh::mirrored() const } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qplanemesh.cpp" diff --git a/src/extras/geometries/qspheregeometry.cpp b/src/extras/geometries/qspheregeometry.cpp index f5ec6bec2..391c00965 100644 --- a/src/extras/geometries/qspheregeometry.cpp +++ b/src/extras/geometries/qspheregeometry.cpp @@ -596,3 +596,5 @@ QAttribute *QSphereGeometry::indexAttribute() const QT_END_NAMESPACE +#include "moc_qspheregeometry.cpp" + diff --git a/src/extras/geometries/qspheremesh.cpp b/src/extras/geometries/qspheremesh.cpp index 28854fe29..4d74b2582 100644 --- a/src/extras/geometries/qspheremesh.cpp +++ b/src/extras/geometries/qspheremesh.cpp @@ -172,3 +172,5 @@ float QSphereMesh::radius() const } // Qt3DExtras QT_END_NAMESPACE + +#include "moc_qspheremesh.cpp" diff --git a/src/extras/geometries/qtorusgeometry.cpp b/src/extras/geometries/qtorusgeometry.cpp index 98707b03c..44cced67f 100644 --- a/src/extras/geometries/qtorusgeometry.cpp +++ b/src/extras/geometries/qtorusgeometry.cpp @@ -558,3 +558,5 @@ QAttribute *QTorusGeometry::indexAttribute() const } // Qt3DExtras QT_END_NAMESPACE + +#include "moc_qtorusgeometry.cpp" diff --git a/src/extras/geometries/qtorusmesh.cpp b/src/extras/geometries/qtorusmesh.cpp index fd10afc1e..c09970bb1 100644 --- a/src/extras/geometries/qtorusmesh.cpp +++ b/src/extras/geometries/qtorusmesh.cpp @@ -175,3 +175,5 @@ float QTorusMesh::minorRadius() const } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qtorusmesh.cpp" diff --git a/src/extras/text/distancefieldtextrenderer.cpp b/src/extras/text/distancefieldtextrenderer.cpp index 4cf9c0b4a..6a6032b30 100644 --- a/src/extras/text/distancefieldtextrenderer.cpp +++ b/src/extras/text/distancefieldtextrenderer.cpp @@ -154,3 +154,5 @@ void DistanceFieldTextRenderer::setColor(const QColor &color) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_distancefieldtextrenderer_p.cpp" diff --git a/src/extras/text/qdistancefieldglyphcache.cpp b/src/extras/text/qdistancefieldglyphcache.cpp index 66d2c0495..65db1089b 100644 --- a/src/extras/text/qdistancefieldglyphcache.cpp +++ b/src/extras/text/qdistancefieldglyphcache.cpp @@ -161,6 +161,7 @@ DistanceFieldFont::DistanceFieldFont(const QRawFont &font, bool doubleRes, Qt3DC , m_doubleGlyphResolution(doubleRes) , m_parentNode(parent) { + Q_ASSERT(m_parentNode); } DistanceFieldFont::~DistanceFieldFont() @@ -197,13 +198,14 @@ StoredGlyph DistanceFieldFont::refGlyph(quint32 glyph) // scenarios const int size = m_doubleGlyphResolution ? 512 : 256; - QTextureAtlas *atlas = new QTextureAtlas(m_parentNode); + QTextureAtlas *atlas = new QTextureAtlas(); atlas->setWidth(size); atlas->setHeight(size); atlas->setFormat(Qt3DRender::QAbstractTexture::R8_UNorm); atlas->setPixelFormat(QOpenGLTexture::Red); atlas->setMinificationFilter(Qt3DRender::QAbstractTexture::Linear); atlas->setMagnificationFilter(Qt3DRender::QAbstractTexture::Linear); + atlas->setParent(m_parentNode); m_atlasses << atlas; if (!storedGlyph.addToTextureAtlas(atlas)) @@ -236,7 +238,12 @@ void DistanceFieldFont::derefGlyph(quint32 glyph) Q_ASSERT(m_atlasses.contains(atlas)); m_atlasses.removeAll(atlas); - delete atlas; + + // This function might have been called as a result of destroying + // the scene root which traverses the entire scene tree. Calling + // delete on the atlas here could lead to dangling pointers in the + // least of children being traversed for destruction. + atlas->deleteLater(); } m_glyphs.erase(it); @@ -287,7 +294,8 @@ DistanceFieldFont* QDistanceFieldGlyphCache::getOrCreateDistanceFieldFont(const // create new font cache // we set the parent node to nullptr, since the parent node of QTextureAtlasses // will be set when we pass them to QText2DMaterial later - DistanceFieldFont *dff = new DistanceFieldFont(actualFont, useDoubleRes, nullptr); + Q_ASSERT(m_rootNode); + DistanceFieldFont *dff = new DistanceFieldFont(actualFont, useDoubleRes, m_rootNode); m_fonts.insert(key, dff); return dff; } @@ -324,11 +332,10 @@ QDistanceFieldGlyphCache::Glyph refAndGetGlyph(DistanceFieldFont *dff, quint32 g if (dff) { const auto entry = dff->refGlyph(glyph); - if (entry.atlas()) { - ret.glyphPathBoundingRect = entry.glyphPathBoundingRect(); - ret.texCoords = entry.texCoords(); - ret.texture = entry.atlas(); - } + Q_ASSERT(entry.atlas()); + ret.glyphPathBoundingRect = entry.glyphPathBoundingRect(); + ret.texCoords = entry.texCoords(); + ret.texture = entry.atlas(); } return ret; diff --git a/src/extras/text/qtext2dentity.cpp b/src/extras/text/qtext2dentity.cpp index 897672782..dba4f8ac8 100644 --- a/src/extras/text/qtext2dentity.cpp +++ b/src/extras/text/qtext2dentity.cpp @@ -304,8 +304,9 @@ void QText2DEntityPrivate::setCurrentGlyphRuns(const QVector<QGlyphRun> &runs) delete m_renderers.takeLast(); while (m_renderers.size() < renderData.size()) { - DistanceFieldTextRenderer *renderer = new DistanceFieldTextRenderer(q_func()); + DistanceFieldTextRenderer *renderer = new DistanceFieldTextRenderer(); renderer->setColor(m_color); + renderer->setParent(q_func()); m_renderers << renderer; } @@ -485,3 +486,5 @@ void QText2DEntity::setHeight(float height) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qtext2dentity.cpp" diff --git a/src/extras/text/qtext2dmaterial.cpp b/src/extras/text/qtext2dmaterial.cpp index d8bf312c4..bbf24a4c4 100644 --- a/src/extras/text/qtext2dmaterial.cpp +++ b/src/extras/text/qtext2dmaterial.cpp @@ -177,3 +177,5 @@ void QText2DMaterial::setDistanceFieldTexture(Qt3DRender::QAbstractTexture *tex) } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qtext2dmaterial_p.cpp" diff --git a/src/extras/text/qtextureatlas.cpp b/src/extras/text/qtextureatlas.cpp index 4ab992224..b654a30e0 100644 --- a/src/extras/text/qtextureatlas.cpp +++ b/src/extras/text/qtextureatlas.cpp @@ -297,3 +297,5 @@ int QTextureAtlas::imagePadding(TextureId id) const } // namespace Qt3DExtras QT_END_NAMESPACE + +#include "moc_qtextureatlas_p.cpp" |