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#include "qdithering.h"
42#include "qrenderstate_p.h"
43#include <private/qnode_p.h>
44
45QT_BEGIN_NAMESPACE
46
47namespace Qt3DRender {
48
49/*!
50 \class Qt3DRender::QDithering
51 \since 5.7
52 \inmodule Qt3DRender
53 \brief Enable dithering.
54
55 A Qt3DRender::QDithering class enables dithering. Dithering adds noise to the
56 color values to randomize quantization error in order to prevent large scale
57 patterns in the final image, such as banding. Dithering is most useful when
58 rendering to a surface with low color bit depth, such as RGB565 or RGBA4444.
59 */
60
61/*!
62 \qmltype Dithering
63 \since 5.7
64 \inqmlmodule Qt3D.Render
65 \inherits RenderState
66 \instantiates Qt3DRender::QDithering
67 \brief Enable dithering.
68
69 A Dithering type enables dithering. Dithering adds noise to the
70 color values to randomize quantization error in order to prevent large scale
71 patterns in the final image, such as banding. Dithering is most useful when
72 rendering to a surface with low color bit depth, such as RGB565 or RGBA4444.
73 */
74
75class QDitheringPrivate : public QRenderStatePrivate
76{
77public:
78 QDitheringPrivate()
79 : QRenderStatePrivate(Render::DitheringStateMask)
80 {}
81
82 Q_DECLARE_PUBLIC(QDithering)
83};
84
85/*!
86 The constructor creates a new QDithering::QDithering instance with
87 the specified \a parent.
88 */
89QDithering::QDithering(QNode *parent)
90 : QRenderState(*new QDitheringPrivate, parent)
91{
92}
93
94/*! \internal */
95QDithering::~QDithering()
96{
97}
98
99} // namespace Qt3DRender
100
101QT_END_NAMESPACE
102

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