summaryrefslogtreecommitdiffstats
path: root/src/core/nodes
Commit message (Collapse)AuthorAgeFilesLines
* Fix scene graph dumpMike Krus2020-03-201-8/+9
| | | | | | | Might have QNodes "between" parents and child entities. Change-Id: Ie041508ec96c39b779bc75a6ad4d38c604e322e2 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix deprecation handlingMike Krus2020-01-142-0/+6
| | | | | | Change-Id: If981333f7a3d78028d4f08c59867453d4192b955 Task-number: QTBUG-81058 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Add commands to dump frame graph and scene graphMike Krus2020-01-092-0/+51
| | | | | | | | prints to the console, also dump the list of paths in the frame graph to help understand render views. Change-Id: Ic4756e09545971b224a239fafc6667b0ca3d4572 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Deprecate message APIMike Krus2019-12-094-21/+34
| | | | | | | | 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>
* Fix compile warning (again)Mike Krus2019-11-151-1/+1
| | | | | Change-Id: Ic20d37a8bf875247c1af31fa4ded757564f953fc Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Merge remote-tracking branch 'origin/5.13' into 5.14Liang Qi2019-11-141-1/+1
|\ | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/core/nodes/qnode_p.h src/render/renderers/opengl/renderer/renderview.cpp Change-Id: I24483612f9f395e9ffc0bd6163bbfa092b13b7cb
| * QNode: stop using hash<node,connection> for bookkeeping5.13Paul Lemire2019-11-042-9/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is totally valid to have actually the same node used for 2 distinct connections (e.g setting 2 different node properties to the same node). With the hash, the second setter call would overwrite the first connection resulting in leaving a dangling connection around potentially resulting in crashes. Instead use a QVector<pair<node, connection>> and adjust code accordingly. Change-Id: I49870c409c3f7b629c8f1bdfcb8757a904db2490 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 906f8a62f89a7ce2343a155e6db62616e66dc14b) Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Doc: Fix documentation warningsTopi Reinio2019-11-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add (basic) documentation for Qt3DAnimation::QAnimationCallback. - Add missing namespace qualifiers for \class, \fn, \instantiates, \sa, and \property commands. - Remove linking to example file pages, as QDoc no longe treats them as linkable targets. - Fix function/QML method parameter documentation - Fix missing \qmlproperty types - Fix linking to QKeyEvent in QtGui. - Move Qt3DRender::Quick namespace documentation to where QDoc can see it. - Add enum documentation for Qt3DRender::QBlitFramebuffer::InterpolationMethod and Qt3DRender::QMesh::Status. - Other minor fixes This brings the current warning count to zero. Fixes: QTBUG-79822 Change-Id: I1154a7f9c34917a3f240e99da0e7a300be7d65a0 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | Fix compile warningsMike Krus2019-11-081-1/+1
| | | | | | | | | | Change-Id: Iac18b5fddec79295dd9e4249fd16eb2f121fe771 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | QNode: stop using hash<node,connection> for bookkeepingv5.14.0-beta3Paul Lemire2019-11-042-9/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | It is totally valid to have actually the same node used for 2 distinct connections (e.g setting 2 different node properties to the same node). With the hash, the second setter call would overwrite the first connection resulting in leaving a dangling connection around potentially resulting in crashes. Instead use a QVector<pair<node, connection>> and adjust code accordingly. Change-Id: I49870c409c3f7b629c8f1bdfcb8757a904db2490 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* | QNode::updateNode: ensure postConstructorInit of node is calledPaul Lemire2019-10-281-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Remove use of node/components added/removed messagesMike Krus2019-10-046-22/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Clean up includesMike Krus2019-10-013-4/+3
| | | | | | | | | | | | | | | | | | 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>
* | Update QCameraLens to use direct syncPaul Lemire2019-09-241-0/+3
| | | | | | | | | | Change-Id: I5b1af685c640c218d3720d5339b14dfc913e01c5 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Update mapping classes to use direct syncMike Krus2019-09-232-0/+6
| | | | | | | | | | | | | | QChannelMapping, QSkeletonMapping and QCallbackMapping updated. Change-Id: I10b78d86856f6ad01fbb313fdcbe9f87f6d926ac Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Process pending nodes needing _q_postConstructorInit at start of frameJim Albamont2019-09-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Update QEntity to use direct sync modeMike Krus2019-09-171-7/+1
| | | | | | | | | | | | Change-Id: I9fa6e67607baa66250789b8bf618f30bd45aad98 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Mike Krus <mike.krus@kdab.com>
* | Use direct access to remove backend nodesPaul Lemire2019-09-161-5/+2
| | | | | | | | | | | | | | | | | | - 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>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-111-2/+2
|\| | | | | | | Change-Id: I4e73060c1941773efcc568f010f5b073ebb10d4a
| * Fix a -Werror=shadow in EntityLiang Qi2019-08-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Triggered by gcc version 4.8.5 (SUSE Linux): src/core/nodes/qentity.h: In member function ‘QVector<T*> Qt3DCore::QEntity::componentsOfType() const’: src/core/nodes/qentity.h:69:32: error: declaration of ‘components’ shadows a member of 'this' [-Werror=shadow] const QComponentVector components = this->components(); ^ Change-Id: I02507b3ff75b0f21d958955f3ce9a8b01f471d05 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* | Use sync method when initializing new backend nodesMike Krus2019-08-295-19/+21
| | | | | | | | | | | | | | | | | | | | | | 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>
* | Do direct notification of backend nodeswip/refactorMike Krus2019-08-285-59/+39
|/ | | | | | | | | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-06-154-2/+34
|\ | | | | | | Change-Id: I903f92a7b910eee165a2dd708a2d5fb25192ab14
| * Fix removal of components when they are destroyedMike Krus2019-05-284-2/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 5.12 into 5.13Paul Lemire2019-04-264-2/+113
|\| | | | | | | Change-Id: I42affdd02bddb5205b9f2455f0c5e5efbd414dd8
| * Fix backend node creation order using an initialization queueJim Albamont2019-04-082-2/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backend nodes should always be created from the top-most parent down ensuring that every parent is created before its children. The original way of creating backend nodes by calling _q_postConstructorInit in a deferred manner from the QNode constructor breaks this because backend node creation happens in the order that the nodes on the front-end were created. This was often incorrect when reparenting newly created nodes. Fix by creating a queue of nodes needing a _q_postConstructorInit call and only adding nodes to the queue if one of their ancestors is not already in the queue. This ensures that _q_postConstructorInit is only called for the top-most node in any subtree. This behavior exactly matches the creation behavior when building a subtree and reparenting it to a node with a backend. Doing silly things like creating a node with a parent that has a backend then immediately reparenting is now safe. After this patch, it should be safe to assume that backend nodes can always find their backend parent. Adding only the top-most nodes to the queue and processing the entire queue at one time also ensures that all creation events get sent in the same batch. This fixes the problem of having backend nodes referring to other backend nodes that haven't been created yet. Task-number: QTBUG-74106 Task-number: QTBUG-73905 Change-Id: Idcf38d6c3164f6be4394a3b25554547414061059 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * Fix Entity parenting hierarchyJim Albamont2019-04-042-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the initial Entity backend node hierarchy is created it skips over any non-entity nodes to ensure that Entities are only parented to other Entities. Calling QNode::setParent breaks this when reparenting Entities to non-entity nodes. Fix by sending a new "parentEntityUpdated" property update that backend Entity nodes listen for. They keep the id of their new parent and flag the need to rebuild the entity hierarchy. This triggers a new job to clear the children and parents of every backend Entity, then rebuilds the hierarchy using the stored parent ID in each Entity. This is much more forgiving of creation/parenting ordering issues and shouldn't be less performant because any Entity reparent was previously marking everything dirty anyway. Add a new test from QTBUG-73905 that creates 4 cylinders and manipulates the parents in different ways. Add a new test to tst_nodes to reparent a QEntity to a QNode and ensure the entity finds it's correct QEntity parent. Add a new test to tst_entity to ensure backend nodes correctly handle the new parenting events. Task-number: QTBUG-73905 Change-Id: Iab0203947d89bbed2868b3629fbde879675fe568 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Switch export macros to standard formKai Koehne2019-04-0213-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | Qt expects the export macros to have Q_ prefixes, otherwise the symbol versioning script won't find them and mark them. Also remove non-exising QT3DLOGIC_PRIVATE_EXPORT macro from src/doc/qt3d.qdocconf Task-number: QTBUG-74752 Change-Id: I71b9e85ff09c002fb283824aa51a5a8f50e937f4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Merge branch '5.12' into 5.13Paul Lemire2019-04-023-6/+32
|\| | | | | | | Change-Id: If17511da64dd666a536408aa3cb3178ef6db0403
| * Make sure backend node is created when component is added to Entityv5.12.2Svenn-Arne Dragly2019-02-223-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | In addition, the parent of the component and all further ancestors need to be registered on the backend. We do this by calling QNodePrivate::_q_postConstructorInit on all these nodes. Also add autotest that triggers the case referenced in QTBUG-72236 to avoid regressions. Change-Id: Ibf8f43654d145ea8b8082b2f30123ea65e42ff55 Fixes: QTBUG-72236 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: James Turner <james.turner@kdab.com>
| * Fix broken creation order for nodes used as propertiesSvenn-Arne Dragly2019-02-221-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | Otherwise, child nodes may be constructed before their parents and their node creation changes will arrive at the backend out-of-order. This could result in a child node referencing a parent that we have not yet received a creation change for. Also add a unit test to take this case into account. Change-Id: I26b29e63863d1686e7b9239c63297c7e6c341f4e Task-number: QTBUG-73986 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Merge remote-tracking branch 'origin/5.12' into devLiang Qi2018-12-111-1/+1
|\| | | | | | | | | | | | | Conflicts: src/render/renderers/opengl/textures/gltexture.cpp Change-Id: I57e9a296dc15f0b5dc3af3664f698bdc799c4bb5
| * Doc: Fix various documentation warningsTopi Reinio2018-11-071-1/+1
| | | | | | | | | | Change-Id: I3eecd06bba9438b5aa472f3ba7ecaecdeda985e2 Reviewed-by: Martin Smith <martin.smith@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-11-033-3/+90
|\| | | | | | | Change-Id: I95431b48ee9828be602c088cdd798fabbd1723ef
| * Doc: Add doc to undocumented methodsNico Vertriest2018-11-012-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | - qcomponent.cpp - qbackendnode.cpp - qjoint.cpp - qskeletonloader.cpp - qframeaction.cpp - qscene2d.h - qrenderaspect.cpp Change-Id: I25881dee19d2d01f948bfaf4a156a97f6caaea73 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * Doc: Add doc to undocumented methods and properties qt3dNico Vertriest2018-11-011-3/+71
| | | | | | | | | | | | | | | | Adds doc for undocumented methods in qnode.h and qnodecommand.h Task-number: QTBUG-36985 Change-Id: I1eb28916ba8862a414dccd58a3c56b84a89f99d0 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * Add private API to access child nodes of QEntity and QFrameGraphNodeSvenn-Arne Dragly2018-09-032-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | This opens up for reduced bookeeping on the backend, and is used by the experimental Dragon render aspect, which is currently being implemented in qt3d-runtime. Change-Id: I4cc2e98e4e0e7e8d456ed11c4fbc48db5c93f2a2 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> (cherry picked from commit 77e418fde850c86e39d9dd8528876599fbe9dc34) Reviewed-by: Mike Krus <mike.krus@kdab.com> Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | Add an easy way to get a particular component from an entityJuan Jose Casafranca2018-09-192-0/+20
| | | | | | | | | | Change-Id: I188fab5019d3e05354a4c1582fb12097a569fbb8 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* | Add private API to access child nodes of QEntity and QFrameGraphNodeSvenn-Arne Dragly2018-08-262-0/+17
|/ | | | | | | | | This opens up for reduced bookeeping on the backend, and is used by the experimental Dragon render aspect, which is currently being implemented in qt3d-runtime. Change-Id: I4cc2e98e4e0e7e8d456ed11c4fbc48db5c93f2a2 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QNode: _q_postConstructorInit set scene on whole subtreePaul Lemire2018-07-181-3/+8
| | | | | | | | | | | | | | | _q_postConstrutorInit is called in a deferred invocation when constructing a Node with a parent. If several nodes are created that way, the _q_postConstructorInit call from the node which parents the other will actually build the node creation changes for the whole subtree and incidently prevent the _q_postConstructorInit invocation for the children to do anything (including setting the scene). Therefore _q_postConstructorInit should set the scene on all the Node it will be creating creation changes for. Change-Id: I07d4e80675758b9701cc941881f1faaa1c89af4b Task-number: QTBUG-69352 Reviewed-by: Svenn-Arne Dragly <svenn-arne.dragly@qt.io> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Handle reparenting to nodes which have no backendPaul Lemire2018-07-041-36/+32
| | | | | | | Change-Id: Ibbaae84a616afbe8be35904e9185be668e32f1c7 Task-number: QTBUG-69284 Reviewed-by: Mike Krus <mike.krus@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Doc: Add missing dots (qt3d)Paul Wicking2018-06-192-3/+3
| | | | | | Task-number: QTBUG-68933 Change-Id: I4226b8b9d70548b6921948c5ea47520f40f5df98 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Fix documentation warnings related to Clang QDoc parserTopi Reinio2018-04-202-3/+3
| | | | | | | | | | | | | | | | | | | | | Since Qt 5.11, QDoc uses Clang to parse C++ documentation. Clang requires a module header, as well as proper include paths, to build a precompiled header and process the sources. To do this, add a custom module header that pulls in all Qt 3D modules - this way, we can continue using a single documentation project to covers all of Qt 3D. Fix all documentation warnings are caused by missing namespaces, QML module/type names and typos, as well as a number of linking problems and other minor issues. After this change, the remaining documentation issues consist of 'No documentation for ...' warnings. Task-number: QTBUG-67790 Change-Id: I38b91163c475a00cc1893e793240470c5409eb57 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Remove unused variables detected by clang-clFriedemann Kleint2018-04-121-1/+1
| | | | | | | | | | nodes\qnode.cpp(391,34): warning: lambda capture 'this' is not used [-Wunused-lambda-capture] backend\gltfimporter.cpp(345,19): warning: unused variable 's' [-Wunused-variable] backend\gltfimporter.cpp(353,19): warning: unused variable 't' [-Wunused-variable] text\qdistancefieldglyphcache.cpp(79,13): warning: private field 'm_glyph' is not used [-Wunused-private-field] Change-Id: Id546607d95561efa7547fb5d7df0b03184bc5ed7 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* QParameter: add bookkeeping of QNode valuesPaul Lemire2018-02-211-4/+17
| | | | | Change-Id: I0a7334907e4b34df6955fb24832958b674d7b62b Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Doc: Fix documentation warnings for Qt 3D CoreTopi Reinio2018-02-166-25/+28
| | | | | | | | | | | | This change fixes multiple QDoc warnings for Qt 3D Core that are related to how Clang parses the source code and the \fn QDoc commands. We still have a number of 'No documentation for ...' warnings left - those are not addressed in this change. Change-Id: Ia6394f453d7bd959bc4d4cc9347ac0039b80f661 Reviewed-by: Martin Smith <martin.smith@qt.io>
* Merge remote-tracking branch 'origin/5.10' into 5.11Sean Harmer2018-02-152-18/+33
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/animation/doc/src/qt3danimation-module.qdoc src/render/backend/abstractrenderer_p.h src/render/backend/buffervisitor_p.h src/render/backend/renderer.cpp src/render/backend/renderer_p.h src/render/backend/triangleboundingvolume_p.h src/render/backend/trianglesextractor_p.h src/render/frontend/sphere_p.h src/render/jobs/calcboundingvolumejob.cpp src/render/jobs/job_common_p.h src/render/jobs/pickboundingvolumejob.cpp src/render/jobs/pickboundingvolumejob_p.h src/render/jobs/pickboundingvolumeutils.cpp src/render/jobs/renderviewjobutils_p.h tests/auto/render/boundingsphere/tst_boundingsphere.cpp tests/auto/render/commons/testrenderer.h tests/auto/render/raycasting/tst_raycasting.cpp tests/auto/render/render.pro tests/auto/render/renderer/tst_renderer.cpp Change-Id: I76633bc5a5a065e5f9ea62cc16563377e5c693a3
| * Merge remote-tracking branch 'origin/5.9' into 5.10Sean Harmer2018-02-053-20/+52
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/render/backend/trianglesvisitor.cpp src/render/backend/uniform.cpp src/render/jobs/calcboundingvolumejob.cpp src/render/jobs/pickboundingvolumejob.cpp src/render/jobs/pickboundingvolumeutils.cpp Change-Id: Ib8305011c51710a3538c0b29f7022388f5244a38
| | * Fix array of textures in shader parameterMauro Persano2018-02-021-16/+31
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-61759 Change-Id: I2c61f9cf41124816d10da90783c7fb9ff6088fc4 Reviewed-by: Mike Krus <mike.krus@kdab.com>
| | * Ensure node creation changes are sent before using in list propertiesSean Harmer2018-02-022-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This completes the fix for out of order event delivery related to creation changes. We now ensure that QNodes used as values in singular and list properties are fully constructed on the backend before they are referenced in properties of other nodes. Also added a check to not recurse into sending too many changes when adding a child node. Written with Svenn-Arne Dragly. Task-number: Task-number: QTBUG-65956 Change-Id: I1470e0f685c81d1277ac04ad985ec1b76f1c27c0 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>