Warning: That file was not part of the compilation database. It may have many parsing errors.

1/****************************************************************************
2**
3** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
4** Copyright (C) 2016 The Qt Company Ltd and/or its subsidiary(-ies).
5** Contact: https://www.qt.io/licensing/
6**
7** This file is part of the Qt3D module of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** Commercial License Usage
11** Licensees holding valid commercial Qt licenses may use this file in
12** accordance with the commercial license agreement provided with the
13** Software or, alternatively, in accordance with the terms contained in
14** a written agreement between you and The Qt Company. For licensing terms
15** and conditions see https://www.qt.io/terms-conditions. For further
16** information use the contact form at https://www.qt.io/contact-us.
17**
18** GNU Lesser General Public License Usage
19** Alternatively, this file may be used under the terms of the GNU Lesser
20** General Public License version 3 as published by the Free Software
21** Foundation and appearing in the file LICENSE.LGPL3 included in the
22** packaging of this file. Please review the following information to
23** ensure the GNU Lesser General Public License version 3 requirements
24** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
25**
26** GNU General Public License Usage
27** Alternatively, this file may be used under the terms of the GNU
28** General Public License version 2.0 or (at your option) the GNU General
29** Public license version 3 or any later version approved by the KDE Free
30** Qt Foundation. The licenses are as published by the Free Software
31** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
32** included in the packaging of this file. Please review the following
33** information to ensure the GNU General Public License requirements will
34** be met: https://www.gnu.org/licenses/gpl-2.0.html and
35** https://www.gnu.org/licenses/gpl-3.0.html.
36**
37** $QT_END_LICENSE$
38**
39****************************************************************************/
40
41#ifndef QT3DRENDER_QBLENDEQUATIONARGUMENTS_H
42#define QT3DRENDER_QBLENDEQUATIONARGUMENTS_H
43
44#include <Qt3DRender/qrenderstate.h>
45
46QT_BEGIN_NAMESPACE
47
48namespace Qt3DRender {
49
50class QBlendEquationArgumentsPrivate;
51
52class Q_3DRENDERSHARED_EXPORT QBlendEquationArguments : public QRenderState
53{
54 Q_OBJECT
55 Q_PROPERTY(Blending sourceRgb READ sourceRgb WRITE setSourceRgb NOTIFY sourceRgbChanged)
56 Q_PROPERTY(Blending sourceAlpha READ sourceAlpha WRITE setSourceAlpha NOTIFY sourceAlphaChanged)
57 Q_PROPERTY(Blending destinationRgb READ destinationRgb WRITE setDestinationRgb NOTIFY destinationRgbChanged)
58 Q_PROPERTY(Blending destinationAlpha READ destinationAlpha WRITE setDestinationAlpha NOTIFY destinationAlphaChanged)
59 Q_PROPERTY(int bufferIndex READ bufferIndex WRITE setBufferIndex NOTIFY bufferIndexChanged)
60
61public:
62
63 enum Blending
64 {
65 Zero = 0,
66 One = 1,
67 SourceColor = 0x0300,
68 SourceAlpha = 0x0302,
69 Source1Alpha, // ### Qt 6: Fix -> has same value as OneMinusSourceAlpha
70 Source1Color, // ### Qt 6: Fix -> has same value as DestinationAlpha
71 DestinationColor = 0x0306,
72 DestinationAlpha = 0x0304,
73 SourceAlphaSaturate = 0x0308,
74 ConstantColor = 0x8001,
75 ConstantAlpha = 0x8003,
76 OneMinusSourceColor = 0x0301,
77 OneMinusSourceAlpha = 0x0303,
78 OneMinusDestinationAlpha = 0x0305,
79 OneMinusDestinationColor = 0x0307,
80 OneMinusConstantColor = 0x8002,
81 OneMinusConstantAlpha = 0x8004,
82 OneMinusSource1Alpha,
83 OneMinusSource1Color,
84 OneMinusSource1Color0 = OneMinusSource1Color // ### Qt 6: Remove
85 };
86 Q_ENUM(Blending) // LCOV_EXCL_LINE
87
88 explicit QBlendEquationArguments(Qt3DCore::QNode *parent = nullptr);
89 ~QBlendEquationArguments();
90
91 Blending sourceRgb() const;
92 Blending destinationRgb() const;
93 Blending sourceAlpha() const;
94 Blending destinationAlpha() const;
95 int bufferIndex() const;
96
97public Q_SLOTS:
98 void setSourceRgb(Blending sourceRgb);
99 void setDestinationRgb(Blending destinationRgb);
100 void setSourceAlpha(Blending sourceAlpha);
101 void setDestinationAlpha(Blending destinationAlpha);
102 void setSourceRgba(Blending sourceRgba);
103 void setDestinationRgba(Blending destinationRgba);
104 void setBufferIndex(int index);
105
106Q_SIGNALS:
107 void sourceRgbChanged(Blending sourceRgb);
108 void sourceAlphaChanged(Blending sourceAlpha);
109 void destinationRgbChanged(Blending destinationRgb);
110 void destinationAlphaChanged(Blending destinationAlpha);
111 void sourceRgbaChanged(Blending sourceRgba);
112 void destinationRgbaChanged(Blending destinationRgba);
113 void bufferIndexChanged(int index);
114
115protected:
116 explicit QBlendEquationArguments(QBlendEquationArgumentsPrivate &dd, Qt3DCore::QNode *parent = nullptr);
117
118private:
119 Q_DECLARE_PRIVATE(QBlendEquationArguments)
120 Qt3DCore::QNodeCreatedChangeBasePtr createNodeCreationChange() const override;
121};
122
123} // namespace Qt3DRender
124
125QT_END_NAMESPACE
126
127#endif // QT3DRENDER_QBLENDEQUATIONARGUMENTS_H
128

Warning: That file was not part of the compilation database. It may have many parsing errors.

Provided by KDAB

Privacy Policy
Learn to use CMake with our Intro Training
Find out more

source code of qt3d/src/render/renderstates/qblendequationarguments.h