summaryrefslogtreecommitdiffstats
path: root/src/render/backend/rendertarget.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Destroy FBOs when RenderTarget node is destroyedPaul Lemire2020-02-131-0/+28
| | | | | | | | It appears we never destroyed FBOs which lead to bugs when destroying and recreating a RenderTarget Change-Id: I99b3df95b821670aa3bbd63209ff9bcc21afbf79 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Clean up includesMike Krus2019-10-011-3/+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 QRenderTarget to use direct syncPaul Lemire2019-09-251-31/+14
| | | | | Change-Id: Ie0261d21c63f2df798b1eb82aae05fb3440f71e5 Reviewed-by: Paul Lemire <paul.lemire@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-9/+1
| | | | | | | | | | 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>
* QRenderTarget/RenderTarget create and handles creation changesSean Harmer2016-04-291-0/+8
| | | | | Change-Id: Iadbf2c54d11d9f445dc4b0122d9467c0e8edfa65 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* render/backend: eradicate Q_FOREACH loops [low-risk]Marc Mutz2016-04-281-1/+2
| | | | | | | | | | | | | | | | ... 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 8.3KiB (2.8%) in text size on optimized GCC 5.3 Linux AMD64 builds. Change-Id: I7e4f8390b7530981185ad65d152b267e18a88c90 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderTarget use new added/removed change typesSean Harmer2016-04-271-7/+24
| | | | | Change-Id: I8bf1667d1fdc60c10744ba5280434e1575ed4dd6 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>
* RenderTarget: use m_enabled member from base classPaul Lemire2016-04-151-0/+3
| | | | | Change-Id: Ib143e1c118be606c918c8c45416f111aa6f0e720 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QRenderTarget rename attachment to outputsRobert Brock2016-03-081-14/+14
| | | | | | | As per API review Change-Id: I85cb9b405e79d9062a80b6f0b0cbb1968c1c0664 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QRenderAttachment renamed to QRenderTargetOutputRobert Brock2016-03-031-2/+2
| | | | | | | As per API review Change-Id: Icaca9797c01100402e6d103be2a0425820a717ec Reviewed-by: Paul Lemire <paul.lemire@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>
* Remove ParameterMappingPaul Lemire2016-02-261-1/+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-2/+2
| | | | | Change-Id: Ia672918cbae3b950e20e68bfbfd6982676a5981e 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>
* Rename Renderer -> Render throughoutSean Harmer2015-10-191-3/+3
| | | | | | | | 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-4/+4
| | | | | | | Update other aspects, tests and examples accordingly. Change-Id: Ib1bcf0bdf4f5aec4422dc0c80bfc32b27fb1a317 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Move Render aspect into the Qt3DRender namespaceSean Harmer2015-10-131-7/+7
| | | | | | | Updated examples and tests accordingly. Change-Id: I8848a88472de2302aa072fa11f21ea934672b7e6 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Copyright header change.Mika Salmela2015-02-091-19/+14
| | | | | | | | As for preparation for Qt5.5 release the copyright header is updated to correspond the current license requirements. Change-Id: I36632918b66f455539453b42c369689fb11298ec Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Change uuid -> id as it really isn't universally unique any longerSean Harmer2014-12-191-1/+1
| | | | | Change-Id: If25d1f71dfff62009db1cd4f72a1b0725b4c6d14 Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* Rename QNodeUuid to QNodeIdSean Harmer2014-11-191-5/+5
| | | | | Change-Id: I0450a4d4708af1ccd3d4c8f2ddc5c9a5c9deca27 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QNodeUuid is now a wrapper around quint64Paul Lemire2014-11-141-2/+2
| | | | | | Change-Id: Id8a12e7b7b4ea43cf75224d4176022a79a4bfe63 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* QNodeUuid: typedef for QUuidPaul Lemire2014-11-021-3/+3
| | | | | | | Should allow to easily replace QUuid by a custom quint64 based struct Change-Id: Ib4ba57efd2e070317aa3417b37ce091f2b4779a0 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QRenderTarget: send QUuid for the attachments instead of clonesPaul Lemire2014-10-251-6/+6
| | | | | Change-Id: Ie86b3462f9eda3cfd70a997ef26422ed7cb2731d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Moved most of the managers into a single header filePaul Lemire2014-10-171-1/+1
| | | | | | | | Makes the project smaller and easier to understand. Change-Id: I2ee5f8c88a61c70b2173c2d69d62a1cd9a646141 Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderTarget: QBackendNode subclassPaul Lemire2014-10-171-35/+7
| | | | | | | | | Using RenderNodeFunctor as creation functor QGraphicsContext corrected to use generic peerUuid from QBackendNode. Change-Id: I99a847e375a09a5290bfe34a0dac5e90efbd88e5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAspectManager made privatePaul Lemire2014-10-171-1/+1
| | | | | | | | | Note: the export is maintained for the moment because the renderer aspect still needs to know about that class. When the QBackendNode will be introduced and QAbstractAspect refactored, this will be removed. Change-Id: I35144c964cd36972866cc2b80ed3ffb2709a45b9 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QChangeArbiter and Observers/Observables made privatePaul Lemire2014-10-171-1/+1
| | | | | | | | | Note: the Renderer aspect uses all those private headers, when we introduce the QBackendNode class that will be a wrapper around those, we will be able to remove those private includes. Change-Id: I6240f754e6da251da158cafcf76029ae59000e05 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Get rid of ComponentUpdatedKevin Ottens2014-10-151-1/+1
| | | | | | | | NodeUpdated is enough information for property changes, we don't need to have it finer grained on the type of node. Change-Id: If718905cd1fce247d33a89cf258dc2ea3a852d91 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* RenderTarget and manager cleanup methodsPaul Lemire2014-09-291-0/+6
| | | | | Change-Id: I4c46a13d87516401f338690d287dd3d502ab84b1 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderTarget backend classPaul Lemire2014-08-291-0/+122
Change-Id: I914267b6efb9e99976172a795be5d2f17b2b3230 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>