4#ifndef QCOLORTRANSFERFUNCTION_P_H
5#define QCOLORTRANSFERFUNCTION_P_H
18#include <QtGui/private/qtguiglobal_p.h>
29 : m_a(1.0
f), m_b(0.0
f), m_c(1.0
f), m_d(0.0
f), m_e(0.0
f), m_f(0.0
f), m_g(1.0
f), m_flags(0)
32 : m_a(
a), m_b(
b), m_c(
c), m_d(
d), m_e(
e), m_f(
f), m_g(
g), m_flags(0)
38 return m_flags &
quint32(Hints::IsGamma);
43 return m_flags &
quint32(Hints::IsLinear);
48 return m_flags &
quint32(Hints::IsSRgb);
56 return std::pow(m_a *
x + m_b, m_g) + m_e;
74 a = std::pow(1.0f / m_a, m_g);
103 return paramCompare(m_a,
o.m_a) && paramCompare(m_b,
o.m_b)
104 && paramCompare(m_c,
o.m_c) && paramCompare(m_d,
o.m_d)
105 && paramCompare(m_e,
o.m_e) && paramCompare(m_f,
o.m_f)
106 && paramCompare(m_g,
o.m_g);
120 static inline bool paramCompare(
float p1,
float p2)
125 return (
qAbs(
p1 -
p2) <= (1.0f / 512.0f));
128 void updateHints()
const
130 if (m_flags &
quint32(Hints::Calculated))
134 bool simple = paramCompare(m_a, 1.0f) && paramCompare(m_b, 0.0f)
135 && paramCompare(m_d, 0.0f)
136 && paramCompare(m_e, 0.0f);
138 m_flags |=
quint32(Hints::IsGamma);
140 m_flags |=
quint32(Hints::IsLinear);
142 if (*
this == fromSRgb())
143 m_flags |=
quint32(Hints::IsSRgb);
145 m_flags |=
quint32(Hints::Calculated);
QColorTransferFunction inverted() const
QColorTransferFunction(float a, float b, float c, float d, float e, float f, float g) noexcept
static QColorTransferFunction fromGamma(float gamma)
bool matches(const QColorTransferFunction &o) const
static QColorTransferFunction fromProPhotoRgb()
float apply(float x) const
QColorTransferFunction() noexcept
static QColorTransferFunction fromSRgb()
Combined button and popup list for selecting options.
bool operator!=(const QColorTransferFunction &f1, const QColorTransferFunction &f2)
bool operator==(const QColorTransferFunction &f1, const QColorTransferFunction &f2)
constexpr bool operator!=(const timespec &t1, const timespec &t2)
bool qFuzzyCompare(qfloat16 p1, qfloat16 p2) noexcept
bool qFuzzyIsNull(qfloat16 f) noexcept
constexpr T qAbs(const T &t)
GLboolean GLboolean GLboolean b
GLint GLint GLint GLint GLint x
[0]
GLboolean GLboolean GLboolean GLboolean a
[7]
bool operator==(const QRandomGenerator &rng1, const QRandomGenerator &rng2)