aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/effectmakernew/compositionnode.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/effectmakernew/compositionnode.h')
-rw-r--r--src/plugins/effectmakernew/compositionnode.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/plugins/effectmakernew/compositionnode.h b/src/plugins/effectmakernew/compositionnode.h
new file mode 100644
index 0000000000..2637bfb387
--- /dev/null
+++ b/src/plugins/effectmakernew/compositionnode.h
@@ -0,0 +1,61 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#pragma once
+
+#include "effectmakeruniformsmodel.h"
+
+#include <QObject>
+
+namespace EffectMaker {
+
+class CompositionNode : public QObject
+{
+ Q_OBJECT
+
+ Q_PROPERTY(QString nodeName MEMBER m_name CONSTANT)
+ Q_PROPERTY(bool nodeEnabled READ isEnabled WRITE setIsEnabled NOTIFY isEnabledChanged)
+ Q_PROPERTY(QObject *nodeUniformsModel READ uniformsModel NOTIFY uniformsModelChanged)
+
+public:
+ enum NodeType {
+ SourceNode = 0,
+ DestinationNode,
+ CustomNode
+ };
+
+ CompositionNode(const QString &qenPath);
+
+ QString fragmentCode() const;
+ QString vertexCode() const;
+ QString description() const;
+
+ QObject *uniformsModel();
+
+ QStringList requiredNodes() const;
+
+ NodeType type() const;
+
+ bool isEnabled() const;
+ void setIsEnabled(bool newIsEnabled);
+
+signals:
+ void uniformsModelChanged();
+ void isEnabledChanged();
+
+private:
+ void parse(const QString &qenPath);
+
+ QString m_name;
+ NodeType m_type = CustomNode;
+ QString m_fragmentCode;
+ QString m_vertexCode;
+ QString m_description;
+ QStringList m_requiredNodes;
+ bool m_isEnabled = true;
+
+ EffectMakerUniformsModel m_unifomrsModel;
+};
+
+} // namespace EffectMaker
+