| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rather than QThread::idealThreadCount which isn't cached and could potentially
return different values over time unlike QAspectManager::idealThreadCount
which is cached and constant.
Change-Id: Icb5fa81c93aa95af7bf020739bfefdf7e298f986
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
(cherry picked from commit 925dae358913d7c614223a57552837dcc6e171e7)
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-103286
Change-Id: I8e97b8d7f997fa42a791d0daebe5987e99c97b30
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
(cherry picked from commit feed7cf15a3fe7c2a68525d214d2f00d9d4017a9)
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
With multi-arch macOS code being available now, some code gets
compiled even though the target architecture doesn't support it.
So code needs to be protected with ifdefs
Task-number: QTBUG-99852
Change-Id: Iadcedc6c5014ad01aa4b5d8997e2c994993d973a
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Since 5.14, we are not relying on messages to sync nodes but rather calling
the BackendNode::syncFromFrontEnd when a sync is needed.
Change-Id: I556519f1f17714457ce610c667660f9ccc1e8e06
Task-number: QTBUG-98421
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
| |
Change-Id: I618ef8906c384474756d32ba9b427aa33782cbdf
Task-number: QTBUG-98421
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a node is added to the scene it is scheduled for a post-creation
initialization. However, if the node is destroyed before this
post-creation queue has been processed we will crash.
This commit ensures that the node being deleted is removed from the
post-creation queue. Usually the queue will be empty and so this should
not add a performance penalty.
Change-Id: Ibe4289e1e54cdb145f8588f15dc4ad894e427582
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit 0a533673b5450d49725d23e08ac13b03fad564fb)
|
|
|
|
|
|
|
|
|
| |
Ideally should support generic containers but clang seems to fail to
generate the symbol on the mac.
Change-Id: Ic1d6d815ab9aff60a97b3b0047228f55d7efe158
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
(cherry picked from commit 5a33b94b348e5c65155b526e7746d9fe45560959)
|
|
|
|
|
|
|
|
|
|
| |
Given QVector is potentially slower for this use case and the fact
that QVector might become QList in Qt6, we're better of using the
std.
Change-Id: If2c403439ddb856b60f8bfd5ae7c6ec1cb2c892a
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit 04bdb35a6c5f5fe417c06392e6a0861d80ec9dba)
|
|
|
|
|
|
|
|
|
| |
Can be triggered from the overlay API and using sending a "dump jobs"
command to the aspect engine. Gets saved in the current working
directory.
Change-Id: I19fc94a1215187c1d7eb9d1f3b13b968939cc917
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I5006778b74fee6d030f65deaba86bb38a7a0a86b
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: Iaa26160736bc6b92ecf0be767cb289d776cf46ad
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* origin/5.14:
Fix usage of C++14 features
Use animation rather than event to drive simulation
Fix for incorrect QML property names in GeometryRenderer doc
Add viewAll support for orthographic projection mode
Change-Id: I397bdee907389a6f5cabb8390a805fa9a89ed4ca
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Using events can be problematic as they contribute to flooding
of the event queue leading to issues with running animations.
So we now use an actual animation which runs in a loop and triggers
every 1ms (rendering still vsync locked though).
If animation have not been enabled for the qt build, we fall back
to using events as before.
Tests were changes since frame progress is no longer driven by
events, so processEvents does not trigger a frame update.
Change-Id: I89b11862ef432dffae0c3dfb140eedd61754697e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: If981333f7a3d78028d4f08c59867453d4192b955
Task-number: QTBUG-81058
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Always compile in AspectCommandDebugger and CommandExecuter
- AspectCommandDebugger start when QT3D_COMMAND_SERVER_ENABLED is set
- System information service becomes entry point for commands
from the debugger
- Added commands to enable and disable tracing
Change-Id: Ic0d7fe72fa8a118a43ca348ca4284595a71827a4
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|\|
| |
| |
| | |
Change-Id: I5a5b1d497430afdd0fe11933832a2477a7efbe30
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The test is flaky on macOS 10.12 and 10.13. As it usually times out, a
blacklist entry won't help. Blacklisting merely ignores the result, but
doesn't prevent the test watchdog from killing the process.
Task-number: QTBUG-80660
Change-Id: I6aec979e7437700e4e6596241f135622d99fd3be
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I999dfbb5c139ff8af2b1de9255f76ac132ae2dc0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Moved most of the code QSystemInformationService (private class
for now)
- Tracing can be enabled by setting QT3D_TRACE_ENABLED or
calling QSystemInformationService::setTraceEnabled(bool)
- Introduced QTaskLogger class to easy logging (RAII)
Change-Id: I2a3e08e4371fcee3e9ef3cf575725f13f57d1a94
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Deprecates the message classes and the public APIs to send/receive them.
(deprecates the constructors as deprecating classes breaks syncqt)
Change-Id: I4908f15c3c5f1d63969a0f2e11f6ecb22e2e3748
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|\|
| |
| |
| | |
Change-Id: I6682d27cc7c4f54158fa6813b1de6edce77bea33
|
| |
| |
| |
| |
| |
| |
| |
| | |
Avoids having to check for each uniform (for each frame, each geometry)
whether it is a standard uniform or a user defined one.
Change-Id: I76cff7869aacc1343a9acf991f8035b8118581ed
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| |
| |
| |
| |
| | |
Change-Id: Idb253d8cb42809ae21cfbbda70d6b6c75891070f
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|/
|
|
|
|
|
| |
84766ed9098f10efc53e4e43a75eef38fce7fbf6
Change-Id: I12341ec1b7bc68a7586c6671aa7b8f21caed17e0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a QNode subclass is created doing Subclass(parent) with parent != nullptr
QNodePrivate::_q_postContrustorInit is called through a queued invocation
due to the fact that the QNode ctor is called before the subclass ctor is
(and we need the class to be fully constructed to do proper initialization).
When adding a QNode subclass created as described above, and immediately
referencing it as a property of another QNode, we can end up in cases where
the backend gets aware of the node being referenced in the relationship and
tries to create its backend. Unfortunately due to the queued invocation of
_q_postConstructorInit, the frontend node has yet to be fully initialized,
resulting in the creation of the backend node to assert/crash.
Therefore, when updateNode is called (whenever a subnode is referenced in a
relationship) we now ensure that postConstructorInit gets (or has already been)
called.
Change-Id: Iea6e0b5a59c676f5db2946bec2f8c345accc32b0
Task-number: QTBUG-79350
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: I347f6df41c0a4f2295831e78248669b4a2d6b5ef
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
And matching unit tests
Change-Id: Iff0b13b2ad9ff07d08c767f4b20de2a1685a5570
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: Ic91a4f168172d6f34d858488e6fc170e8ed875f9
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce mechanism to notify backend nodes of changes in relationship
between nodes. If a component is added or removed from an entity,
or if a node is added or removed from a property of another node, then
just rely on the node being marked as dirty when syncing takes place.
For nodes that do not support syncing, messages are delivered as before
but allocated on the stack rather than the heap.
Change-Id: I06affac77e42a9998d9c7f44e231c7724c52b320
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Remove include statements for classes that are no longer used. Makes
it easier to find remaining use cases that need addressed before
complete removal in Qt 6.
Change-Id: I60529ba1929ad64b162d3847d5df47cde2a60dad
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
NodePostConstructorInit::processNodes and QAspectManager::processFrame
are both triggered by the event loop which means the frame can happen
before the processNodes call. We want to ensure processNodes is called
first so those pending nodes can be created during the processFrame call
otherwise they will get deferred until the next frame.
Created a test to show this and removed the now unnecessary double calls
to processEvents in several other tests.
Change-Id: I7a3f7b34be2858b4acdb9275804b458f9366ec67
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The purpose of this test is to make sure when parenting a QEntity to a
QNode, the backend entity will receive notification and be able to
correctly resolve it's parent entity. Update the test to check that the
QEntity node is marked dirty in the arbiter and has the correct parent
and parent entity.
Change-Id: I8f2c8aa1c8b5b6bbabd956bbfdef36fafcd05f8d
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changing the backend to remove syncing removed creation
and destruction events and the tests were updated to reflect
that. The key part of several tests actually involve this
creation and destruction information, such as testing to ensure
all parent backend nodes are created before their children.
Created a TestAspect that allows capturing the creation/destruction
of backend nodes and updated the many of the tests to check this
information
These tests will be important when refactoring to remove the
entity hierarchy rebuilding and some other cleanup.
Change-Id: I1e6a7ce01df2c711b266bccc6fe3dcb31431e3f1
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
| |
Change-Id: I9fa6e67607baa66250789b8bf618f30bd45aad98
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
| |
- Stop using messages
- Remove QSceneObserverInterface
- Ensure backend node creation/destruction is done at the right time
Change-Id: I470825af344ab65bf05e93fc149b61d1b9eefc96
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We install the TestArbiter on "this" in one test and the TestArbiter is
destroyed at the end of that test. In a second test we again install a
TestArbiter on "this". The call to QNode::setArbiter tries to access
the desroyed arbiter (m_changeArbiter->removeDirtyFrontEndNode(q))
resulting in a crash.
Need to set a null arbiter on "this" to properly clean up.
Also fix a few other incorrect uses that weren't crashing.
Change-Id: Iee2ea8210df971f934e2f188748803c8745c8278
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|\
| |
| |
| | |
Change-Id: I4e73060c1941773efcc568f010f5b073ebb10d4a
|
| |\
| | |
| | |
| | | |
Change-Id: I7d7274866129a3c8a3ed3788680a46368120d20d
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: I4584d2c879a72eccbaf273d0e84b3b6f6bb55295
Task-number: QTBUG-77675
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the node type supports syncing, use that rather than the creation
message. The message is still needed since that is passed to the
instantiation functor (none of qt3d's classes appear to use anything
but the node id, but can't be sure no other classes do, and can't add
other virtual method without breaking BC).
Change-Id: Id99f448070b8722a7809b968798772c9eb3c8397
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|\ \ \
| | | |
| | | |
| | | | |
Change-Id: Id73bbecd18edaf46ba481aa018e837a336860223
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Since aspect manager is now on main thread, we can directly update
backend nodes safely. Track nodes which have changed properties and
notify the backend nodes as part of the frame loop.
This avoid allocating and delivering many change messages.
To follow:
- implement on all nodes
- look at backend to frontend syncing
- figure out what to do with non property messages (components
added/removed, commands, ...)
Change-Id: Ia0c442b0528e728c4324d168200bae021bc29266
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Will make it more convenient to retrieve the world transform of a given
QEntity as well as monitor it for changes without having to traverse the
parent hierarchy of QEntity/QTransform
[ChangeLog] Add worldMatrix property on QTransform
Change-Id: Ie9ffb70c03b365850ed08693df2746701ca9a1fb
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|\| |
| | |
| | |
| | | |
Change-Id: I942a33e63084b346702577e28c70f2111e40a4d5
|
| |\|
| | |
| | |
| | | |
Change-Id: I903f92a7b910eee165a2dd708a2d5fb25192ab14
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Automatic removal of components when they are destroyed is based on
connecting to the destroyed() signal. This however means that by the
time removeComponent() is called, the pointer is no longer a valid
QComponent (just a QNode). While accessing member data of derived
classes such as nodeId is fine, emitting signals from derived class
does nothing, and in some cases asserts.
Fix this by:
- doing the QComponent clean up from it's destructor
- implementing a separate method on QEntity to simply clear the now
partly invalid pointer from the list.
Change-Id: Id7632ee2ceaff6548c44c7a43ae40a0372febde9
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ifecc9e20f6e2a4adf6811b38c8afdc830ecd91cf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QLatin1Literal is an undocumented and deprecated typedef
for QLatin1String, just use the original.
Change-Id: Id6a813ed5c0a457f003dbd118b64f77d9d82cb13
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/render/renderers/opengl/renderer/renderer.cpp
tests/auto/render/textures/tst_textures.cpp
Change-Id: I4da0eafe7ddd4dd822c3dcb5f5fa826653a335b4
|
| |\|
| | |
| | |
| | | |
Change-Id: I9e9214906c5cda56d0bcc98678c77be69189699d
|