1// Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
2// Copyright (C) 2016 The Qt Company Ltd and/or its subsidiary(-ies).
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
5#include "qscissortest.h"
6#include "qscissortest_p.h"
7
8QT_BEGIN_NAMESPACE
9
10namespace Qt3DRender {
11
12/*!
13 \class Qt3DRender::QScissorTest
14 \brief The QScissorTest class discards fragments that fall outside of a
15 certain rectangular portion of the screen.
16 \since 5.7
17 \ingroup renderstates
18 \inmodule Qt3DRender
19
20 A QScissorTest class enables scissor test, which discards fragments outside
21 the rectangular area of the screen specified by the left, bottom, width and
22 height properties.
23 */
24
25/*!
26 \qmltype ScissorTest
27 \brief The ScissorTest type discards fragments that fall outside of a
28 certain rectangular portion of the screen.
29 \since 5.7
30 \ingroup renderstates
31 \inqmlmodule Qt3D.Render
32 \instantiates Qt3DRender::QScissorTest
33 \inherits RenderState
34
35 A ScissorTest type enables scissor test, which discards fragments outside
36 the rectangular area of the screen specified by the left, bottom, width and
37 height properties.
38 */
39
40/*!
41 \qmlproperty int ScissorTest::left
42 Holds the left coordinate of the scissor box.
43*/
44
45/*!
46 \qmlproperty int ScissorTest::bottom
47 Holds the bottom coordinate of the scissor box.
48*/
49
50/*!
51 \qmlproperty int ScissorTest::width
52 Holds the width of the scissor box.
53*/
54
55/*!
56 \qmlproperty int ScissorTest::height
57 Holds the height of the scissor box.
58*/
59
60/*!
61 \property QScissorTest::left
62 Holds the left coordinate of the scissor box.
63*/
64
65/*!
66 \property QScissorTest::bottom
67 Holds the bottom coordinate of the scissor box.
68*/
69
70/*!
71 \property QScissorTest::width
72 Holds the width of the scissor box.
73*/
74
75/*!
76 \property QScissorTest::height
77 Holds the height of the scissor box.
78*/
79
80/*!
81 The constructor creates a new QScissorTest::QScissorTest instance with the
82 specified \a parent
83 */
84QScissorTest::QScissorTest(QNode *parent)
85 : QRenderState(*new QScissorTestPrivate, parent)
86{
87}
88
89/*! \internal */
90QScissorTest::~QScissorTest()
91{
92}
93
94int QScissorTest::left() const
95{
96 Q_D(const QScissorTest);
97 return d->m_left;
98}
99
100void QScissorTest::setLeft(int left)
101{
102 Q_D(QScissorTest);
103 if (d->m_left != left) {
104 d->m_left = left;
105 emit leftChanged(left);
106 }
107}
108
109int QScissorTest::bottom() const
110{
111 Q_D(const QScissorTest);
112 return d->m_bottom;
113}
114
115void QScissorTest::setBottom(int bottom)
116{
117 Q_D(QScissorTest);
118 if (d->m_bottom != bottom) {
119 d->m_bottom = bottom;
120 emit bottomChanged(bottom);
121 }
122}
123
124int QScissorTest::width() const
125{
126 Q_D(const QScissorTest);
127 return d->m_width;
128}
129
130void QScissorTest::setWidth(int width)
131{
132 Q_D(QScissorTest);
133 if (d->m_width != width) {
134 d->m_width = width;
135 emit widthChanged(width);
136 }
137}
138
139int QScissorTest::height() const
140{
141 Q_D(const QScissorTest);
142 return d->m_height;
143}
144
145void QScissorTest::setHeight(int height)
146{
147 Q_D(QScissorTest);
148 if (d->m_height != height) {
149 d->m_height = height;
150 emit heightChanged(height);
151 }
152}
153
154} // namespace Qt3DRender
155
156QT_END_NAMESPACE
157
158#include "moc_qscissortest.cpp"
159

source code of qt3d/src/render/renderstates/qscissortest.cpp