summaryrefslogtreecommitdiffstats
path: root/src/render/framegraph/qsubtreeenabler.h
blob: 03adb30875f3fe906b4ff85edc6ccef2a2464ad9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Copyright (C) 2019 Ford Motor Company
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only

#ifndef QT3DRENDER_QSUBTREEENABLER_H
#define QT3DRENDER_QSUBTREEENABLER_H

#include <Qt3DRender/QFrameGraphNode>

QT_BEGIN_NAMESPACE

namespace Qt3DRender
{

class QSubtreeEnablerPrivate;

class Q_3DRENDERSHARED_EXPORT QSubtreeEnabler : public QFrameGraphNode
{
    Q_OBJECT
    Q_PROPERTY(Enablement enablement READ enablement WRITE setEnablement NOTIFY enablementChanged)
public:
    explicit QSubtreeEnabler(Qt3DCore::QNode *parent = nullptr);
    ~QSubtreeEnabler();

    enum Enablement {
        Persistent,
        SingleShot
    };
    Q_ENUM(Enablement)

    Enablement enablement() const;
    void setEnablement(Enablement enablement);

    Q_INVOKABLE void requestUpdate();

Q_SIGNALS:
    void enablementChanged(Qt3DRender::QSubtreeEnabler::Enablement enablement);

private:
    Q_DECLARE_PRIVATE(QSubtreeEnabler)
};

} //Qt3DRender

QT_END_NAMESPACE

#endif // QT3DRENDER_QSUBTREEENABLER_H