summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qrgbaf.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/painting/qrgbaf.h')
-rw-r--r--src/gui/painting/qrgbaf.h135
1 files changed, 0 insertions, 135 deletions
diff --git a/src/gui/painting/qrgbaf.h b/src/gui/painting/qrgbaf.h
deleted file mode 100644
index da6d0a3646..0000000000
--- a/src/gui/painting/qrgbaf.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QRGBAF_H
-#define QRGBAF_H
-
-#include <QtGui/qtguiglobal.h>
-#include <QtCore/qfloat16.h>
-
-#include <algorithm>
-#include <cmath>
-
-QT_BEGIN_NAMESPACE
-
-template<typename F>
-class alignas(sizeof(F) * 4) QRgbaF {
-public:
- F r;
- F g;
- F b;
- F a;
-
- static constexpr
- QRgbaF fromRgba64(quint16 red, quint16 green, quint16 blue, quint16 alpha)
- {
- return QRgbaF{
- red * (1.0f / 65535.0f),
- green * (1.0f / 65535.0f),
- blue * (1.0f / 65535.0f),
- alpha * (1.0f / 65535.0f) };
- }
-
- static constexpr
- QRgbaF fromRgba(quint8 red, quint8 green, quint8 blue, quint8 alpha)
- {
- return QRgbaF{
- red * (1.0f / 255.0f),
- green * (1.0f / 255.0f),
- blue * (1.0f / 255.0f),
- alpha * (1.0f / 255.0f) };
- }
- static constexpr
- QRgbaF fromArgb32(uint rgb)
- {
- return fromRgba(quint8(rgb >> 16), quint8(rgb >> 8), quint8(rgb), quint8(rgb >> 24));
- }
-
- constexpr bool isOpaque() const { return a >= 1.0f; }
- constexpr bool isTransparent() const { return a <= 0.0f; }
-
- constexpr float red() const { return r; }
- constexpr float green() const { return g; }
- constexpr float blue() const { return b; }
- constexpr float alpha() const { return a; }
- void setRed(float _red) { r = _red; }
- void setGreen(float _green) { g = _green; }
- void setBlue(float _blue) { b = _blue; }
- void setAlpha(float _alpha) { a = _alpha; }
-
- constexpr float redNormalized() const { return std::clamp(static_cast<float>(r), 0.0f, 1.0f); }
- constexpr float greenNormalized() const { return std::clamp(static_cast<float>(g), 0.0f, 1.0f); }
- constexpr float blueNormalized() const { return std::clamp(static_cast<float>(b), 0.0f, 1.0f); }
- constexpr float alphaNormalized() const { return std::clamp(static_cast<float>(a), 0.0f, 1.0f); }
-
- constexpr quint8 red8() const { return std::lround(redNormalized() * 255.0f); }
- constexpr quint8 green8() const { return std::lround(greenNormalized() * 255.0f); }
- constexpr quint8 blue8() const { return std::lround(blueNormalized() * 255.0f); }
- constexpr quint8 alpha8() const { return std::lround(alphaNormalized() * 255.0f); }
- constexpr uint toArgb32() const
- {
- return uint((alpha8() << 24) | (red8() << 16) | (green8() << 8) | blue8());
- }
-
- constexpr quint16 red16() const { return std::lround(redNormalized() * 65535.0f); }
- constexpr quint16 green16() const { return std::lround(greenNormalized() * 65535.0f); }
- constexpr quint16 blue16() const { return std::lround(blueNormalized() * 65535.0f); }
- constexpr quint16 alpha16() const { return std::lround(alphaNormalized() * 65535.0f); }
-
- constexpr Q_ALWAYS_INLINE QRgbaF premultiplied() const
- {
- return QRgbaF{r * a, g * a, b * a, a};
- }
- constexpr Q_ALWAYS_INLINE QRgbaF unpremultiplied() const
- {
- if (a <= 0.0f)
- return QRgbaF{0.0f, 0.0f, 0.0f, 0.0f};
- if (a >= 1.0f)
- return *this;
- const float ia = 1.0f / a;
- return QRgbaF{r * ia, g * ia, b * ia, a};
- }
-};
-
-typedef QRgbaF<float> QRgba32F;
-typedef QRgbaF<qfloat16> QRgba16F;
-
-QT_END_NAMESPACE
-
-#endif // QRGBAF_H