summaryrefslogtreecommitdiffstats
path: root/src/render/materialsystem/renderpass.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Use QList instead of QVector in renderJarek Kobus2020-07-091-3/+3
| | | | | | | | | Use list-initialization. Task-number: QTBUG-84469 Change-Id: I826450646fc3c7118cae49c22a28058f47770e13 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Make the OpenGL renderer a pluginPaul Lemire2020-02-051-1/+0
| | | | | | | | 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>
* Clean up includesMike Krus2019-10-011-4/+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>
* Update QRenderPass to use direct syncMike Krus2019-09-191-46/+23
| | | | | Change-Id: Ie64d8cd74c8b28c43644f63993f0419ecb511d0e Reviewed-by: Mike Krus <mike.krus@kdab.com>
* RenderPass::cleanup: property unset enabled flagPaul Lemire2016-11-231-0/+1
| | | | | Change-Id: Ieaf4b036dd0c25bcf1da2ac113cf985ed41098cd Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* RenderPass: complete the cleanup methodPaul Lemire2016-07-171-0/+3
| | | | | Change-Id: Iff237dd8375ea9fa7f91a08086dc850930958a2f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderStates: remove RenderStateCollectionPaul Lemire2016-07-171-4/+20
| | | | | | | | Removes the multiple inheritance scheme it included and simplify the way render states get added removed. Change-Id: I20ede340f3bf6fcfb95dc84d7d0588d681331b54 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix dynamically created objects in QMLSvenn-Arne Dragly2016-06-071-0/+7
| | | | | | | | | Only remove from parent if backend node exists. Always notify about property node change in QRenderPass. Fixes QTBUG-53530 Change-Id: I48d7792f9f97f8040d6039bdd7d095e57425826a Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Remove deleted entries from RenderStateCollection cacheJanne Koskinen2016-05-251-0/+2
| | | | | | | | | | When deleting materials RenderPass contains node id's of materials in cache index pointing to destroyed RenderStates. Change removes ids for deleted entries when collection is dirty Task-number: QTBUG-53308 Change-Id: Ibc61c3add1f6d88603310bc46f434fb5b27db11a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Rename QNodeRemovedPropertyChange -> QPropertyNodeRemovedChangeSean Harmer2016-05-101-2/+2
| | | | | | Task-number: QTBUG-51494 Change-Id: I1c7f1c680bc18c6201b790e96dc4023564837122 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename QNodeAddedPropertyChange -> QPropertyNodeAddedChangeSean Harmer2016-05-101-2/+2
| | | | | | Task-number: QTBUG-51494 Change-Id: I7f59bad66eb086e2249c580be2fd9f4bad159eb3 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QNodePropertyChange -> QPropertyUpdatedChangeSean Harmer2016-05-101-1/+1
| | | | | | Task-number: QTBUG-51494 Change-Id: Ic326499f80b5a91b2d19c09770de926f220cc805 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename NodeAdded/NodeRemoved ChangeFlagsSean Harmer2016-05-101-2/+2
| | | | | | | | | | | | | | | | These are not just for adding/removing QNodes. They are more general in purpose and are used for adding/removing values to/from collection based properties e.g. QVector<MyValue>. The addition/removal of QNode pointers (which we translate to QNodeIds) is just the most common case. If Q_PROPERTY/QObject gains support for properties of collections and the typical operations on them, then we will be able to catch and handle most uses of these change types in QNodePrivate just like we do for setting a Q_PROPERTY. Task-number: QTBUG-51494 Change-Id: I707de1647554a61accf81dc79bfe58b289dbff7b Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Remove QBackendNode::updateFromPeer()Sean Harmer2016-05-031-18/+0
| | | | | | | | | | Implemented a few missing initializeFromPeer() implementations along with the corresponding frontend node creation change creation functions. Adapted unit tests. Change-Id: I571e53a7b68a5544bd0e308df0baf7e52533306e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Q_NULLPTR -> nullptrSean Harmer2016-05-011-1/+1
| | | | | | Task-number: QTBUG-52736 Change-Id: I58f9cbcdf018e7b672d33dd865067485412b79fe Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* RenderPass use new added/removed change typesSean Harmer2016-04-271-26/+25
| | | | | | | | | Again, we should be able to avoid the NodeRemoved/NodeAdded changes for the QShaderProgram* property and rely upon the automatic handling. Leaving this for a followup round of changes. Change-Id: I8a9eb2b8471a47c84032191513d86b59e15a087e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename QScenePropertyChange -> QNodePropertyChangeSean Harmer2016-04-211-2/+2
| | | | | | | Trying to unify naming of change types. Change-Id: I0bfca0b7ba5adeaaa6145f75ddb41731f76adc09 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* RenderPass: call base class SceneChangeEventPaul Lemire2016-04-141-0/+2
| | | | | | | Needed to update the enabled property Change-Id: I368b03720facc24c981f69e13450fb9d946af4d5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Finishing the rename of annotation manager to filterKey managerFranck Arrecot2016-04-061-1/+1
| | | | | | Task-id: QTBUG-51454 Change-Id: I7bafa7b568226e060b1cd5ce855946f5b27e7b63 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderPass handles creationSean Harmer2016-04-051-0/+12
| | | | | | Change-Id: I0155b9605bceff798dc804026ee69a9cd18152dc Reviewed-by: Volker Krause <volker.krause@kdab.com> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QAnnotation changesFranck Arrecot2016-03-171-8/+8
| | | | | | Task-number: QTBUG-51454 Change-Id: Iee08f6b1be39894c40926afb20e003d46bc735f4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix uses of inefficient QList<QNodeId>Marc Mutz2016-03-011-2/+2
| | | | | | | | | | | | | 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>
* Remove ParameterMappingPaul Lemire2016-02-261-24/+1
| | | | | | | | | | | | | | * Bindings are now entirely deduced from shader introspection * Modified the BackendNodeDirtyFlags to remove the class at this prevents the operator~() to be called * Make the Renderer loop check for the ComputeDirty flag and don't unset it if set Note: uses a hack to reset m_changeSet in performCompute as right know we are sometimes missing the markDirty(ComputeDirty) set by the ComputeJob nodes. Will be sorted out later. Change-Id: Ic4fa71ecf01b625e885a58a66278387bf5b36339 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Propagate backend node changes to Renderer; render-on-demandWieland Hagen2016-02-241-0/+1
| | | | | | | | | | | | Each sceneChangeEvent marks a dirty bit in the AbstractRenderer. If no changes were accumulated during one frame, the renderer decides not to render the frame, by returning false from shouldRender(). We still need to go through each backend node and see what flags to set exactly, and to make sure we also react on backend-initiated changes. Change-Id: I80588bc5c4ebeb5d57b45ddfbd4d79ec268968b1 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-3/+3
| | | | | Change-Id: Ia672918cbae3b950e20e68bfbfd6982676a5981e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Cache RenderStateNodes, so we don't have to look them up every frameWieland Hagen2016-02-051-17/+0
| | | | | | | | Backend nodes for QRenderPass und QStateSet cache nodes, update only if necessary. Change-Id: Ib04ba9f1632ad531705f40886dcfc87979cf2a0e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Added QBackendNodes for QRenderStates.Wieland Hagen2016-02-051-9/+8
| | | | | | | | | | | | | RenderStateNode is the backend node for QRenderStates. The actual state-dependent behavior is implemented in subclasses of RenderStateImpl. Backend nodes for QRenderPass and QStateSet now hold IDs of the RenderState-nodes that they contain, instead of pointers. This means that every frame the RenderView has to get the actual backend nodes while building the RenderStateSets. This needs to be fixed. Change-Id: I908ce9763fdb9f4e851df8dbcecf5dc6ce5a4f49 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Unify license header usageAntti Kokko2016-01-261-12/+15
| | | | | | | Update old header.LGPL3 to header.LGPL Change-Id: I8eac0cd6bbc276a56df487249cc459c0d4fab165 Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* Rename Renderer -> Render throughoutSean Harmer2015-10-191-8/+8
| | | | | | | | 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>
* Move Qt3DCore into Qt3DCore namespaceSean Harmer2015-10-131-11/+11
| | | | | | | Update other aspects, tests and examples accordingly. Change-Id: Ib1bcf0bdf4f5aec4422dc0c80bfc32b27fb1a317 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Move material system into own directorySean Harmer2015-10-131-0/+194
Change-Id: Iddc3a5d41dc0aff858d8bc3c5b2f7982bd693d00 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>