summaryrefslogtreecommitdiffstats
path: root/src/render/framegraph/qsubtreeenabler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/framegraph/qsubtreeenabler.cpp')
-rw-r--r--src/render/framegraph/qsubtreeenabler.cpp78
1 files changed, 75 insertions, 3 deletions
diff --git a/src/render/framegraph/qsubtreeenabler.cpp b/src/render/framegraph/qsubtreeenabler.cpp
index 5355b6fbd..d2c25852b 100644
--- a/src/render/framegraph/qsubtreeenabler.cpp
+++ b/src/render/framegraph/qsubtreeenabler.cpp
@@ -37,8 +37,8 @@
**
****************************************************************************/
-#include <Qt3DRender/qsubtreeenabler.h>
-#include <Qt3DRender/private/qframegraphnode_p.h>
+#include "qsubtreeenabler_p.h"
+#include <Qt3DRender/qframegraphnodecreatedchange.h>
QT_BEGIN_NAMESPACE
@@ -100,7 +100,7 @@ namespace Qt3DRender
*/
QSubtreeEnabler::QSubtreeEnabler(Qt3DCore::QNode *parent)
- : QFrameGraphNode(*new QFrameGraphNodePrivate, parent)
+ : QFrameGraphNode(*new QSubtreeEnablerPrivate, parent)
{
}
@@ -108,6 +108,78 @@ QSubtreeEnabler::~QSubtreeEnabler()
{
}
+/*!
+ \enum QSubtreeEnabler::Enablement
+
+ Specifies whether subtree enablement is persistent or transient.
+
+ \value Persistent
+ The value of enabled is persistent. This is the default.
+
+ \value SingleShot
+ The value of enabled will last for a single frame and then be reset to false.
+ This might be used for a subtree drawing to an FBO, for example, to only update
+ the FBO when the relevant portions of the scene changed.
+*/
+
+/*!
+ \qmlproperty enumeration Qt3D.Render::SubtreeEnabler::enablement
+ Controls whether subtree enablement is persistent or transient.
+
+ \value Persistent
+ The value of enabled is persistent. This is the default.
+
+ \value SingleShot
+ The value of enabled will last for a single frame and then be reset to false.
+ This might be used for a subtree drawing to an FBO, for example, to only update
+ the FBO when the relevant portions of the scene changed.
+*/
+
+/*!
+ \property Qt3DRender::QSubtreeEnabler::enablement
+ Controls whether subtree enablement is persistent or transient.
+*/
+QSubtreeEnabler::Enablement QSubtreeEnabler::enablement() const
+{
+ Q_D(const QSubtreeEnabler);
+ return d->m_enablement;
+}
+
+void QSubtreeEnabler::setEnablement(QSubtreeEnabler::Enablement enablement)
+{
+ Q_D(QSubtreeEnabler);
+ if (d->m_enablement == enablement)
+ return;
+ d->m_enablement = enablement;
+ emit enablementChanged(d->m_enablement);
+}
+
+/*!
+ \qmlmethod void Qt3D.Render::SubtreeEnabler::requestUpdate()
+ Requests that the subtree be enabled.
+
+ A conveninence method intended to be used with \c SingleShot enablement.
+ */
+
+/*!
+ Requests that the subtree be enabled.
+
+ A conveninence method intended to be used with \c SingleShot enablement.
+ */
+void QSubtreeEnabler::requestUpdate()
+{
+ setEnabled(true);
+}
+
+Qt3DCore::QNodeCreatedChangeBasePtr QSubtreeEnabler::createNodeCreationChange() const
+{
+ auto creationChange = QFrameGraphNodeCreatedChangePtr<QSubtreeEnablerData>::create(this);
+ auto &data = creationChange->data;
+ Q_D(const QSubtreeEnabler);
+ data.enablement = d->m_enablement;
+ return creationChange;
+}
+
} //Qt3DRender
QT_END_NAMESPACE