diff options
Diffstat (limited to 'src/plugins/effectmakernew/compositionnode.h')
-rw-r--r-- | src/plugins/effectmakernew/compositionnode.h | 61 |
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 + |