summaryrefslogtreecommitdiffstats
path: root/src/render/framegraph/framegraphnode.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove deprecated classes and functionsPaul Lemire2020-02-111-1/+0
| | | | | | | Mostly old messaging API Change-Id: I17eb2206b2ede56d2f7d36375d5e711d6149019f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Make the OpenGL renderer a pluginPaul Lemire2020-02-051-1/+1
| | | | | | | | By default the QRenderAspect will try to load this plugin Change-Id: Ie55e207fb8e6d0b64f717bbb99699eb669eaa3f2 Task-number: QTBUG-61151 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* FrameGraphNode: mark dirty on cleanupPaul Lemire2019-10-171-0/+1
| | | | | | | | Otherwise the FG cache is not rebuilt and we might have dangling pointers around. Change-Id: Id97de41092617acbf067fcac4cf7805c2eb715da Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Clean up includesMike Krus2019-10-011-1/+0
| | | | | | | | | 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>
* QFrameGraphNode: remove message sync left oversPaul Lemire2019-09-201-32/+0
| | | | | Change-Id: I798111ea9e2fda76e40c1588c18d6e7e80d34ab7 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Update QSetFence to use direct syncPaul Lemire2019-09-201-1/+3
| | | | | Change-Id: Ifa586128a97844e20b8a287b3746d3f9a6acd0eb Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Update QFrameGraphNode to use direct syncPaul Lemire2019-09-191-0/+21
| | | | | Change-Id: Ied19e2d25372795f3a70309540e7f84f6ae4f4a3 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Set renderer dirty flags in initialize from peerPaul Lemire2019-08-291-0/+1
| | | | | Change-Id: I90ae642d49af5f08fb828950bbdff8a30bc111b9 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Mark dirty when modifying framegraphJuan Jose Casafranca2019-05-241-0/+1
| | | | | | | | | | | | The framegraph can be modified by several ways. In some cases we can take a short path and mark only the framegraph as dirty but in other cases we need to mark the whole renderer as dirty This patch marks the whole renderer as dirty if the change isnt of any particular case Change-Id: I185fd1592b397805fa06ff2f5bc12c6c2d8c6ac0 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Merge remote-tracking branch 5.12 into 5.13Paul Lemire2019-04-261-41/+11
|\ | | | | | | Change-Id: I42affdd02bddb5205b9f2455f0c5e5efbd414dd8
| * Fix FrameGraph node parentingJim Albamont2019-04-161-35/+13
| | | | | | | | | | | | | | | | | | | | | | Framegraph suffers from the same problem as Entities. When they are created they pass their parent FrameGraph node, and not their parent QNode. When reparenting them we need to make sure the same thing happens otherwise you get backend FrameGraph nodes parented to non-framegraph nodes and they are just dropped from backend. Change-Id: I1b9cab2c9e869c690c4c43208e62a1044b3359a4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Make backend FG node use FrameGraphDirty instead of AllDirtyPaul Lemire2018-10-121-5/+14
|/ | | | | | | | So as to later on allow finer grained job launching and not force every job to be rerun when we know only the FG has changed. Change-Id: I09f935f8a1793722159ba645acc2ad4b00983041 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* FrameGraphNode: setParentID to the parentFGNodeIdPaul Lemire2016-12-131-1/+3
| | | | | Change-Id: I8110117c0aafa09cc8030ec4f0ab5cdad94f5eb2 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Merge branch '5.7' into 5.8Sean Harmer2016-10-101-0/+33
|\ | | | | | | | | | | | | Conflicts: tests/auto/input/input.pro Change-Id: I591202f144aeec915e18611dfce358d4f15faff6
| * FrameGraphNode: properly handle dynamic tree changesPaul Lemire2016-09-271-0/+33
| | | | | | | | | | | | Change-Id: Ifa2c7f3c33cb410938e484f023e965d5ca5220cb Task-number: QTBUG-55908 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Change FrameGraphNode constructor to accept Mode paremeterAntti Määttä2016-08-131-2/+3
|/ | | | | | | | Add the mode paremeter to constructor so that inherited frame graph nodes can set the mode if needed. Change-Id: I648189e8a185735eefa2e4c4de8b7ff5c295d38f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* FrameGraphNode: make children() return a QVectorPaul Lemire2016-06-271-2/+2
| | | | | Change-Id: I05af110ba974711d5462206cf844379f8ae5cb07 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Q_NULLPTR -> nullptrSean Harmer2016-05-011-6/+6
| | | | | | Task-number: QTBUG-52736 Change-Id: I58f9cbcdf018e7b672d33dd865067485412b79fe Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* FrameGraphNode: use m_enabled member from QBackendNodePaul Lemire2016-04-151-3/+0
| | | | | | | Also corrected unit tests. Change-Id: I95e89d124e722521958a91dd0ae9eb668dd210e1 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Do enabled state and parent/child relationship init in framegraph baseSean Harmer2016-04-101-0/+7
| | | | | | | | | | | | | Move this out of the creation functor as the peerId is not set at this point which breaks the setParentId() function. Move this to the initializeFromPeer() function and have each FrameGraphNode type call the base class implementation to set the basic stuff up. With this change, the main loop now runs through using the QT3D_NO_CLONE env var. However, it does not render again, yet. Change-Id: Ied12deb4732b5c103e647cc4cfea935114ea31ca Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Drop QFrameGraph in favor of QRenderSettingsWieland Hagen2016-03-091-28/+0
| | | | | | | | | QFrameGraph did store just the Frame Graph Root, and was not configurable at runtime. This functionality has been moved to QRenderSettings. The renderer now gets the scene graph root directly from QRenderSettings. Change-Id: I3012eb96b8073717f96f5e42374859a3f4a89bfc Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QBackendNode::peerUuid() renamed to peerId()Paul Lemire2016-03-051-3/+3
| | | | | Change-Id: I72471d0b22d16bbbee33610e30a06daadffedbd9 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* render/framegraph: eradicate Q_FOREACH loops [low-risk]Marc Mutz2016-03-041-1/+1
| | | | | | | | | | | | | | | | ... by replacing them with C++11 range-for loops. To avoid detaches of these mutable Qt containers, wrap the container in qAsConst(), where needed. This is the batch with low-risk changes. They operate on local containers or the loop body clearly does not cause the container to change. Saves 900B in text size on optimized GCC 5.3 Linux AMD64 builds. Change-Id: I186b2aaf0662bbbc802d103794df608bb7b940a4 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix uses of inefficient QList<QNodeId>Marc Mutz2016-03-011-1/+1
| | | | | | | | | | | | | QNodeId is a 64-bit type, so holding it in QList on 32-bit platforms is horribly inefficient. Fix by porting to QVector instead. [ChangeLog][Important Behavior Changes] QNodeIds are now passed and accepted in QVectors, not QLists. Change-Id: I3cbe35d639eb2ddf9d106294f542f65b431dc4a4 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Dedicated QRenderBackendNodeWieland Hagen2016-02-241-1/+1
| | | | | | | | | Render aspect Backend nodes now subclass from QRenderBackendNode, which is a subclass of QBackendNode. We may want to store aspect- related data in each backend node Change-Id: I4f00de09c8cc31d2347d919151d359ad44cf03a9 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* const QNodeId & -> QNodeIdPaul Lemire2016-02-221-6/+6
| | | | | Change-Id: Ia672918cbae3b950e20e68bfbfd6982676a5981e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Removed factory member variableRobert Brock2016-02-071-1/+1
| | | | | | | | | The variable was removed from QBackendNode and subsequently all areas it appeared. Task-number: QTBUG-49682 Change-Id: I5904714b55aaefbe07ee11008ff49cd1d9b89950 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Unify license header usageAntti Kokko2016-01-261-11/+14
| | | | | | | Update old header.LGPL3 to header.LGPL Change-Id: I8eac0cd6bbc276a56df487249cc459c0d4fab165 Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* Port FrameGraphManager away from QResourceManagerTobias Koenig2016-01-201-38/+25
| | | | | Change-Id: I7399008adb0f612c78738f58f168fa38cf6ae845 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Use QList::reserve.Volker Krause2016-01-061-0/+1
| | | | | | | | The intermediate QLists are still not optimal here, as these methods are called per frame, but at least this is now down to one allocation each. Change-Id: I7705172aabc5e526c5123d70450d3ae2dec20d03 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QRenderAspect/Renderer: refactored to use the AbstractRenderer interfacePaul Lemire2015-11-241-1/+2
| | | | | Change-Id: I662577e6dd337b1f056f73b4a11262e902d4dde2 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Rename Renderer -> Render throughoutSean Harmer2015-10-191-2/+2
| | | | | | | | This is for consistency between the C++ namespaces and QML imports and with the other aspects. Change-Id: I73392f138b4e519b12888f52530123e3d0ba445e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Few improvements on FrameGraphNodePaul Lemire2015-10-141-5/+17
| | | | | | | | | | * Exported with Q_AUTOTEST_EXPORT for unit testing * Check if parent is different in the setParentHandle * Set parent handle to null when removing child * Add a getter on the manager Change-Id: Idbe20fd36d144023c2f4e7a1571122038bda8a3d Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Move Qt3DCore into Qt3DCore namespaceSean Harmer2015-10-131-3/+3
| | | | | | | Update other aspects, tests and examples accordingly. Change-Id: Ib1bcf0bdf4f5aec4422dc0c80bfc32b27fb1a317 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Final batch of file moves for nowSean Harmer2015-10-131-0/+166
Change-Id: I0c9e83e3142e6b083feb2cbcabcc4279de64b95b Reviewed-by: Paul Lemire <paul.lemire@kdab.com>