| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Input parameter shader was not checked for null before being dereferenced. Added check for null to avoid this.
Task-number: QTBUG-100568
Change-Id: I568b97169320ea4504955467fdf12584f5320a06
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit cb0751cdd983da7b93457ff15d0e0a0c19646e0a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the workaround of QTBUG-86533. The Qt6::Concurrent target
needs to be added to the
IMPORTED_LINK_DEPENDENT_LIBRARIES_RELWITHDEBINFO property of the
exported Qt::3DCore target. This doesn't happen bacause
Qt6::Concurrent is INTERFACE_LIBK_LIBRARY propagted by versionless
Qt::Concurrent target. Qt::3DCore links Qt::Concurrent only and due
to the issue in CMake, CMake skips adding Qt6::Concurrent to the
IMPORTED_LINK_DEPENDENT_LIBRARIES_RELWITHDEBINFO list.
The workaround propagates the Qt::Concurrent to the Qt::3DCore
consumers explixitly as the interface link library.
Change-Id: I5ecbc1c9c695bd2ce6022f123ff1496cce3ff32a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit c11447185bcfd33d9edbc9508d6de066c62c3e60)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pugixml is configured as header-only library by default. We must not
compile pugixml.cpp.
The qmake project file listed pugixml.cpp as source file, but it was not
compiled, because qmake automatically detected that pugixml.cpp is
included by pugixml.hpp. CMake does not have this automatism.
Pick-to: 6.2
Fixes: QTBUG-97254
Change-Id: Ibaf434f326d42e2fdea79f359cc625338644ce4d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using a QQuickWidget and Qt3D, on shutdown and assert occurs.
This is the result of the QQuickWidget expecting the surface on the context
to be its own internal surface after the QQuickRenderControl has been
invalidated.
This conflict with what Qt3D does on shutdown as it makes the context current
on its own internal offscreen surface on shutdown.
Therefore, to fix this issue, we record the surface in use before Qt3D shuts
down and we make the context current on it after Qt3D has shutdown.
Arguably, the fix should really go in QQuickWidgetPrivate::invalidateRenderControl
where the QQuickWidget should check that the current surface is indeed the one
it expects and set it accordingly.
Change-Id: I534dc330a30a2ad5d17a6416715d03206ef4b1c9
Pick-to: 6.2 5.15
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Turns out we want the global clip duration and not the relative clip duration.
Therefore global clip duration is always computed from 0. If the first keyframe
is offset, then this means animation does nothing until t=offset.
This reverts commit 7b23cb1ca5b32fcf24f889e79cec756786f86233.
Pick-to: 6.2 5.15
Change-Id: Ic045a3cdea5eac4b8e35b75737e3ae6f00b9fa20
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The command-pair was recently deprecated.
The replacement code should produce an output that is equal to the
previous one.
Task-number: QTBUG-98499
Change-Id: I31a7cf8cb29e76dd73b676039b87c108af1bd1af
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When changing a Parameter whose value is a texture, it takes Qt3D potentially
two frames to process the scene fully before it is able to draw the updated
content.
This patch makes it so that if we know we have the flags ParametersDirty for
frame N, we request to reprocess the scene once more on frame N+1.
Change-Id: I9df868ce2aac857bad1a1cb1074038b9c5bcd907
Pick-to: 6.2
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When changing a Parameter whose value is a texture, it takes Qt3D potentially
two frames to process the scene fully before it is able to draw the updated
content.
This patch makes it so that if we know we have the flags ParametersDirty for
frame N, we request to reprocess the scene once more on frame N+1.
Change-Id: Ia635e324434f92f8423a68b72d99350d96830de6
Pick-to: 6.2 5.15
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
We wrongly assumed the start time of a clip was always 0. In practice this
might not be the case. Therefore, we now compute duration as tEnd - tStart.
Change-Id: I13ca860f3366c2aba5e978cb0c955e7bb2e7bc39
Pick-to: 6.2 5.15
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
This is now required to use QObjectPrivate::connect.
Change-Id: Iccb47e5527544b6fbd75fffd16b8bd87f0818ad5
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Cargo-culted from somewhere but not used in any of these classes. This
just made the code bigger for no reason.
Task-number: QTBUG-97950
Pick-to: 6.2
Change-Id: Ice04365c72984d07a64dfffd16b48632888ed664
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Fix warnings like
warning C4267: 'argument': conversion from 'size_t' to 'const int', possible loss of data
Pick-to: 6.2
Change-Id: Ibfe45493a6627af6cedd0afa536d892ebd8be0e8
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
That's too clever, and it backfires with compilation errors in C++20
mode:
qt3d/tests/auto/render/meshfunctors/tst_meshfunctors.cpp:129:29: error: ambiguous overload for ‘operator==’ (operand types are ‘MeshFunctorA’ and ‘MeshFunctorB’)
129 | QVERIFY(!(*functorA == *functorB));
| ~~~~~~~~~ ^~ ~~~~~~~~~
| | |
| MeshFunctorA MeshFunctorB
qt3d/tests/auto/render/meshfunctors/tst_meshfunctors.cpp:72:10: note: candidate: ‘virtual bool MeshFunctorB::operator==(const Qt3DCore::QGeometryFactory&) const’ (reversed)
72 | bool operator ==(const Qt3DCore::QGeometryFactory &other) const override
| ^~~~~~~~
qt3d/tests/auto/render/meshfunctors/tst_meshfunctors.cpp:50:10: note: candidate: ‘virtual bool MeshFunctorA::operator==(const Qt3DCore::QGeometryFactory&) const’
50 | bool operator ==(const Qt3DCore::QGeometryFactory &other) const override
| ^~~~~~~~
Fix by providing a symmetric operator== for QGeometryFactory that
delegates to a virtual equals() method.
Pick-to: 6.2 5.15
Change-Id: I23d29ad1b16075629132f2b4757c5810d5615a36
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Historical copy/paste error, now correct.
Task-number: QTBUG-98097
Pick-to: 6.2
Change-Id: I2152fa8d974f26e2aa9e7e3d560a1e8270e7aaf1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
This reverts commit 1286bd5bf4348b52ec431be0c37197da9506df6e.
Reason for revert: this change was binary-incompatible.
Change-Id: Ic39284d5f8282ad4b175063220696ab60031c732
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using Manual run mode on a QComputeCommand, we rely on the enabled
property changing to enable/disable the backend ComputeCommand for a given
set of frames.
Since we weren't setting any dirty flag when the enabled property changed,
Qt 3D was not rebuilding the list of active compute commands but rather
using the one stored in its cache. This resulted in the ComputeCommand, now
disabled, to still be called for execution until something else triggered
a command rebuild.
The renderer calls ComputeDirty after it has executed a compute call.
This explains why eventually we only had 2 calls (and not a perpetual loop)
when calling trigger(1). One was the valid call, followed by the invalid one
(and then the command list got rebuilt because of the ComputeDirty flag set by
the renderer).
Task-number: QTBUG-86493
Change-Id: I7b31606a03609dc13294256b1dac89ee86730ba1
Pick-to: 6.2 5.15
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Otherwise we would simply change it internally but this wouldn't lead
to any actual changes in how we handle pick events.
Change-Id: I71aedc74db538978a939620d053af3167fd67dc4
Pick-to: 6.2 5.15
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Make the conversion from QList<Type>::const_iterator to Type* pointer
explicit; since qtbase commit 0220484329029fc75, QList doesn't support
the implicit conversion anymore.
Fixes: QTBUG-97708
Change-Id: Ief96263871c5fd1179bf625d1c3d1c31c5def1c8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
| |
This manifests on android developer builds, where the build of qt3d failed because of this.
Change-Id: Ic3bce6880b0d73f03bb2e27db278edd2981b061e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I950b2d2fe2e749e3e4bf752f78cb57b7a2cbaeab
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Otherwise, if a backend node with a loop counter larger than 1 is reused
for a non-looping animation, the animation won't get played.
Pick-to: 6.2
Change-Id: I5b043b9c844bba9b04edc5db383bdf0e3b92fe87
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
customFilters defined in .qdocconf are not supported anymore by Qt
Assistant since Qt 5.13. Therefore remove them from all .qdocconf files,
also to avoid cargo-culting them to new help modules.
Task-number: QTBUG-95987
Change-Id: Id1e91a54ba2774ad8b671a851ffc3c3064c9cbbe
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
| |
qraycasterhit.cpp:54:5: warning: base class ‘class QSharedData’ should be explicitly initialized in the copy constructor [-Wextra]
Change-Id: Ie72b0dd0fbe84d2caae0fffd16a0705840f195e5
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-95170
Pick-to: 6.2
Change-Id: I0dbbca4cd7f50af9b4aa192a05514f28b6f9658b
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Replace outdated LGPL3 with LGPL header in src, and
GPL3-EXCEPT in tests.
Task-number: QTBUG-90321
Pick-to: 6.2
Change-Id: I3f6491cb402a993a4341a983c780337e8658c256
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This fixes picking for cases where multiple LayerFilters using different
filter modes are present in the FrameGraph. This also reduces code
duplication.
Pick-to: 6.2 6.1 5.15
Change-Id: I19d0c2c5777930820ab950cbf2bfe08ef7d2484f
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Amends ffccff03f347b971395cb212889921506d4a36f3
Pick-to: 6.2
Task-number: QTBUG-90819
Change-Id: Ic2cad9e60ecc73cf192fe5aadf770656fd9ed318
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Since rhi render plugin is not built by default, ensure
we look for the OpenGL backend if QT3D_RENDERER is not set.
Tests might fail otherwise.
Pick-to: 6.2 6.1
Change-Id: I3bc268df9e29fb8fa28d0f424e56535db7bc9c57
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Public modules shouldn't propagate private modules as usage
requirements.
Pick-to: 6.2
Fixes: QTBUG-93428
Change-Id: Ic7aca0e8a6469604722596782e87d92d7e510e9e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AllDirty would force a lot of recomputations that aren't needed.
When the CameraLens changes the only things we need to do are:
- update projection matrix in the shader and the frustum culling
Those things are performed in the RenderCommand update stage which
is triggered with ParametersDirty
Change-Id: I27241f3ec323182b19fca7e5528d851680eeec8c
Pick-to: 6.2 5.15
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The rule selection still has to be made from last added rule to first
so that format.support works correctly.
- Update QShaderNode unit tests
Pick-to: 6.2 6.1 5.15
Change-Id: I47af898ee0d82e91009efccf1dca9937feaca717
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Plugins are not intended to be linked to. They should not have any
public properties.
Pick-to: 6.2
Task-number: QTBUG-90819
Change-Id: I2cc166c2b406ea0f416cbb117cbf8181cd173e8d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
RHI renderer use ShaderTools which is GPL licensed. This patch
disables the plugin by default until Qt3D provides a suitable
replacement for the dependency.
To enable the RHI backend, compile Qt3D and pass parameter
-DFEATURE_qt3d_rhi_renderer=ON to cmake.
Unfortunate side effect of RHI backend being disabled is that
when using Scene3D, the QtQuick renderer must be configured to
use the opengl backend.
[ChangeLog] RHI Backend is not longer built by default
Task-number: QTBUG-94960
Pick-to: 6.1 6.2
Change-Id: I0bff7523e159b800734b58bfef37e5088d0a0d41
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Make sure Metal shaders get generated on iOS as well as macOS.
Task-number: QTBUG-95130
Pick-to: 6.1 6.2
Change-Id: I38276405bfa58fcac1f09b9928fe5b4aa7cabe58
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
Pick-to: 6.2 6.1
Task-number: QTBUG-93035
Change-Id: I7157783e195b274001e81662e7e3929c32fbc8a1
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Otherwise, this results in the bounding volume being out of sync with
entities (an entity initially disabled that gets enabled would have an
empty bounding volume) until some other events in the scene triggers a
rebuild.
Pick-to: 6.2 6.1 5.15
Task-number: QTBUG-93035
Change-Id: Ia21eec0eb5601169e1789321080803a5aed12e82
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, bounding computation results from the core aspect were
propagated to the render aspect via the front end objects.
This introduces a job watcher which gets called with the results
and the render aspect can update it's backend data directly.
The watcher process method is called in the thread of the core
aspect job but the render aspect job will wait for that complete
anyway (since it depends on the core aspect job).
Pick-to: 6.1 6.2
Change-Id: Ie59337f00025fd55fc723a7d105342e0b1e91d6c
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
In b9994cd88925ca012d66e52d033cc9a3a909fc7a, we removed the tool and the parser.
This restores the parser, but the tool was unmaintained.
Pick-to: 6.1 6.2
Change-Id: I168e720b7fdf65aafebb9652933d8093f5449bdc
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
| |
Pick-to: 6.1 6.2
Change-Id: If9c4c17879fd99923cce096a21edb939ae5de1b9
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using Scene3DView, qt3d still has a single scene graph and and a
single framegraph. It automatically creates layers and layer filters
to make sure the right objects are only rendered in the right view.
This affects picking though as it was not aware of layer filters.
This patch collects the filtered layers for each view and makes sure
only entities matching those layers are tested for picking (this uses
code that existed for ray casting).
This changes the behavior of Qt3D though as non rendered objects (ie,
excluded by layer filtering) are no longer pickable. Only way now would
be to provide a shader that just discarded everything.
Note: Scene3DView is not available in Qt6 so on this branch this only
really affects custom scenes with multiple views each showing different
content.
[ChangeLog] Non rendered entities (due to layer filtering) are no
longer pickable
Pick-to: 6.1 6.2 5.15
Ticket-number: QTBUG-94214
Change-Id: I8515368e43342b33ac219dff533e92efa72fbe7d
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
| |
Pick-to: 6.1
Change-Id: I44d1400da38949285f1c12c17bba3561b36f6dc9
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-93990
Change-Id: I4c5a88b3bb882b8e72de65530ceb60cade2eaeaa
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-91621
Change-Id: I5c242223fc58a6980fcb3a909997ed7f966624b1
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-86726
Change-Id: I2a7748b67b55008962809ece1a34c6cf2a0617bb
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
| |
Change-Id: Ifee3593b8b55ce8ccbdd9cae57f290b1117303d6
Reviewed-by: Jonas Karlsson <jonas.karlsson@qt.io>
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
| |
The \default command now expects a parameter and is used for documenting
a default value for a parameter. Use the \qmldefault instead which
sets a property as the default property for a QML type.
Change-Id: I396e53072c55f2e3c555fded5ff1591c8eca11c1
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
| |
This otherwise leads to inconsistent dll linkage warnigns on windows.
Change-Id: I4f32f2fd2cc45939187535b8232172b280df7316
Pick-to: 6.1 6.0 5.15
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
| |
Zlib is renamed in Qt to ZlibPrivate according to the internal module
naming policy.
Change-Id: Icd4c34caad90440bba1a169f4beb5808d99c4b8b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Pick the supported rule with highest version number. For instance, if
we're looking for a rule for OpenGL ES 3.2, and there's a rule for ES
2.0 and another one for ES 3.0, make sure the rule for ES 3 is
selected.
Pick-to: 6.1 5.15
Change-Id: Ie517206948bc0422f6254472de43cda4dd2ce982
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Implementations of GraphicsHelperInterface::drawBuffers expect an array
of zero-based attachment point indexes (GL_COLOR_ATTACHMENT0 is added to
the indexes internally), so we can't convert the attachment index to an
OpenGL enum before calling drawBuffers.
Pick-to: 6.1 5.15
Change-Id: Ibc8af9f7c402b055c5391ad673b815c1fb65a40a
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|