blob: 22303fdca5b873b860400790c2c890e5829f69aa (
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
// Copyright (C) 2015 Klaralvdalens Datakonsult AB (KDAB).
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef QT3DRENDER_QSTENCILOPERATIONARGUMENTS_H
#define QT3DRENDER_QSTENCILOPERATIONARGUMENTS_H
#include <QtCore/QObject>
#include <Qt3DRender/qt3drender_global.h>
QT_BEGIN_NAMESPACE
namespace Qt3DRender {
class QStencilOperationPrivate;
class QStencilOperationArgumentsPrivate;
class Q_3DRENDERSHARED_EXPORT QStencilOperationArguments : public QObject
{
Q_OBJECT
Q_PROPERTY(FaceMode faceMode READ faceMode NOTIFY faceModeChanged)
Q_PROPERTY(Operation stencilTestFailureOperation READ stencilTestFailureOperation WRITE setStencilTestFailureOperation NOTIFY stencilTestFailureOperationChanged)
Q_PROPERTY(Operation depthTestFailureOperation READ depthTestFailureOperation WRITE setDepthTestFailureOperation NOTIFY depthTestFailureOperationChanged)
Q_PROPERTY(Operation allTestsPassOperation READ allTestsPassOperation WRITE setAllTestsPassOperation NOTIFY allTestsPassOperationChanged)
public:
enum FaceMode
{
Front = 0x0404,
Back = 0x0405,
FrontAndBack = 0x0408
};
Q_ENUM(FaceMode) // LCOV_EXCL_LINE
enum Operation
{
Zero = 0,
Keep = 0x1E00,
Replace = 0x1E01,
Increment = 0x1E02,
Decrement = 0x1E03,
IncrementWrap = 0x8507,
DecrementWrap = 0x8508,
Invert = 0x150A
};
Q_ENUM(Operation) // LCOV_EXCL_LINE
~QStencilOperationArguments();
FaceMode faceMode() const;
Operation stencilTestFailureOperation() const;
Operation depthTestFailureOperation() const;
Operation allTestsPassOperation() const;
public Q_SLOTS:
void setStencilTestFailureOperation(Operation operation);
void setDepthTestFailureOperation(Operation operation);
void setAllTestsPassOperation(Operation operation);
Q_SIGNALS:
void stencilTestFailureOperationChanged(Operation stencilFail);
void depthTestFailureOperationChanged(Operation depthFail);
void allTestsPassOperationChanged(Operation stencilDepthPass);
void faceModeChanged(FaceMode faceMode);
private:
explicit QStencilOperationArguments(FaceMode mode, QObject *parent = nullptr);
Q_DECLARE_PRIVATE(QStencilOperationArguments)
friend class QStencilOperationPrivate;
};
} // namespace Qt3DRender
QT_END_NAMESPACE
#endif // QT3DRENDER_QSTENCILOPERATIONARGUMENTS_H
|