summaryrefslogtreecommitdiffstats
path: root/src/render/framegraph
Commit message (Collapse)AuthorAgeFilesLines
* 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 'origin/5.13' into devPaul Lemire2019-05-094-43/+32
|\ | | | | | | | | | | | | | | | | Conflicts: src/render/backend/abstractrenderer_p.h src/render/renderers/opengl/renderer/renderer.cpp tests/auto/render/renderer/tst_renderer.cpp Change-Id: Ib6da858f10bec57bdb1002bd8fa4172304d118f2
| * Merge remote-tracking branch 5.12 into 5.13Paul Lemire2019-04-264-43/+32
| |\ | | | | | | | | | Change-Id: I42affdd02bddb5205b9f2455f0c5e5efbd414dd8
| | * Fix FrameGraph node parentingJim Albamont2019-04-164-37/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge remote-tracking branch origin/5.13 into devPaul Lemire2019-04-1525-26/+26
|\| | | | | | | | | | | Change-Id: Ib5c04e9941aeea1a4cd27519b94b9a53e8349ea3
| * | Switch export macros to standard formKai Koehne2019-04-0224-25/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | QSortPolicy: add sorting by TexturePaul Lemire2019-03-061-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It can be more efficient to render a scene by sorting drawing commands based on the textures they are requiring. In conjunction with Material sorting, this can reduce the amount of GL calls being sent to the driver. [ChangeLog][Qt3DRender] QSortPolicy can now sort by Texture Change-Id: Ibc013e9d506ea3061b19a56c548e8184f2b981cc Reviewed-by: Mike Krus <mike.krus@kdab.com>
* | | Add QNoPicking FrameGraph nodePaul Lemire2019-02-286-3/+343
|/ / | | | | | | | | | | | | | | | | | | Allows to disable execution of picking computations for a specific FrameGraph branch. [ChangeLog][Qt3DRender] QNoPicking: control picking execution in the FrameGraph Change-Id: I5e82eeee9d04d48cfc39a6126d30d36eab61ea77 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2019-01-101-3/+0
|\| | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Ie8a4bf768bffba61dca9e315151c035be7b48723
| * QRenderCapture: Prevent crash on shutdown when replies are pendingChristian Andersen2019-01-061-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | When a QRenderCapture is deleted its destructor runs, then the QFrameGraphNode destructor, then the QNode destructor and finally the QObject destructor. The QObject destructor deletes its QObjectPrivate member, which destructs QRenderCapturePrivate. At that point the QRenderCapturePrivate tries to disconnect on an invalid pointer to the QRenderCapture (which was already deleted). Change-Id: Ib5835e3f86a282b963220b0dab656258111a61ab Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-10-201-0/+1
|\| | | | | | | Change-Id: Ia0f25a66addc32e9453968b9095c6830df09fa97
| * Doc: fix broken links in qanimationcallback.cpp and qframegraphnode.cppv5.12.0-beta3Nico Vertriest2018-10-181-0/+1
| | | | | | | | | | | | | | | | | | | | qframegraphnode.cpp:217: Cannot tie this documentation to anything qcallbackmapping.cpp:104: Can't link to 'QAnimationCallback::onValueChanged()' Change-Id: I20fb3a5688c16e86c2a62201991d30f735358d76 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * Add private API to access child nodes of QEntity and QFrameGraphNodeSvenn-Arne Dragly2018-09-034-2/+53
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Make backend FG node use FrameGraphDirty instead of AllDirtyPaul Lemire2018-10-1216-40/+75
| | | | | | | | | | | | | | | | 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>
* | Add backend nodes for QWaitFence and QSetFencePaul Lemire2018-10-116-3/+360
| | | | | | | | | | | | | | Follow up commits will make use of them Change-Id: I8e06f0a5cfba1650579605c7bdb70cd115e6417f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Introduce QSetFence/QWaitFence to synchronize with 3rd party enginesPaul Lemire2018-10-107-2/+752
| | | | | | | | | | Change-Id: Id0a3db229a33b3ee9dc01bf1b01ddd3af27cb34f Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* | Add private API to access child nodes of QEntity and QFrameGraphNodeSvenn-Arne Dragly2018-08-264-2/+53
|/ | | | | | | | | 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>
* Doc: Add missing dots (qt3d)Paul Wicking2018-06-1912-24/+24
| | | | | | Task-number: QTBUG-68933 Change-Id: I4226b8b9d70548b6921948c5ea47520f40f5df98 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Merge remote-tracking branch 'origin/5.11.0' into 5.11Qt Forward Merge Bot2018-05-093-3/+3
|\ | | | | | | Change-Id: I666d4ca1ad39f81e41a9b47a8828d1689ff2b33e
| * Doc: Use the correct module command for QML typesTopi Reinio2018-04-243-3/+3
| | | | | | | | | | | | | | | | | | A number of QML types used \qmlmodule instead of the correct \inqmlmodule. Change-Id: I330f664ede6d4d1a05efef8ee13ad33105ade19b Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Martin Smith <martin.smith@qt.io>
* | Doc: Fix documentation warnings related to Clang QDoc parserTopi Reinio2018-04-201-1/+1
|/ | | | | | | | | | | | | | | | | | | | | 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>
* Make sure we could lock the surface before querying its sizeSvenn-Arne Dragly2018-04-181-2/+5
| | | | | | | | | | | | The surface is a frontend object that might be destroyed before we try to access it in jobs that query its size using RenderSurfaceSelector::renderTargetSize(). This change makes sure we have a valid lock on the surface before querying its size. Co-authored-by: Paul Lemire <paul.lemire@kdab.com> Task-number: QTBUG-67789 Change-Id: Id7eaee999ad3a7040955f7497a959a2989b99501 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Doc: Add and improve examples in render states and material systemSvenn-Arne Dragly2018-03-251-0/+66
| | | | | | | | Also switch \code to \qml. Change-Id: I3f216a3abd55fdf51295ed14715f6f1ffc5e2ea4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
* ViewportNode: make computeViewport a static functionPaul Lemire2018-03-192-2/+3
| | | | | Change-Id: I8d4362830457df149791b8c2472cb123b6222bf3 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Merge branch '5.10' into devSean Harmer2018-01-1712-15/+15
|\ | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I248aa369ba98659a61e563fd29cc811c76ea1e2d
| * Fix includes of Qt classesFriedemann Kleint2018-01-151-1/+1
| | | | | | | | | | | | | | | | | | Add the module name, which is required for PySide2 to build. Complements 1129ff731fca6aff5849cafe1f434f1882342cd7. Task-number: PYSIDE-487 Change-Id: Icb6057f6849825536aac4c8f340d722b87b77857 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * Prevent potential containers detachingMike Krus2018-01-141-1/+1
| | | | | | | | | | | | | | Found by Clazy clazy-range-loop Change-Id: I4956f9be2b7b3f986b2fc83c1d883829314a8b6c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * Use QVariant::toRect rather than templateMike Krus2018-01-131-2/+2
| | | | | | | | | | | | | | Found with Clazy qvariant-template-instantiation Change-Id: I0b2cc2c6ad102a89e031753592c9cc99ba3cc8bd Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * Merge branch '5.9' into 5.10Sean Harmer2018-01-129-11/+11
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/animation/backend/handle_types_p.h src/extras/defaults/qtexturematerial.h src/render/backend/entity_p.h src/render/backend/handle_types_p.h src/render/backend/renderview.cpp src/render/io/scenemanager.cpp Change-Id: Ic145062cc98360e9067fd60f0992c7a6b51e41bb
| | * Get rid of the INDEXBITS template argument for QHandleLars Knoll2017-12-132-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | It's not required anymore, as the resource manager can grow as needed. Change-Id: If509de7f2ef90e1af9729d8fc60d7ecb08ede687 Reviewed-by: Svenn-Arne Dragly <svenn-arne.dragly@qt.io> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * Fix includes of Qt classesFriedemann Kleint2017-11-237-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | The convention <QtModule/QClass> should be used. Among other things, this makes generating Python bindings possible. Task-number: PYSIDE-487 Change-Id: I32f114377dd70d27dee71a44b05c81474eb5dac3 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | Merge remote-tracking branch 'origin/5.10' into devLaszlo Agocs2017-12-133-7/+227
|\| | | | | | | | | | | Change-Id: Ib51c8311ce78b2fec62dd0c09cb943a85a7d0b2b
| * | Make BlitFramebuffer rectangles follow Qt conventionsLaszlo Agocs2017-12-121-0/+171
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...and add some minimal documentation since this now needs to be documented. [ChangeLog] (Q)BlitFramebuffer has been corrected to treat the source and destination rectangles to be in the usual Qt coordinate system with Y at top. Task-number: QTBUG-65123 Change-Id: Id129e515db69d334ce5534abcb9ebf49fe0d49ab Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * | Add QBlitFramebuffer auto-parenting behaviorLaszlo Agocs2017-12-111-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | As is common with other nodes. Task-number: QTBUG-65081 Change-Id: I12ccd2fb5344e116f2f5333b73edb4562799543d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * | Merge 5.10 into 5.10.0Oswald Buddenhagen2017-11-201-1/+2
| |\ \ | | | | | | | | | | | | Change-Id: I1d59f6d4f69c5ab33efe1a00a983a2af880ef79a
| * | | Fix BC with QRenderCaptureMäättä Antti2017-11-132-7/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add overload for the new function and set revision. Change-Id: I235ebf0be575467a882735f1fc87844a8b40889f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | | Merge remote-tracking branch 'origin/5.10' into devAndy Nichols2017-11-201-1/+2
|\ \ \ \ | | |/ / | |/| | | | | | Change-Id: Ia6496e1ea22f2393a28e37cdd9f6e34f7613db49
| * | | Merge remote-tracking branch 'origin/5.9' into 5.10Svenn-Arne Dragly2017-11-151-1/+2
| |\ \ \ | | |/ / | |/| / | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/render/backend/abstractrenderer_p.h src/render/backend/layer.cpp src/render/backend/layer_p.h src/render/backend/render-backend.pri src/render/backend/renderer_p.h src/render/backend/renderviewbuilder.cpp tests/auto/render/renderer/tst_renderer.cpp tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp Change-Id: I5c1b649052992e1b3483d549ddc188c8450e927f
| | * Add layer entity filter cachingSvenn-Arne Dragly2017-11-141-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Also add all dirty flag enums found in dev. Change-Id: Ib364773002a3170aef66e7b365a0a41d8e60bd92 Reviewed-by: Svenn-Arne Dragly <svenn-arne.dragly@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | Merge remote-tracking branch 'origin/5.10' into devAndy Nichols2017-11-133-4/+24
|\| | | | | | | | | | | Change-Id: I2d373d538df3a65ac2d41238e5c6a214a151be68
| * | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-10-313-3/+24
| |\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/render/backend/renderview.cpp src/render/backend/renderview_p.h Change-Id: I6c1122632f2c481da31a63e3abd42b760d1ff211
| | * Fix SortPolicy sorting key generationLaszlo Agocs2017-10-201-3/+13
| | | | | | | | | | | | | | | | | | Change-Id: Ib06d84088d93e00ffdcaa6baa9d34e03358943cb Reviewed-by: Svenn-Arne Dragly <svenn-arne.dragly@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
| | * Doc: add doc to undocumented classesNico Vertriest2017-10-202-0/+11
| | | | | | | | | | | | | | | | | | Change-Id: I342a74f6605d7e6a9ac6f07af21dc8f7fd80c3ce Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | | Replace Q_NULLPTR with nullptrKevin Funk2017-09-251-1/+1
| | | | | | | | | | | | | | | Change-Id: I480f8b917e41d514f9efff01b2f2664b61ea3440 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | | Replace Q_DECL_FINAL with finalKevin Funk2017-09-2515-15/+15
| | | | | | | | | | | | | | | Change-Id: Ia80d1cb9cc96d76f8b367caa725c59a70ae0a4d5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | | Replace Q_DECL_OVERRIDE with overrideKevin Funk2017-09-2531-36/+36
| | | | | | | | | | | | | | | Change-Id: I92c955068e233c50043ad7d06a32300dd386c24d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | | Add support for FrontToBack sortingLaszlo Agocs2017-09-042-1/+3
|/ / | | | | | | | | | | | | | | | | A typical renderer with opaque-transparent passes will often want to use FrontToBack in the opaque pass (even though this is usually not strictly required). Change-Id: I071b62424a5446c86d76c6045c126a599534bf80 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | BlitFramebuffer framegraph nodeJuan José Casafranca2017-08-237-3/+657
| | | | | | | | | | | | | | | | This node allows to copy the content from one FBO to another or to screen Task-number: QTBUG-58162 Change-Id: I6016c46d9d538a012c2f641116ed766dd70ad021 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Add ProximityFilter backend nodePaul Lemire2017-08-184-3/+178
| | | | | | | | | | Change-Id: I2e3fa11cae9113106e4a8c77832e3a2a3c27a24a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Add QProximityFilter FrameGraphNodePaul Lemire2017-08-184-2/+367
| | | | | | | | | | | | | | Allows to filter entities based on their distance to another entity Change-Id: Id2486edc5ec49722308c4b94a87e61241e5bd932 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>