diff options
-rw-r--r-- | examples/qt3d/scene3d/AnimatedEntity.qml | 1 | ||||
-rw-r--r-- | examples/qt3d/scene3d/CMakeLists.txt | 1 | ||||
-rw-r--r-- | examples/qt3d/scene3d/main.cpp | 1 | ||||
-rw-r--r-- | src/quick3d/imports/scene3d/scene3ditem.cpp | 4 |
4 files changed, 6 insertions, 1 deletions
diff --git a/examples/qt3d/scene3d/AnimatedEntity.qml b/examples/qt3d/scene3d/AnimatedEntity.qml index 02e1148e2..4c7f700cf 100644 --- a/examples/qt3d/scene3d/AnimatedEntity.qml +++ b/examples/qt3d/scene3d/AnimatedEntity.qml @@ -115,6 +115,7 @@ Entity { SphereMesh { id: sphereMesh radius: 3 + generateTangents: true } Transform { diff --git a/examples/qt3d/scene3d/CMakeLists.txt b/examples/qt3d/scene3d/CMakeLists.txt index 675bb53b1..9efb25713 100644 --- a/examples/qt3d/scene3d/CMakeLists.txt +++ b/examples/qt3d/scene3d/CMakeLists.txt @@ -40,6 +40,7 @@ qt6_add_resources(scene3d "scene3d" FILES ${scene3d_resource_files} ) +target_sources(scene3d PRIVATE ${scene3d_resource_files}) install(TARGETS scene3d RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" diff --git a/examples/qt3d/scene3d/main.cpp b/examples/qt3d/scene3d/main.cpp index 11d07c024..f4f01a7ea 100644 --- a/examples/qt3d/scene3d/main.cpp +++ b/examples/qt3d/scene3d/main.cpp @@ -70,7 +70,6 @@ int main(int argc, char **argv) QGuiApplication app(argc, argv); // Force OpenGL backend - QQuickWindow::setGraphicsApi(QSGRendererInterface::OpenGLRhi); QQuickView view; view.resize(1024, 768); diff --git a/src/quick3d/imports/scene3d/scene3ditem.cpp b/src/quick3d/imports/scene3d/scene3ditem.cpp index 1932cd155..3bafcf3ce 100644 --- a/src/quick3d/imports/scene3d/scene3ditem.cpp +++ b/src/quick3d/imports/scene3d/scene3ditem.cpp @@ -717,6 +717,10 @@ QSGNode *Scene3DItem::updatePaintNode(QSGNode *node, QQuickItem::UpdatePaintNode // If the render aspect wasn't created yet, do so now if (m_renderAspect == nullptr) { m_renderAspect = new QRenderAspect(QRenderAspect::Manual); + QSGRendererInterface::GraphicsApi windowApi = window()->rendererInterface()->graphicsApi(); + // Requested API of OpenGLRhi implies OpenGL renderer + if (windowApi != QSGRendererInterface::OpenGLRhi && qgetenv("QT3D_RENDERER").isEmpty()) + qputenv("QT3D_RENDERER", "rhi"); // else Qt3D still defaults to OpenGL auto *rw = QQuickRenderControl::renderWindowFor(window()); static_cast<Qt3DRender::QRenderAspectPrivate *>(Qt3DRender::QRenderAspectPrivate::get(m_renderAspect))->m_screen = (rw ? rw->screen() : window()->screen()); |