diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/image/qimage.cpp | 2 | ||||
-rw-r--r-- | src/gui/image/qimage_conversions.cpp | 4 | ||||
-rw-r--r-- | src/gui/image/qxpmhandler.cpp | 2 | ||||
-rw-r--r-- | src/gui/kernel/qkeysequence.cpp | 2 | ||||
-rw-r--r-- | src/gui/kernel/qpixelformat.h | 139 | ||||
-rw-r--r-- | src/gui/kernel/qpointingdevice.h | 4 | ||||
-rw-r--r-- | src/gui/math3d/qquaternion.h | 4 | ||||
-rw-r--r-- | src/gui/math3d/qvector2d.h | 76 | ||||
-rw-r--r-- | src/gui/math3d/qvector3d.h | 78 | ||||
-rw-r--r-- | src/gui/math3d/qvector4d.h | 84 | ||||
-rw-r--r-- | src/gui/painting/qbrush.cpp | 2 | ||||
-rw-r--r-- | src/gui/painting/qcolor.h | 10 | ||||
-rw-r--r-- | src/gui/painting/qcolormatrix_p.h | 12 | ||||
-rw-r--r-- | src/gui/painting/qdrawhelper.cpp | 2 | ||||
-rw-r--r-- | src/gui/painting/qdrawhelper_p.h | 10 | ||||
-rw-r--r-- | src/gui/painting/qdrawingprimitive_sse2_p.h | 2 | ||||
-rw-r--r-- | src/gui/painting/qfixed_p.h | 136 | ||||
-rw-r--r-- | src/gui/painting/qpixellayout.cpp | 370 | ||||
-rw-r--r-- | src/gui/painting/qpixellayout_p.h | 4 | ||||
-rw-r--r-- | src/gui/painting/qrgb.h | 20 | ||||
-rw-r--r-- | src/gui/painting/qrgba64.h | 66 | ||||
-rw-r--r-- | src/gui/painting/webgradients.cpp | 2 | ||||
-rw-r--r-- | src/gui/text/qtextengine_p.h | 4 |
23 files changed, 517 insertions, 518 deletions
diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index 84d8c5a705..188fb42b28 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -4884,7 +4884,7 @@ QDebug operator<<(QDebug dbg, const QImage &i) } #endif -static Q_CONSTEXPR QPixelFormat pixelformats[] = { +static constexpr QPixelFormat pixelformats[] = { //QImage::Format_Invalid: QPixelFormat(), //QImage::Format_Mono: diff --git a/src/gui/image/qimage_conversions.cpp b/src/gui/image/qimage_conversions.cpp index f0c1951b94..cb34dcf9b8 100644 --- a/src/gui/image/qimage_conversions.cpp +++ b/src/gui/image/qimage_conversions.cpp @@ -622,7 +622,7 @@ static bool convert_ARGB_to_RGBA_inplace(QImageData *data, Qt::ImageConversionFl const int pad = (data->bytes_per_line >> 2) - data->width; quint32 *rgb_data = (quint32 *) data->data; - Q_CONSTEXPR uint mask = (DestFormat == QImage::Format_RGBX8888) ? 0xff000000 : 0; + constexpr uint mask = (DestFormat == QImage::Format_RGBX8888) ? 0xff000000 : 0; for (int i = 0; i < data->height; ++i) { const quint32 *end = rgb_data + data->width; @@ -668,7 +668,7 @@ static bool convert_RGBA_to_ARGB_inplace(QImageData *data, Qt::ImageConversionFl const int pad = (data->bytes_per_line >> 2) - data->width; QRgb *rgb_data = (QRgb *) data->data; - Q_CONSTEXPR uint mask = (DestFormat == QImage::Format_RGB32) ? 0xff000000 : 0; + constexpr uint mask = (DestFormat == QImage::Format_RGB32) ? 0xff000000 : 0; for (int i = 0; i < data->height; ++i) { const QRgb *end = rgb_data + data->width; diff --git a/src/gui/image/qxpmhandler.cpp b/src/gui/image/qxpmhandler.cpp index 4fe39da532..1211266721 100644 --- a/src/gui/image/qxpmhandler.cpp +++ b/src/gui/image/qxpmhandler.cpp @@ -1041,7 +1041,7 @@ bool qt_read_xpm_image_or_array(QIODevice *device, const char * const * source, if ((readBytes = device->readLine(buf.data(), buf.size())) < 0) return false; - static Q_RELAXED_CONSTEXPR auto matcher = qMakeStaticByteArrayMatcher("/* XPM"); + static constexpr auto matcher = qMakeStaticByteArrayMatcher("/* XPM"); if (matcher.indexIn(buf) != 0) { while (readBytes > 0) { diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp index aa09ab8427..649673003d 100644 --- a/src/gui/kernel/qkeysequence.cpp +++ b/src/gui/kernel/qkeysequence.cpp @@ -701,7 +701,7 @@ static const struct { { Qt::Key_TouchpadOff, QT_TRANSLATE_NOOP("QShortcut", "Touchpad Off") }, }; -static Q_CONSTEXPR int numKeyNames = sizeof keyname / sizeof *keyname; +static constexpr int numKeyNames = sizeof keyname / sizeof *keyname; /*! \enum QKeySequence::StandardKey diff --git a/src/gui/kernel/qpixelformat.h b/src/gui/kernel/qpixelformat.h index a0bb300c12..b48ed40812 100644 --- a/src/gui/kernel/qpixelformat.h +++ b/src/gui/kernel/qpixelformat.h @@ -95,9 +95,9 @@ class QPixelFormat static_assert(uint(TotalFieldWidthByWidths) == uint(TotalFieldWidthByOffsets)); static_assert(uint(TotalFieldWidthByWidths) == 8 * sizeof(quint64)); - Q_DECL_CONSTEXPR inline uchar get(Field offset, FieldWidth width) const noexcept + constexpr inline uchar get(Field offset, FieldWidth width) const noexcept { return uchar((data >> uint(offset)) & ((Q_UINT64_C(1) << uint(width)) - Q_UINT64_C(1))); } - Q_DECL_CONSTEXPR static inline quint64 set(Field offset, FieldWidth width, uchar value) + constexpr static inline quint64 set(Field offset, FieldWidth width, uchar value) { return (quint64(value) & ((Q_UINT64_C(1) << uint(width)) - Q_UINT64_C(1))) << uint(offset); } public: @@ -160,8 +160,8 @@ public: CurrentSystemEndian }; - Q_DECL_CONSTEXPR inline QPixelFormat() noexcept : data(0) {} - Q_DECL_CONSTEXPR inline QPixelFormat(ColorModel colorModel, + constexpr inline QPixelFormat() noexcept : data(0) {} + constexpr inline QPixelFormat(ColorModel colorModel, uchar firstSize, uchar secondSize, uchar thirdSize, @@ -175,57 +175,57 @@ public: ByteOrder byteOrder = CurrentSystemEndian, uchar subEnum = 0) noexcept; - Q_DECL_CONSTEXPR inline ColorModel colorModel() const noexcept { return ColorModel(get(ModelField, ModelFieldWidth)); } - Q_DECL_CONSTEXPR inline uchar channelCount() const noexcept { return (get(FirstField, FirstFieldWidth) > 0) + + constexpr inline ColorModel colorModel() const noexcept { return ColorModel(get(ModelField, ModelFieldWidth)); } + constexpr inline uchar channelCount() const noexcept { return (get(FirstField, FirstFieldWidth) > 0) + (get(SecondField, SecondFieldWidth) > 0) + (get(ThirdField, ThirdFieldWidth) > 0) + (get(FourthField, FourthFieldWidth) > 0) + (get(FifthField, FifthFieldWidth) > 0) + (get(AlphaField, AlphaFieldWidth) > 0); } - Q_DECL_CONSTEXPR inline uchar redSize() const noexcept { return get(FirstField, FirstFieldWidth); } - Q_DECL_CONSTEXPR inline uchar greenSize() const noexcept { return get(SecondField, SecondFieldWidth); } - Q_DECL_CONSTEXPR inline uchar blueSize() const noexcept { return get(ThirdField, ThirdFieldWidth); } + constexpr inline uchar redSize() const noexcept { return get(FirstField, FirstFieldWidth); } + constexpr inline uchar greenSize() const noexcept { return get(SecondField, SecondFieldWidth); } + constexpr inline uchar blueSize() const noexcept { return get(ThirdField, ThirdFieldWidth); } - Q_DECL_CONSTEXPR inline uchar cyanSize() const noexcept { return get(FirstField, FirstFieldWidth); } - Q_DECL_CONSTEXPR inline uchar magentaSize() const noexcept { return get(SecondField, SecondFieldWidth); } - Q_DECL_CONSTEXPR inline uchar yellowSize() const noexcept { return get(ThirdField, ThirdFieldWidth); } - Q_DECL_CONSTEXPR inline uchar blackSize() const noexcept { return get(FourthField, FourthFieldWidth); } + constexpr inline uchar cyanSize() const noexcept { return get(FirstField, FirstFieldWidth); } + constexpr inline uchar magentaSize() const noexcept { return get(SecondField, SecondFieldWidth); } + constexpr inline uchar yellowSize() const noexcept { return get(ThirdField, ThirdFieldWidth); } + constexpr inline uchar blackSize() const noexcept { return get(FourthField, FourthFieldWidth); } - Q_DECL_CONSTEXPR inline uchar hueSize() const noexcept { return get(FirstField, FirstFieldWidth); } - Q_DECL_CONSTEXPR inline uchar saturationSize() const noexcept { return get(SecondField, SecondFieldWidth); } - Q_DECL_CONSTEXPR inline uchar lightnessSize() const noexcept { return get(ThirdField, ThirdFieldWidth); } - Q_DECL_CONSTEXPR inline uchar brightnessSize() const noexcept { return get(ThirdField, ThirdFieldWidth); } + constexpr inline uchar hueSize() const noexcept { return get(FirstField, FirstFieldWidth); } + constexpr inline uchar saturationSize() const noexcept { return get(SecondField, SecondFieldWidth); } + constexpr inline uchar lightnessSize() const noexcept { return get(ThirdField, ThirdFieldWidth); } + constexpr inline uchar brightnessSize() const noexcept { return get(ThirdField, ThirdFieldWidth); } - Q_DECL_CONSTEXPR inline uchar alphaSize() const noexcept { return get(AlphaField, AlphaFieldWidth); } + constexpr inline uchar alphaSize() const noexcept { return get(AlphaField, AlphaFieldWidth); } - Q_DECL_CONSTEXPR inline uchar bitsPerPixel() const noexcept { return get(FirstField, FirstFieldWidth) + + constexpr inline uchar bitsPerPixel() const noexcept { return get(FirstField, FirstFieldWidth) + get(SecondField, SecondFieldWidth) + get(ThirdField, ThirdFieldWidth) + get(FourthField, FourthFieldWidth) + get(FifthField, FifthFieldWidth) + get(AlphaField, AlphaFieldWidth); } - Q_DECL_CONSTEXPR inline AlphaUsage alphaUsage() const noexcept { return AlphaUsage(get(AlphaUsageField, AlphaUsageFieldWidth)); } - Q_DECL_CONSTEXPR inline AlphaPosition alphaPosition() const noexcept { return AlphaPosition(get(AlphaPositionField, AlphaPositionFieldWidth)); } - Q_DECL_CONSTEXPR inline AlphaPremultiplied premultiplied() const noexcept { return AlphaPremultiplied(get(PremulField, PremulFieldWidth)); } - Q_DECL_CONSTEXPR inline TypeInterpretation typeInterpretation() const noexcept { return TypeInterpretation(get(TypeInterpretationField, TypeInterpretationFieldWidth)); } - Q_DECL_CONSTEXPR inline ByteOrder byteOrder() const noexcept { return ByteOrder(get(ByteOrderField, ByteOrderFieldWidth)); } + constexpr inline AlphaUsage alphaUsage() const noexcept { return AlphaUsage(get(AlphaUsageField, AlphaUsageFieldWidth)); } + constexpr inline AlphaPosition alphaPosition() const noexcept { return AlphaPosition(get(AlphaPositionField, AlphaPositionFieldWidth)); } + constexpr inline AlphaPremultiplied premultiplied() const noexcept { return AlphaPremultiplied(get(PremulField, PremulFieldWidth)); } + constexpr inline TypeInterpretation typeInterpretation() const noexcept { return TypeInterpretation(get(TypeInterpretationField, TypeInterpretationFieldWidth)); } + constexpr inline ByteOrder byteOrder() const noexcept { return ByteOrder(get(ByteOrderField, ByteOrderFieldWidth)); } - Q_DECL_CONSTEXPR inline YUVLayout yuvLayout() const noexcept { return YUVLayout(get(SubEnumField, SubEnumFieldWidth)); } - Q_DECL_CONSTEXPR inline uchar subEnum() const noexcept { return get(SubEnumField, SubEnumFieldWidth); } + constexpr inline YUVLayout yuvLayout() const noexcept { return YUVLayout(get(SubEnumField, SubEnumFieldWidth)); } + constexpr inline uchar subEnum() const noexcept { return get(SubEnumField, SubEnumFieldWidth); } private: - Q_DECL_CONSTEXPR static inline ByteOrder resolveByteOrder(ByteOrder bo) + constexpr static inline ByteOrder resolveByteOrder(ByteOrder bo) { return bo == CurrentSystemEndian ? Q_BYTE_ORDER == Q_LITTLE_ENDIAN ? LittleEndian : BigEndian : bo ; } private: quint64 data; - friend Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline bool operator==(QPixelFormat fmt1, QPixelFormat fmt2) + friend Q_DECL_CONST_FUNCTION constexpr inline bool operator==(QPixelFormat fmt1, QPixelFormat fmt2) { return fmt1.data == fmt2.data; } - friend Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline bool operator!=(QPixelFormat fmt1, QPixelFormat fmt2) + friend Q_DECL_CONST_FUNCTION constexpr inline bool operator!=(QPixelFormat fmt1, QPixelFormat fmt2) { return !(fmt1 == fmt2); } }; static_assert(sizeof(QPixelFormat) == sizeof(quint64)); @@ -242,20 +242,19 @@ namespace QtPrivate { QPixelFormat::ByteOrder byteOrder); } -Q_DECL_CONSTEXPR -QPixelFormat::QPixelFormat(ColorModel mdl, - uchar firstSize, - uchar secondSize, - uchar thirdSize, - uchar fourthSize, - uchar fifthSize, - uchar alfa, - AlphaUsage usage, - AlphaPosition position, - AlphaPremultiplied premult, - TypeInterpretation typeInterp, - ByteOrder b_order, - uchar s_enum) noexcept +constexpr QPixelFormat::QPixelFormat(ColorModel mdl, + uchar firstSize, + uchar secondSize, + uchar thirdSize, + uchar fourthSize, + uchar fifthSize, + uchar alfa, + AlphaUsage usage, + AlphaPosition position, + AlphaPremultiplied premult, + TypeInterpretation typeInterp, + ByteOrder b_order, + uchar s_enum) noexcept : data(set(ModelField, ModelFieldWidth, uchar(mdl)) | set(FirstField, FirstFieldWidth, firstSize) | set(SecondField, SecondFieldWidth, secondSize) | @@ -273,14 +272,14 @@ QPixelFormat::QPixelFormat(ColorModel mdl, { } -Q_DECL_CONSTEXPR inline QPixelFormat qPixelFormatRgba(uchar red, - uchar green, - uchar blue, - uchar alfa, - QPixelFormat::AlphaUsage usage, - QPixelFormat::AlphaPosition position, - QPixelFormat::AlphaPremultiplied pmul=QPixelFormat::NotPremultiplied, - QPixelFormat::TypeInterpretation typeInt=QPixelFormat::UnsignedInteger) noexcept +constexpr inline QPixelFormat qPixelFormatRgba(uchar red, + uchar green, + uchar blue, + uchar alfa, + QPixelFormat::AlphaUsage usage, + QPixelFormat::AlphaPosition position, + QPixelFormat::AlphaPremultiplied pmul=QPixelFormat::NotPremultiplied, + QPixelFormat::TypeInterpretation typeInt=QPixelFormat::UnsignedInteger) noexcept { return QPixelFormat(QPixelFormat::RGB, red, @@ -295,8 +294,8 @@ Q_DECL_CONSTEXPR inline QPixelFormat qPixelFormatRgba(uchar red, typeInt); } -Q_DECL_CONSTEXPR inline QPixelFormat qPixelFormatGrayscale(uchar channelSize, - QPixelFormat::TypeInterpretation typeInt=QPixelFormat::UnsignedInteger) noexcept +constexpr inline QPixelFormat qPixelFormatGrayscale(uchar channelSize, + QPixelFormat::TypeInterpretation typeInt=QPixelFormat::UnsignedInteger) noexcept { return QPixelFormat(QPixelFormat::Grayscale, channelSize, @@ -311,8 +310,8 @@ Q_DECL_CONSTEXPR inline QPixelFormat qPixelFormatGrayscale(uchar channelSize, typeInt); } -Q_DECL_CONSTEXPR inline QPixelFormat qPixelFormatAlpha(uchar channelSize, - QPixelFormat::TypeInterpretation typeInt=QPixelFormat::UnsignedInteger) noexcept +constexpr inline QPixelFormat qPixelFormatAlpha(uchar channelSize, + QPixelFormat::TypeInterpretation typeInt=QPixelFormat::UnsignedInteger) noexcept { return QPixelFormat(QPixelFormat::Alpha, 0, @@ -327,11 +326,11 @@ Q_DECL_CONSTEXPR inline QPixelFormat qPixelFormatAlpha(uchar channelSize, typeInt); } -Q_DECL_CONSTEXPR inline QPixelFormat qPixelFormatCmyk(uchar channelSize, - uchar alfa=0, - QPixelFormat::AlphaUsage usage=QPixelFormat::IgnoresAlpha, - QPixelFormat::AlphaPosition position=QPixelFormat::AtBeginning, - QPixelFormat::TypeInterpretation typeInt=QPixelFormat::UnsignedInteger) noexcept +constexpr inline QPixelFormat qPixelFormatCmyk(uchar channelSize, + uchar alfa=0, + QPixelFormat::AlphaUsage usage=QPixelFormat::IgnoresAlpha, + QPixelFormat::AlphaPosition position=QPixelFormat::AtBeginning, + QPixelFormat::TypeInterpretation typeInt=QPixelFormat::UnsignedInteger) noexcept { return QPixelFormat(QPixelFormat::CMYK, channelSize, @@ -346,11 +345,11 @@ Q_DECL_CONSTEXPR inline QPixelFormat qPixelFormatCmyk(uchar channelSize, typeInt); } -Q_DECL_CONSTEXPR inline QPixelFormat qPixelFormatHsl(uchar channelSize, - uchar alfa=0, - QPixelFormat::AlphaUsage usage=QPixelFormat::IgnoresAlpha, - QPixelFormat::AlphaPosition position=QPixelFormat::AtBeginning, - QPixelFormat::TypeInterpretation typeInt=QPixelFormat::FloatingPoint) noexcept +constexpr inline QPixelFormat qPixelFormatHsl(uchar channelSize, + uchar alfa=0, + QPixelFormat::AlphaUsage usage=QPixelFormat::IgnoresAlpha, + QPixelFormat::AlphaPosition position=QPixelFormat::AtBeginning, + QPixelFormat::TypeInterpretation typeInt=QPixelFormat::FloatingPoint) noexcept { return QPixelFormat(QPixelFormat::HSL, channelSize, @@ -365,11 +364,11 @@ Q_DECL_CONSTEXPR inline QPixelFormat qPixelFormatHsl(uchar channelSize, typeInt); } -Q_DECL_CONSTEXPR inline QPixelFormat qPixelFormatHsv(uchar channelSize, - uchar alfa=0, - QPixelFormat::AlphaUsage usage=QPixelFormat::IgnoresAlpha, - QPixelFormat::AlphaPosition position=QPixelFormat::AtBeginning, - QPixelFormat::TypeInterpretation typeInt=QPixelFormat::FloatingPoint) noexcept +constexpr inline QPixelFormat qPixelFormatHsv(uchar channelSize, + uchar alfa=0, + QPixelFormat::AlphaUsage usage=QPixelFormat::IgnoresAlpha, + QPixelFormat::AlphaPosition position=QPixelFormat::AtBeginning, + QPixelFormat::TypeInterpretation typeInt=QPixelFormat::FloatingPoint) noexcept { return QPixelFormat(QPixelFormat::HSV, channelSize, diff --git a/src/gui/kernel/qpointingdevice.h b/src/gui/kernel/qpointingdevice.h index cdc31fa914..37851d70a7 100644 --- a/src/gui/kernel/qpointingdevice.h +++ b/src/gui/kernel/qpointingdevice.h @@ -56,13 +56,13 @@ class Q_GUI_EXPORT QPointingDeviceUniqueId Q_PROPERTY(qint64 numericId READ numericId CONSTANT) public: Q_ALWAYS_INLINE - Q_DECL_CONSTEXPR QPointingDeviceUniqueId() noexcept : m_numericId(-1) {} + constexpr QPointingDeviceUniqueId() noexcept : m_numericId(-1) {} // compiler-generated copy/move ctor/assignment operators are ok! // compiler-generated dtor is ok! static QPointingDeviceUniqueId fromNumericId(qint64 id); - Q_ALWAYS_INLINE Q_DECL_CONSTEXPR bool isValid() const noexcept { return m_numericId != -1; } + Q_ALWAYS_INLINE constexpr bool isValid() const noexcept { return m_numericId != -1; } qint64 numericId() const noexcept; private: diff --git a/src/gui/math3d/qquaternion.h b/src/gui/math3d/qquaternion.h index f862e6174c..12d62e8f50 100644 --- a/src/gui/math3d/qquaternion.h +++ b/src/gui/math3d/qquaternion.h @@ -85,7 +85,7 @@ public: void setZ(float z); void setScalar(float scalar); - Q_DECL_CONSTEXPR static inline float dotProduct(const QQuaternion &q1, const QQuaternion &q2); + constexpr static inline float dotProduct(const QQuaternion &q1, const QQuaternion &q2); float length() const; float lengthSquared() const; @@ -197,7 +197,7 @@ inline void QQuaternion::setY(float aY) { yp = aY; } inline void QQuaternion::setZ(float aZ) { zp = aZ; } inline void QQuaternion::setScalar(float aScalar) { wp = aScalar; } -Q_DECL_CONSTEXPR inline float QQuaternion::dotProduct(const QQuaternion &q1, const QQuaternion &q2) +constexpr inline float QQuaternion::dotProduct(const QQuaternion &q1, const QQuaternion &q2) { return q1.wp * q2.wp + q1.xp * q2.xp + q1.yp * q2.yp + q1.zp * q2.zp; } diff --git a/src/gui/math3d/qvector2d.h b/src/gui/math3d/qvector2d.h index 65ad2a3afd..983f236f84 100644 --- a/src/gui/math3d/qvector2d.h +++ b/src/gui/math3d/qvector2d.h @@ -56,11 +56,11 @@ class QVariant; class Q_GUI_EXPORT QVector2D { public: - Q_DECL_CONSTEXPR QVector2D(); + constexpr QVector2D(); explicit QVector2D(Qt::Initialization) {} - Q_DECL_CONSTEXPR QVector2D(float xpos, float ypos); - Q_DECL_CONSTEXPR explicit QVector2D(const QPoint& point); - Q_DECL_CONSTEXPR explicit QVector2D(const QPointF& point); + constexpr QVector2D(float xpos, float ypos); + constexpr explicit QVector2D(const QPoint& point); + constexpr explicit QVector2D(const QPointF& point); #ifndef QT_NO_VECTOR3D explicit QVector2D(const QVector3D& vector); #endif @@ -70,8 +70,8 @@ public: bool isNull() const; - Q_DECL_CONSTEXPR float x() const; - Q_DECL_CONSTEXPR float y() const; + constexpr float x() const; + constexpr float y() const; void setX(float x); void setY(float y); @@ -97,18 +97,18 @@ public: static float dotProduct(const QVector2D& v1, const QVector2D& v2); //In Qt 6 convert to inline and constexpr - Q_DECL_CONSTEXPR friend inline bool operator==(const QVector2D &v1, const QVector2D &v2); - Q_DECL_CONSTEXPR friend inline bool operator!=(const QVector2D &v1, const QVector2D &v2); - Q_DECL_CONSTEXPR friend inline const QVector2D operator+(const QVector2D &v1, const QVector2D &v2); - Q_DECL_CONSTEXPR friend inline const QVector2D operator-(const QVector2D &v1, const QVector2D &v2); - Q_DECL_CONSTEXPR friend inline const QVector2D operator*(float factor, const QVector2D &vector); - Q_DECL_CONSTEXPR friend inline const QVector2D operator*(const QVector2D &vector, float factor); - Q_DECL_CONSTEXPR friend inline const QVector2D operator*(const QVector2D &v1, const QVector2D &v2); - Q_DECL_CONSTEXPR friend inline const QVector2D operator-(const QVector2D &vector); - Q_DECL_CONSTEXPR friend inline const QVector2D operator/(const QVector2D &vector, float divisor); - Q_DECL_CONSTEXPR friend inline const QVector2D operator/(const QVector2D &vector, const QVector2D &divisor); + constexpr friend inline bool operator==(const QVector2D &v1, const QVector2D &v2); + constexpr friend inline bool operator!=(const QVector2D &v1, const QVector2D &v2); + constexpr friend inline const QVector2D operator+(const QVector2D &v1, const QVector2D &v2); + constexpr friend inline const QVector2D operator-(const QVector2D &v1, const QVector2D &v2); + constexpr friend inline const QVector2D operator*(float factor, const QVector2D &vector); + constexpr friend inline const QVector2D operator*(const QVector2D &vector, float factor); + constexpr friend inline const QVector2D operator*(const QVector2D &v1, const QVector2D &v2); + constexpr friend inline const QVector2D operator-(const QVector2D &vector); + constexpr friend inline const QVector2D operator/(const QVector2D &vector, float divisor); + constexpr friend inline const QVector2D operator/(const QVector2D &vector, const QVector2D &divisor); - Q_DECL_CONSTEXPR friend inline bool qFuzzyCompare(const QVector2D& v1, const QVector2D& v2); + constexpr friend inline bool qFuzzyCompare(const QVector2D& v1, const QVector2D& v2); #ifndef QT_NO_VECTOR3D QVector3D toVector3D() const; @@ -117,8 +117,8 @@ public: QVector4D toVector4D() const; #endif - Q_DECL_CONSTEXPR QPoint toPoint() const; - Q_DECL_CONSTEXPR QPointF toPointF() const; + constexpr QPoint toPoint() const; + constexpr QPointF toPointF() const; operator QVariant() const; @@ -131,21 +131,21 @@ private: Q_DECLARE_TYPEINFO(QVector2D, Q_PRIMITIVE_TYPE); -Q_DECL_CONSTEXPR inline QVector2D::QVector2D() : v{0.0f, 0.0f} {} +constexpr inline QVector2D::QVector2D() : v{0.0f, 0.0f} {} -Q_DECL_CONSTEXPR inline QVector2D::QVector2D(float xpos, float ypos) : v{xpos, ypos} {} +constexpr inline QVector2D::QVector2D(float xpos, float ypos) : v{xpos, ypos} {} -Q_DECL_CONSTEXPR inline QVector2D::QVector2D(const QPoint& point) : v{float(point.x()), float(point.y())} {} +constexpr inline QVector2D::QVector2D(const QPoint& point) : v{float(point.x()), float(point.y())} {} -Q_DECL_CONSTEXPR inline QVector2D::QVector2D(const QPointF& point) : v{float(point.x()), float(point.y())} {} +constexpr inline QVector2D::QVector2D(const QPointF& point) : v{float(point.x()), float(point.y())} {} inline bool QVector2D::isNull() const { return qIsNull(v[0]) && qIsNull(v[1]); } -Q_DECL_CONSTEXPR inline float QVector2D::x() const { return v[0]; } -Q_DECL_CONSTEXPR inline float QVector2D::y() const { return v[1]; } +constexpr inline float QVector2D::x() const { return v[0]; } +constexpr inline float QVector2D::y() const { return v[1]; } inline void QVector2D::setX(float aX) { v[0] = aX; } inline void QVector2D::setY(float aY) { v[1] = aY; } @@ -207,68 +207,68 @@ inline QVector2D &QVector2D::operator/=(const QVector2D &vector) QT_WARNING_PUSH QT_WARNING_DISABLE_FLOAT_COMPARE -Q_DECL_CONSTEXPR inline bool operator==(const QVector2D &v1, const QVector2D &v2) +constexpr inline bool operator==(const QVector2D &v1, const QVector2D &v2) { return v1.v[0] == v2.v[0] && v1.v[1] == v2.v[1]; } -Q_DECL_CONSTEXPR inline bool operator!=(const QVector2D &v1, const QVector2D &v2) +constexpr inline bool operator!=(const QVector2D &v1, const QVector2D &v2) { return v1.v[0] != v2.v[0] || v1.v[1] != v2.v[1]; } QT_WARNING_POP -Q_DECL_CONSTEXPR inline const QVector2D operator+(const QVector2D &v1, const QVector2D &v2) +constexpr inline const QVector2D operator+(const QVector2D &v1, const QVector2D &v2) { return QVector2D(v1.v[0] + v2.v[0], v1.v[1] + v2.v[1]); } -Q_DECL_CONSTEXPR inline const QVector2D operator-(const QVector2D &v1, const QVector2D &v2) +constexpr inline const QVector2D operator-(const QVector2D &v1, const QVector2D &v2) { return QVector2D(v1.v[0] - v2.v[0], v1.v[1] - v2.v[1]); } -Q_DECL_CONSTEXPR inline const QVector2D operator*(float factor, const QVector2D &vector) +constexpr inline const QVector2D operator*(float factor, const QVector2D &vector) { return QVector2D(vector.v[0] * factor, vector.v[1] * factor); } -Q_DECL_CONSTEXPR inline const QVector2D operator*(const QVector2D &vector, float factor) +constexpr inline const QVector2D operator*(const QVector2D &vector, float factor) { return QVector2D(vector.v[0] * factor, vector.v[1] * factor); } -Q_DECL_CONSTEXPR inline const QVector2D operator*(const QVector2D &v1, const QVector2D &v2) +constexpr inline const QVector2D operator*(const QVector2D &v1, const QVector2D &v2) { return QVector2D(v1.v[0] * v2.v[0], v1.v[1] * v2.v[1]); } -Q_DECL_CONSTEXPR inline const QVector2D operator-(const QVector2D &vector) +constexpr inline const QVector2D operator-(const QVector2D &vector) { return QVector2D(-vector.v[0], -vector.v[1]); } -Q_DECL_CONSTEXPR inline const QVector2D operator/(const QVector2D &vector, float divisor) +constexpr inline const QVector2D operator/(const QVector2D &vector, float divisor) { return QVector2D(vector.v[0] / divisor, vector.v[1] / divisor); } -Q_DECL_CONSTEXPR inline const QVector2D operator/(const QVector2D &vector, const QVector2D &divisor) +constexpr inline const QVector2D operator/(const QVector2D &vector, const QVector2D &divisor) { return QVector2D(vector.v[0] / divisor.v[0], vector.v[1] / divisor.v[1]); } -Q_DECL_CONSTEXPR inline bool qFuzzyCompare(const QVector2D& v1, const QVector2D& v2) +constexpr inline bool qFuzzyCompare(const QVector2D& v1, const QVector2D& v2) { return qFuzzyCompare(v1.v[0], v2.v[0]) && qFuzzyCompare(v1.v[1], v2.v[1]); } -Q_DECL_CONSTEXPR inline QPoint QVector2D::toPoint() const +constexpr inline QPoint QVector2D::toPoint() const { return QPoint(qRound(v[0]), qRound(v[1])); } -Q_DECL_CONSTEXPR inline QPointF QVector2D::toPointF() const +constexpr inline QPointF QVector2D::toPointF() const { return QPointF(qreal(v[0]), qreal(v[1])); } diff --git a/src/gui/math3d/qvector3d.h b/src/gui/math3d/qvector3d.h index 9eb2e7e7e6..ecfdf82239 100644 --- a/src/gui/math3d/qvector3d.h +++ b/src/gui/math3d/qvector3d.h @@ -57,12 +57,12 @@ class QRect; class Q_GUI_EXPORT QVector3D { public: - Q_DECL_CONSTEXPR QVector3D(); + constexpr QVector3D(); explicit QVector3D(Qt::Initialization) {} - Q_DECL_CONSTEXPR QVector3D(float xpos, float ypos, float zpos) : v{xpos, ypos, zpos} {} + constexpr QVector3D(float xpos, float ypos, float zpos) : v{xpos, ypos, zpos} {} - Q_DECL_CONSTEXPR explicit QVector3D(const QPoint& point); - Q_DECL_CONSTEXPR explicit QVector3D(const QPointF& point); + constexpr explicit QVector3D(const QPoint& point); + constexpr explicit QVector3D(const QPointF& point); #ifndef QT_NO_VECTOR2D QVector3D(const QVector2D& vector); QVector3D(const QVector2D& vector, float zpos); @@ -73,9 +73,9 @@ public: bool isNull() const; - Q_DECL_CONSTEXPR float x() const; - Q_DECL_CONSTEXPR float y() const; - Q_DECL_CONSTEXPR float z() const; + constexpr float x() const; + constexpr float y() const; + constexpr float z() const; void setX(float x); void setY(float y); @@ -112,18 +112,18 @@ public: float distanceToPlane(const QVector3D& plane1, const QVector3D& plane2, const QVector3D& plane3) const; float distanceToLine(const QVector3D& point, const QVector3D& direction) const; - Q_DECL_CONSTEXPR friend inline bool operator==(const QVector3D &v1, const QVector3D &v2); - Q_DECL_CONSTEXPR friend inline bool operator!=(const QVector3D &v1, const QVector3D &v2); - Q_DECL_CONSTEXPR friend inline const QVector3D operator+(const QVector3D &v1, const QVector3D &v2); - Q_DECL_CONSTEXPR friend inline const QVector3D operator-(const QVector3D &v1, const QVector3D &v2); - Q_DECL_CONSTEXPR friend inline const QVector3D operator*(float factor, const QVector3D &vector); - Q_DECL_CONSTEXPR friend inline const QVector3D operator*(const QVector3D &vector, float factor); - Q_DECL_CONSTEXPR friend const QVector3D operator*(const QVector3D &v1, const QVector3D& v2); - Q_DECL_CONSTEXPR friend inline const QVector3D operator-(const QVector3D &vector); - Q_DECL_CONSTEXPR friend inline const QVector3D operator/(const QVector3D &vector, float divisor); - Q_DECL_CONSTEXPR friend inline const QVector3D operator/(const QVector3D &vector, const QVector3D &divisor); + constexpr friend inline bool operator==(const QVector3D &v1, const QVector3D &v2); + constexpr friend inline bool operator!=(const QVector3D &v1, const QVector3D &v2); + constexpr friend inline const QVector3D operator+(const QVector3D &v1, const QVector3D &v2); + constexpr friend inline const QVector3D operator-(const QVector3D &v1, const QVector3D &v2); + constexpr friend inline const QVector3D operator*(float factor, const QVector3D &vector); + constexpr friend inline const QVector3D operator*(const QVector3D &vector, float factor); + constexpr friend const QVector3D operator*(const QVector3D &v1, const QVector3D& v2); + constexpr friend inline const QVector3D operator-(const QVector3D &vector); + constexpr friend inline const QVector3D operator/(const QVector3D &vector, float divisor); + constexpr friend inline const QVector3D operator/(const QVector3D &vector, const QVector3D &divisor); - Q_DECL_CONSTEXPR friend inline bool qFuzzyCompare(const QVector3D& v1, const QVector3D& v2); + constexpr friend inline bool qFuzzyCompare(const QVector3D& v1, const QVector3D& v2); #ifndef QT_NO_VECTOR2D QVector2D toVector2D() const; @@ -132,8 +132,8 @@ public: QVector4D toVector4D() const; #endif - Q_DECL_CONSTEXPR QPoint toPoint() const; - Q_DECL_CONSTEXPR QPointF toPointF() const; + constexpr QPoint toPoint() const; + constexpr QPointF toPointF() const; operator QVariant() const; @@ -150,20 +150,20 @@ private: Q_DECLARE_TYPEINFO(QVector3D, Q_PRIMITIVE_TYPE); -Q_DECL_CONSTEXPR inline QVector3D::QVector3D() : v{0.0f, 0.0f, 0.0f} {} +constexpr inline QVector3D::QVector3D() : v{0.0f, 0.0f, 0.0f} {} -Q_DECL_CONSTEXPR inline QVector3D::QVector3D(const QPoint& point) : v{float(point.x()), float(point.y()), float(0.0f)} {} +constexpr inline QVector3D::QVector3D(const QPoint& point) : v{float(point.x()), float(point.y()), float(0.0f)} {} -Q_DECL_CONSTEXPR inline QVector3D::QVector3D(const QPointF& point) : v{float(point.x()), float(point.y()), 0.0f} {} +constexpr inline QVector3D::QVector3D(const QPointF& point) : v{float(point.x()), float(point.y()), 0.0f} {} inline bool QVector3D::isNull() const { return qIsNull(v[0]) && qIsNull(v[1]) && qIsNull(v[2]); } -Q_DECL_CONSTEXPR inline float QVector3D::x() const { return v[0]; } -Q_DECL_CONSTEXPR inline float QVector3D::y() const { return v[1]; } -Q_DECL_CONSTEXPR inline float QVector3D::z() const { return v[2]; } +constexpr inline float QVector3D::x() const { return v[0]; } +constexpr inline float QVector3D::y() const { return v[1]; } +constexpr inline float QVector3D::z() const { return v[2]; } inline void QVector3D::setX(float aX) { v[0] = aX; } inline void QVector3D::setY(float aY) { v[1] = aY; } @@ -232,70 +232,70 @@ inline QVector3D &QVector3D::operator/=(const QVector3D &vector) QT_WARNING_PUSH QT_WARNING_DISABLE_FLOAT_COMPARE -Q_DECL_CONSTEXPR inline bool operator==(const QVector3D &v1, const QVector3D &v2) +constexpr inline bool operator==(const QVector3D &v1, const QVector3D &v2) { return v1.v[0] == v2.v[0] && v1.v[1] == v2.v[1] && v1.v[2] == v2.v[2]; } -Q_DECL_CONSTEXPR inline bool operator!=(const QVector3D &v1, const QVector3D &v2) +constexpr inline bool operator!=(const QVector3D &v1, const QVector3D &v2) { return v1.v[0] != v2.v[0] || v1.v[1] != v2.v[1] || v1.v[2] != v2.v[2]; } QT_WARNING_POP -Q_DECL_CONSTEXPR inline const QVector3D operator+(const QVector3D &v1, const QVector3D &v2) +constexpr inline const QVector3D operator+(const QVector3D &v1, const QVector3D &v2) { return QVector3D(v1.v[0] + v2.v[0], v1.v[1] + v2.v[1], v1.v[2] + v2.v[2]); } -Q_DECL_CONSTEXPR inline const QVector3D operator-(const QVector3D &v1, const QVector3D &v2) +constexpr inline const QVector3D operator-(const QVector3D &v1, const QVector3D &v2) { return QVector3D(v1.v[0] - v2.v[0], v1.v[1] - v2.v[1], v1.v[2] - v2.v[2]); } -Q_DECL_CONSTEXPR inline const QVector3D operator*(float factor, const QVector3D &vector) +constexpr inline const QVector3D operator*(float factor, const QVector3D &vector) { return QVector3D(vector.v[0] * factor, vector.v[1] * factor, vector.v[2] * factor); } -Q_DECL_CONSTEXPR inline const QVector3D operator*(const QVector3D &vector, float factor) +constexpr inline const QVector3D operator*(const QVector3D &vector, float factor) { return QVector3D(vector.v[0] * factor, vector.v[1] * factor, vector.v[2] * factor); } -Q_DECL_CONSTEXPR inline const QVector3D operator*(const QVector3D &v1, const QVector3D& v2) +constexpr inline const QVector3D operator*(const QVector3D &v1, const QVector3D& v2) { return QVector3D(v1.v[0] * v2.v[0], v1.v[1] * v2.v[1], v1.v[2] * v2.v[2]); } -Q_DECL_CONSTEXPR inline const QVector3D operator-(const QVector3D &vector) +constexpr inline const QVector3D operator-(const QVector3D &vector) { return QVector3D(-vector.v[0], -vector.v[1], -vector.v[2]); } -Q_DECL_CONSTEXPR inline const QVector3D operator/(const QVector3D &vector, float divisor) +constexpr inline const QVector3D operator/(const QVector3D &vector, float divisor) { return QVector3D(vector.v[0] / divisor, vector.v[1] / divisor, vector.v[2] / divisor); } -Q_DECL_CONSTEXPR inline const QVector3D operator/(const QVector3D &vector, const QVector3D &divisor) +constexpr inline const QVector3D operator/(const QVector3D &vector, const QVector3D &divisor) { return QVector3D(vector.v[0] / divisor.v[0], vector.v[1] / divisor.v[1], vector.v[2] / divisor.v[2]); } -Q_DECL_CONSTEXPR inline bool qFuzzyCompare(const QVector3D& v1, const QVector3D& v2) +constexpr inline bool qFuzzyCompare(const QVector3D& v1, const QVector3D& v2) { return qFuzzyCompare(v1.v[0], v2.v[0]) && qFuzzyCompare(v1.v[1], v2.v[1]) && qFuzzyCompare(v1.v[2], v2.v[2]); } -Q_DECL_CONSTEXPR inline QPoint QVector3D::toPoint() const +constexpr inline QPoint QVector3D::toPoint() const { return QPoint(qRound(v[0]), qRound(v[1])); } -Q_DECL_CONSTEXPR inline QPointF QVector3D::toPointF() const +constexpr inline QPointF QVector3D::toPointF() const { return QPointF(qreal(v[0]), qreal(v[1])); } diff --git a/src/gui/math3d/qvector4d.h b/src/gui/math3d/qvector4d.h index 495a0b7e23..6f6ec213b9 100644 --- a/src/gui/math3d/qvector4d.h +++ b/src/gui/math3d/qvector4d.h @@ -56,11 +56,11 @@ class QVector3D; class Q_GUI_EXPORT QVector4D { public: - Q_DECL_CONSTEXPR QVector4D(); + constexpr QVector4D(); explicit QVector4D(Qt::Initialization) {} - Q_DECL_CONSTEXPR QVector4D(float xpos, float ypos, float zpos, float wpos); - Q_DECL_CONSTEXPR explicit QVector4D(const QPoint& point); - Q_DECL_CONSTEXPR explicit QVector4D(const QPointF& point); + constexpr QVector4D(float xpos, float ypos, float zpos, float wpos); + constexpr explicit QVector4D(const QPoint& point); + constexpr explicit QVector4D(const QPointF& point); #ifndef QT_NO_VECTOR2D QVector4D(const QVector2D& vector); QVector4D(const QVector2D& vector, float zpos, float wpos); @@ -72,10 +72,10 @@ public: bool isNull() const; - Q_DECL_CONSTEXPR float x() const; - Q_DECL_CONSTEXPR float y() const; - Q_DECL_CONSTEXPR float z() const; - Q_DECL_CONSTEXPR float w() const; + constexpr float x() const; + constexpr float y() const; + constexpr float z() const; + constexpr float w() const; void setX(float x); void setY(float y); @@ -100,18 +100,18 @@ public: static float dotProduct(const QVector4D& v1, const QVector4D& v2); //In Qt 6 convert to inline and constexpr - Q_DECL_CONSTEXPR friend inline bool operator==(const QVector4D &v1, const QVector4D &v2); - Q_DECL_CONSTEXPR friend inline bool operator!=(const QVector4D &v1, const QVector4D &v2); - Q_DECL_CONSTEXPR friend inline const QVector4D operator+(const QVector4D &v1, const QVector4D &v2); - Q_DECL_CONSTEXPR friend inline const QVector4D operator-(const QVector4D &v1, const QVector4D &v2); - Q_DECL_CONSTEXPR friend inline const QVector4D operator*(float factor, const QVector4D &vector); - Q_DECL_CONSTEXPR friend inline const QVector4D operator*(const QVector4D &vector, float factor); - Q_DECL_CONSTEXPR friend inline const QVector4D operator*(const QVector4D &v1, const QVector4D& v2); - Q_DECL_CONSTEXPR friend inline const QVector4D operator-(const QVector4D &vector); - Q_DECL_CONSTEXPR friend inline const QVector4D operator/(const QVector4D &vector, float divisor); - Q_DECL_CONSTEXPR friend inline const QVector4D operator/(const QVector4D &vector, const QVector4D &divisor); + constexpr friend inline bool operator==(const QVector4D &v1, const QVector4D &v2); + constexpr friend inline bool operator!=(const QVector4D &v1, const QVector4D &v2); + constexpr friend inline const QVector4D operator+(const QVector4D &v1, const QVector4D &v2); + constexpr friend inline const QVector4D operator-(const QVector4D &v1, const QVector4D &v2); + constexpr friend inline const QVector4D operator*(float factor, const QVector4D &vector); + constexpr friend inline const QVector4D operator*(const QVector4D &vector, float factor); + constexpr friend inline const QVector4D operator*(const QVector4D &v1, const QVector4D& v2); + constexpr friend inline const QVector4D operator-(const QVector4D &vector); + constexpr friend inline const QVector4D operator/(const QVector4D &vector, float divisor); + constexpr friend inline const QVector4D operator/(const QVector4D &vector, const QVector4D &divisor); - Q_DECL_CONSTEXPR friend inline bool qFuzzyCompare(const QVector4D& v1, const QVector4D& v2); + constexpr friend inline bool qFuzzyCompare(const QVector4D& v1, const QVector4D& v2); #ifndef QT_NO_VECTOR2D QVector2D toVector2D() const; @@ -122,8 +122,8 @@ public: QVector3D toVector3DAffine() const; #endif - Q_DECL_CONSTEXPR QPoint toPoint() const; - Q_DECL_CONSTEXPR QPointF toPointF() const; + constexpr QPoint toPoint() const; + constexpr QPointF toPointF() const; operator QVariant() const; @@ -140,23 +140,23 @@ private: Q_DECLARE_TYPEINFO(QVector4D, Q_PRIMITIVE_TYPE); -Q_DECL_CONSTEXPR inline QVector4D::QVector4D() : v{0.0f, 0.0f, 0.0f, 0.0f} {} +constexpr inline QVector4D::QVector4D() : v{0.0f, 0.0f, 0.0f, 0.0f} {} -Q_DECL_CONSTEXPR inline QVector4D::QVector4D(float xpos, float ypos, float zpos, float wpos) : v{xpos, ypos, zpos, wpos} {} +constexpr inline QVector4D::QVector4D(float xpos, float ypos, float zpos, float wpos) : v{xpos, ypos, zpos, wpos} {} -Q_DECL_CONSTEXPR inline QVector4D::QVector4D(const QPoint& point) : v{float(point.x()), float(point.y()), 0.0f, 0.0f} {} +constexpr inline QVector4D::QVector4D(const QPoint& point) : v{float(point.x()), float(point.y()), 0.0f, 0.0f} {} -Q_DECL_CONSTEXPR inline QVector4D::QVector4D(const QPointF& point) : v{float(point.x()), float(point.y()), 0.0f, 0.0f} {} +constexpr inline QVector4D::QVector4D(const QPointF& point) : v{float(point.x()), float(point.y()), 0.0f, 0.0f} {} inline bool QVector4D::isNull() const { return qIsNull(v[0]) && qIsNull(v[1]) && qIsNull(v[2]) && qIsNull(v[3]); } -Q_DECL_CONSTEXPR inline float QVector4D::x() const { return v[0]; } -Q_DECL_CONSTEXPR inline float QVector4D::y() const { return v[1]; } -Q_DECL_CONSTEXPR inline float QVector4D::z() const { return v[2]; } -Q_DECL_CONSTEXPR inline float QVector4D::w() const { return v[3]; } +constexpr inline float QVector4D::x() const { return v[0]; } +constexpr inline float QVector4D::y() const { return v[1]; } +constexpr inline float QVector4D::z() const { return v[2]; } +constexpr inline float QVector4D::w() const { return v[3]; } inline void QVector4D::setX(float aX) { v[0] = aX; } inline void QVector4D::setY(float aY) { v[1] = aY; } @@ -232,58 +232,58 @@ inline QVector4D &QVector4D::operator/=(const QVector4D &vector) QT_WARNING_PUSH QT_WARNING_DISABLE_FLOAT_COMPARE -Q_DECL_CONSTEXPR inline bool operator==(const QVector4D &v1, const QVector4D &v2) +constexpr inline bool operator==(const QVector4D &v1, const QVector4D &v2) { return v1.v[0] == v2.v[0] && v1.v[1] == v2.v[1] && v1.v[2] == v2.v[2] && v1.v[3] == v2.v[3]; } -Q_DECL_CONSTEXPR inline bool operator!=(const QVector4D &v1, const QVector4D &v2) +constexpr inline bool operator!=(const QVector4D &v1, const QVector4D &v2) { return v1.v[0] != v2.v[0] || v1.v[1] != v2.v[1] || v1.v[2] != v2.v[2] || v1.v[3] != v2.v[3]; } QT_WARNING_POP -Q_DECL_CONSTEXPR inline const QVector4D operator+(const QVector4D &v1, const QVector4D &v2) +constexpr inline const QVector4D operator+(const QVector4D &v1, const QVector4D &v2) { return QVector4D(v1.v[0] + v2.v[0], v1.v[1] + v2.v[1], v1.v[2] + v2.v[2], v1.v[3] + v2.v[3]); } -Q_DECL_CONSTEXPR inline const QVector4D operator-(const QVector4D &v1, const QVector4D &v2) +constexpr inline const QVector4D operator-(const QVector4D &v1, const QVector4D &v2) { return QVector4D(v1.v[0] - v2.v[0], v1.v[1] - v2.v[1], v1.v[2] - v2.v[2], v1.v[3] - v2.v[3]); } -Q_DECL_CONSTEXPR inline const QVector4D operator*(float factor, const QVector4D &vector) +constexpr inline const QVector4D operator*(float factor, const QVector4D &vector) { return QVector4D(vector.v[0] * factor, vector.v[1] * factor, vector.v[2] * factor, vector.v[3] * factor); } -Q_DECL_CONSTEXPR inline const QVector4D operator*(const QVector4D &vector, float factor) +constexpr inline const QVector4D operator*(const QVector4D &vector, float factor) { return QVector4D(vector.v[0] * factor, vector.v[1] * factor, vector.v[2] * factor, vector.v[3] * factor); } -Q_DECL_CONSTEXPR inline const QVector4D operator*(const QVector4D &v1, const QVector4D& v2) +constexpr inline const QVector4D operator*(const QVector4D &v1, const QVector4D& v2) { return QVector4D(v1.v[0] * v2.v[0], v1.v[1] * v2.v[1], v1.v[2] * v2.v[2], v1.v[3] * v2.v[3]); } -Q_DECL_CONSTEXPR inline const QVector4D operator-(const QVector4D &vector) +constexpr inline const QVector4D operator-(const QVector4D &vector) { return QVector4D(-vector.v[0], -vector.v[1], -vector.v[2], -vector.v[3]); } -Q_DECL_CONSTEXPR inline const QVector4D operator/(const QVector4D &vector, float divisor) +constexpr inline const QVector4D operator/(const QVector4D &vector, float divisor) { return QVector4D(vector.v[0] / divisor, vector.v[1] / divisor, vector.v[2] / divisor, vector.v[3] / divisor); } -Q_DECL_CONSTEXPR inline const QVector4D operator/(const QVector4D &vector, const QVector4D &divisor) +constexpr inline const QVector4D operator/(const QVector4D &vector, const QVector4D &divisor) { return QVector4D(vector.v[0] / divisor.v[0], vector.v[1] / divisor.v[1], vector.v[2] / divisor.v[2], vector.v[3] / divisor.v[3]); } -Q_DECL_CONSTEXPR inline bool qFuzzyCompare(const QVector4D& v1, const QVector4D& v2) +constexpr inline bool qFuzzyCompare(const QVector4D& v1, const QVector4D& v2) { return qFuzzyCompare(v1.v[0], v2.v[0]) && qFuzzyCompare(v1.v[1], v2.v[1]) && @@ -291,12 +291,12 @@ Q_DECL_CONSTEXPR inline bool qFuzzyCompare(const QVector4D& v1, const QVector4D& qFuzzyCompare(v1.v[3], v2.v[3]); } -Q_DECL_CONSTEXPR inline QPoint QVector4D::toPoint() const +constexpr inline QPoint QVector4D::toPoint() const { return QPoint(qRound(v[0]), qRound(v[1])); } -Q_DECL_CONSTEXPR inline QPointF QVector4D::toPointF() const +constexpr inline QPointF QVector4D::toPointF() const { return QPointF(qreal(v[0]), qreal(v[1])); } diff --git a/src/gui/painting/qbrush.cpp b/src/gui/painting/qbrush.cpp index c9113cdc75..b2f610c188 100644 --- a/src/gui/painting/qbrush.cpp +++ b/src/gui/painting/qbrush.cpp @@ -576,7 +576,7 @@ void QBrush::cleanUp(QBrushData *x) QBrushDataPointerDeleter::deleteData(x); } -static Q_DECL_CONSTEXPR inline bool use_same_brushdata(Qt::BrushStyle lhs, Qt::BrushStyle rhs) +static constexpr inline bool use_same_brushdata(Qt::BrushStyle lhs, Qt::BrushStyle rhs) { return lhs == rhs // includes Qt::TexturePattern || (lhs >= Qt::NoBrush && lhs <= Qt::DiagCrossPattern && rhs >= Qt::NoBrush && rhs <= Qt::DiagCrossPattern) diff --git a/src/gui/painting/qcolor.h b/src/gui/painting/qcolor.h index 683826fbe7..dbced35996 100644 --- a/src/gui/painting/qcolor.h +++ b/src/gui/painting/qcolor.h @@ -69,10 +69,10 @@ public: enum Spec { Invalid, Rgb, Hsv, Cmyk, Hsl, ExtendedRgb }; enum NameFormat { HexRgb, HexArgb }; - Q_DECL_CONSTEXPR QColor() noexcept + constexpr QColor() noexcept : cspec(Invalid), ct(USHRT_MAX, 0, 0, 0, 0) {} QColor(Qt::GlobalColor color) noexcept; - Q_DECL_CONSTEXPR QColor(int r, int g, int b, int a = 255) noexcept + constexpr QColor(int r, int g, int b, int a = 255) noexcept : cspec(isRgbaValid(r, g, b, a) ? Rgb : Invalid), ct(ushort(cspec == Rgb ? a * 0x0101 : 0), ushort(cspec == Rgb ? r * 0x0101 : 0), @@ -235,7 +235,7 @@ private: template <typename String> bool setColorFromString(String name); - static Q_DECL_CONSTEXPR bool isRgbaValid(int r, int g, int b, int a = 255) noexcept Q_DECL_CONST_FUNCTION + static constexpr bool isRgbaValid(int r, int g, int b, int a = 255) noexcept Q_DECL_CONST_FUNCTION { return uint(r) <= 255 && uint(g) <= 255 && uint(b) <= 255 && uint(a) <= 255; } @@ -244,7 +244,7 @@ private: union CT { #ifdef Q_COMPILER_UNIFORM_INIT CT() {} // doesn't init anything, thus can't be constexpr - Q_DECL_CONSTEXPR explicit CT(ushort a1, ushort a2, ushort a3, ushort a4, ushort a5) noexcept + constexpr explicit CT(ushort a1, ushort a2, ushort a3, ushort a4, ushort a5) noexcept : array{a1, a2, a3, a4, a5} {} #endif struct { @@ -293,7 +293,7 @@ private: #ifdef Q_COMPILER_UNIFORM_INIT public: // can't give friendship to a namespace, so it needs to be public - Q_DECL_CONSTEXPR explicit QColor(Spec spec, ushort a1, ushort a2, ushort a3, ushort a4, ushort a5=0) noexcept + constexpr explicit QColor(Spec spec, ushort a1, ushort a2, ushort a3, ushort a4, ushort a5=0) noexcept : cspec(spec), ct(a1, a2, a3, a4, a5) {} #endif // Q_COMPILER_UNIFORM_INIT }; diff --git a/src/gui/painting/qcolormatrix_p.h b/src/gui/painting/qcolormatrix_p.h index 749aad3b2c..87a61ab219 100644 --- a/src/gui/painting/qcolormatrix_p.h +++ b/src/gui/painting/qcolormatrix_p.h @@ -62,8 +62,8 @@ class QColorVector { public: QColorVector() = default; - Q_DECL_CONSTEXPR QColorVector(float x, float y, float z) : x(x), y(y), z(z) { } - explicit Q_DECL_CONSTEXPR QColorVector(const QPointF &chr) // from XY chromaticity + constexpr QColorVector(float x, float y, float z) : x(x), y(y), z(z) { } + explicit constexpr QColorVector(const QPointF &chr) // from XY chromaticity : x(chr.x() / chr.y()) , y(1.0f) , z((1.0 - chr.x() - chr.y()) / chr.y()) @@ -92,10 +92,10 @@ public: } // Common whitepoints: - static Q_DECL_CONSTEXPR QPointF D50Chromaticity() { return QPointF(0.34567, 0.35850); } - static Q_DECL_CONSTEXPR QPointF D65Chromaticity() { return QPointF(0.31271, 0.32902); } - static Q_DECL_CONSTEXPR QColorVector D50() { return QColorVector(D50Chromaticity()); } - static Q_DECL_CONSTEXPR QColorVector D65() { return QColorVector(D65Chromaticity()); } + static constexpr QPointF D50Chromaticity() { return QPointF(0.34567, 0.35850); } + static constexpr QPointF D65Chromaticity() { return QPointF(0.31271, 0.32902); } + static constexpr QColorVector D50() { return QColorVector(D50Chromaticity()); } + static constexpr QColorVector D65() { return QColorVector(D65Chromaticity()); } }; inline bool operator==(const QColorVector &v1, const QColorVector &v2) diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index b4dc2d3ae3..1ef881efee 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -1484,7 +1484,7 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c { const qreal cx = x + qreal(0.5); const qreal cy = y + qreal(0.5); - Q_CONSTEXPR int tiled = (blendType == BlendTransformedBilinearTiled) ? 1 : 0; + constexpr int tiled = (blendType == BlendTransformedBilinearTiled) ? 1 : 0; uint *end = buffer + length; uint *b = buffer; diff --git a/src/gui/painting/qdrawhelper_p.h b/src/gui/painting/qdrawhelper_p.h index 99a3534545..72eba9ea6d 100644 --- a/src/gui/painting/qdrawhelper_p.h +++ b/src/gui/painting/qdrawhelper_p.h @@ -858,10 +858,10 @@ static inline uint BYTE_MUL_RGB16_32(uint x, uint a) { } // qt_div_255 is a fast rounded division by 255 using an approximation that is accurate for all positive 16-bit integers -static Q_DECL_CONSTEXPR inline int qt_div_255(int x) { return (x + (x>>8) + 0x80) >> 8; } -static Q_DECL_CONSTEXPR inline uint qt_div_257_floor(uint x) { return (x - (x >> 8)) >> 8; } -static Q_DECL_CONSTEXPR inline uint qt_div_257(uint x) { return qt_div_257_floor(x + 128); } -static Q_DECL_CONSTEXPR inline uint qt_div_65535(uint x) { return (x + (x>>16) + 0x8000U) >> 16; } +static constexpr inline int qt_div_255(int x) { return (x + (x>>8) + 0x80) >> 8; } +static constexpr inline uint qt_div_257_floor(uint x) { return (x - (x >> 8)) >> 8; } +static constexpr inline uint qt_div_257(uint x) { return qt_div_257_floor(x + 128); } +static constexpr inline uint qt_div_65535(uint x) { return (x + (x>>16) + 0x8000U) >> 16; } template <class T> inline void qt_memfill_template(T *dest, T color, qsizetype count) { @@ -1008,7 +1008,7 @@ inline uint comp_func_Plus_one_pixel(uint d, const uint s) #undef AMIX // must be multiple of 4 for easier SIMD implementations -static Q_CONSTEXPR int BufferSize = 2048; +static constexpr int BufferSize = 2048; // A buffer of intermediate results used by simple bilinear scaling. struct IntermediateBuffer diff --git a/src/gui/painting/qdrawingprimitive_sse2_p.h b/src/gui/painting/qdrawingprimitive_sse2_p.h index 8b91c590b8..b3bb22fe1b 100644 --- a/src/gui/painting/qdrawingprimitive_sse2_p.h +++ b/src/gui/painting/qdrawingprimitive_sse2_p.h @@ -269,7 +269,7 @@ static inline uint qConvertArgb32ToA2rgb30_sse4(QRgb p) return qConvertRgb32ToRgb30<PixelOrder>(p); if (alpha == 0) return 0; - Q_CONSTEXPR float mult = 1023.0f / (255 >> 6); + constexpr float mult = 1023.0f / (255 >> 6); const uint newalpha = (alpha >> 6); const __m128 va = _mm_set1_ps(alpha); __m128 via; diff --git a/src/gui/painting/qfixed_p.h b/src/gui/painting/qfixed_p.h index 846592881c..90d214fe96 100644 --- a/src/gui/painting/qfixed_p.h +++ b/src/gui/painting/qfixed_p.h @@ -60,49 +60,49 @@ QT_BEGIN_NAMESPACE struct QFixed { private: - Q_DECL_CONSTEXPR QFixed(int val, int) : val(val) {} // 2nd int is just a dummy for disambiguation + constexpr QFixed(int val, int) : val(val) {} // 2nd int is just a dummy for disambiguation public: - Q_DECL_CONSTEXPR QFixed() : val(0) {} - Q_DECL_CONSTEXPR QFixed(int i) : val(i * 64) {} - Q_DECL_CONSTEXPR QFixed(long i) : val(i * 64) {} + constexpr QFixed() : val(0) {} + constexpr QFixed(int i) : val(i * 64) {} + constexpr QFixed(long i) : val(i * 64) {} QFixed &operator=(int i) { val = i * 64; return *this; } QFixed &operator=(long i) { val = i * 64; return *this; } - Q_DECL_CONSTEXPR static QFixed fromReal(qreal r) { return fromFixed((int)(r*qreal(64))); } - Q_DECL_CONSTEXPR static QFixed fromFixed(int fixed) { return QFixed(fixed,0); } // uses private ctor + constexpr static QFixed fromReal(qreal r) { return fromFixed((int)(r*qreal(64))); } + constexpr static QFixed fromFixed(int fixed) { return QFixed(fixed,0); } // uses private ctor - Q_DECL_CONSTEXPR inline int value() const { return val; } + constexpr inline int value() const { return val; } inline void setValue(int value) { val = value; } - Q_DECL_CONSTEXPR inline int toInt() const { return (((val)+32) & -64)>>6; } - Q_DECL_CONSTEXPR inline qreal toReal() const { return ((qreal)val)/(qreal)64; } + constexpr inline int toInt() const { return (((val)+32) & -64)>>6; } + constexpr inline qreal toReal() const { return ((qreal)val)/(qreal)64; } - Q_DECL_CONSTEXPR inline int truncate() const { return val>>6; } - Q_DECL_CONSTEXPR inline QFixed round() const { return fromFixed(((val)+32) & -64); } - Q_DECL_CONSTEXPR inline QFixed floor() const { return fromFixed((val) & -64); } - Q_DECL_CONSTEXPR inline QFixed ceil() const { return fromFixed((val+63) & -64); } + constexpr inline int truncate() const { return val>>6; } + constexpr inline QFixed round() const { return fromFixed(((val)+32) & -64); } + constexpr inline QFixed floor() const { return fromFixed((val) & -64); } + constexpr inline QFixed ceil() const { return fromFixed((val+63) & -64); } - Q_DECL_CONSTEXPR inline QFixed operator+(int i) const { return fromFixed(val + i * 64); } - Q_DECL_CONSTEXPR inline QFixed operator+(uint i) const { return fromFixed((val + (i<<6))); } - Q_DECL_CONSTEXPR inline QFixed operator+(const QFixed &other) const { return fromFixed((val + other.val)); } + constexpr inline QFixed operator+(int i) const { return fromFixed(val + i * 64); } + constexpr inline QFixed operator+(uint i) const { return fromFixed((val + (i<<6))); } + constexpr inline QFixed operator+(const QFixed &other) const { return fromFixed((val + other.val)); } inline QFixed &operator+=(int i) { val += i * 64; return *this; } inline QFixed &operator+=(uint i) { val += (i<<6); return *this; } inline QFixed &operator+=(const QFixed &other) { val += other.val; return *this; } - Q_DECL_CONSTEXPR inline QFixed operator-(int i) const { return fromFixed(val - i * 64); } - Q_DECL_CONSTEXPR inline QFixed operator-(uint i) const { return fromFixed((val - (i<<6))); } - Q_DECL_CONSTEXPR inline QFixed operator-(const QFixed &other) const { return fromFixed((val - other.val)); } + constexpr inline QFixed operator-(int i) const { return fromFixed(val - i * 64); } + constexpr inline QFixed operator-(uint i) const { return fromFixed((val - (i<<6))); } + constexpr inline QFixed operator-(const QFixed &other) const { return fromFixed((val - other.val)); } inline QFixed &operator-=(int i) { val -= i * 64; return *this; } inline QFixed &operator-=(uint i) { val -= (i<<6); return *this; } inline QFixed &operator-=(const QFixed &other) { val -= other.val; return *this; } - Q_DECL_CONSTEXPR inline QFixed operator-() const { return fromFixed(-val); } + constexpr inline QFixed operator-() const { return fromFixed(-val); } - Q_DECL_CONSTEXPR inline bool operator==(const QFixed &other) const { return val == other.val; } - Q_DECL_CONSTEXPR inline bool operator!=(const QFixed &other) const { return val != other.val; } - Q_DECL_CONSTEXPR inline bool operator<(const QFixed &other) const { return val < other.val; } - Q_DECL_CONSTEXPR inline bool operator>(const QFixed &other) const { return val > other.val; } - Q_DECL_CONSTEXPR inline bool operator<=(const QFixed &other) const { return val <= other.val; } - Q_DECL_CONSTEXPR inline bool operator>=(const QFixed &other) const { return val >= other.val; } - Q_DECL_CONSTEXPR inline bool operator!() const { return !val; } + constexpr inline bool operator==(const QFixed &other) const { return val == other.val; } + constexpr inline bool operator!=(const QFixed &other) const { return val != other.val; } + constexpr inline bool operator<(const QFixed &other) const { return val < other.val; } + constexpr inline bool operator>(const QFixed &other) const { return val > other.val; } + constexpr inline bool operator<=(const QFixed &other) const { return val <= other.val; } + constexpr inline bool operator>=(const QFixed &other) const { return val >= other.val; } + constexpr inline bool operator!() const { return !val; } inline QFixed &operator/=(int x) { val /= x; return *this; } inline QFixed &operator/=(const QFixed &o) { @@ -121,7 +121,7 @@ public: } return *this; } - Q_DECL_CONSTEXPR inline QFixed operator/(int d) const { return fromFixed(val/d); } + constexpr inline QFixed operator/(int d) const { return fromFixed(val/d); } inline QFixed operator/(QFixed b) const { QFixed f = *this; return (f /= b); } inline QFixed operator>>(int d) const { QFixed f = *this; f.val >>= d; return f; } inline QFixed &operator*=(int i) { val *= i; return *this; } @@ -137,50 +137,50 @@ public: val = neg ? -res : res; return *this; } - Q_DECL_CONSTEXPR inline QFixed operator*(int i) const { return fromFixed(val * i); } - Q_DECL_CONSTEXPR inline QFixed operator*(uint i) const { return fromFixed(val * i); } + constexpr inline QFixed operator*(int i) const { return fromFixed(val * i); } + constexpr inline QFixed operator*(uint i) const { return fromFixed(val * i); } inline QFixed operator*(const QFixed &o) const { QFixed f = *this; return (f *= o); } private: - Q_DECL_CONSTEXPR QFixed(qreal i) : val((int)(i*qreal(64))) {} + constexpr QFixed(qreal i) : val((int)(i*qreal(64))) {} QFixed &operator=(qreal i) { val = (int)(i*qreal(64)); return *this; } - Q_DECL_CONSTEXPR inline QFixed operator+(qreal i) const { return fromFixed((val + (int)(i*qreal(64)))); } + constexpr inline QFixed operator+(qreal i) const { return fromFixed((val + (int)(i*qreal(64)))); } inline QFixed &operator+=(qreal i) { val += (int)(i*64); return *this; } - Q_DECL_CONSTEXPR inline QFixed operator-(qreal i) const { return fromFixed((val - (int)(i*qreal(64)))); } + constexpr inline QFixed operator-(qreal i) const { return fromFixed((val - (int)(i*qreal(64)))); } inline QFixed &operator-=(qreal i) { val -= (int)(i*64); return *this; } inline QFixed &operator/=(qreal r) { val = (int)(val/r); return *this; } - Q_DECL_CONSTEXPR inline QFixed operator/(qreal d) const { return fromFixed((int)(val/d)); } + constexpr inline QFixed operator/(qreal d) const { return fromFixed((int)(val/d)); } inline QFixed &operator*=(qreal d) { val = (int) (val*d); return *this; } - Q_DECL_CONSTEXPR inline QFixed operator*(qreal d) const { return fromFixed((int) (val*d)); } + constexpr inline QFixed operator*(qreal d) const { return fromFixed((int) (val*d)); } int val; }; Q_DECLARE_TYPEINFO(QFixed, Q_PRIMITIVE_TYPE); #define QFIXED_MAX (INT_MAX/256) -Q_DECL_CONSTEXPR inline int qRound(const QFixed &f) { return f.toInt(); } -Q_DECL_CONSTEXPR inline int qFloor(const QFixed &f) { return f.floor().truncate(); } - -Q_DECL_CONSTEXPR inline QFixed operator*(int i, const QFixed &d) { return d*i; } -Q_DECL_CONSTEXPR inline QFixed operator+(int i, const QFixed &d) { return d+i; } -Q_DECL_CONSTEXPR inline QFixed operator-(int i, const QFixed &d) { return -(d-i); } -Q_DECL_CONSTEXPR inline QFixed operator*(uint i, const QFixed &d) { return d*i; } -Q_DECL_CONSTEXPR inline QFixed operator+(uint i, const QFixed &d) { return d+i; } -Q_DECL_CONSTEXPR inline QFixed operator-(uint i, const QFixed &d) { return -(d-i); } -// Q_DECL_CONSTEXPR inline QFixed operator*(qreal d, const QFixed &d2) { return d2*d; } - -Q_DECL_CONSTEXPR inline bool operator==(const QFixed &f, int i) { return f.value() == i * 64; } -Q_DECL_CONSTEXPR inline bool operator==(int i, const QFixed &f) { return f.value() == i * 64; } -Q_DECL_CONSTEXPR inline bool operator!=(const QFixed &f, int i) { return f.value() != i * 64; } -Q_DECL_CONSTEXPR inline bool operator!=(int i, const QFixed &f) { return f.value() != i * 64; } -Q_DECL_CONSTEXPR inline bool operator<=(const QFixed &f, int i) { return f.value() <= i * 64; } -Q_DECL_CONSTEXPR inline bool operator<=(int i, const QFixed &f) { return i * 64 <= f.value(); } -Q_DECL_CONSTEXPR inline bool operator>=(const QFixed &f, int i) { return f.value() >= i * 64; } -Q_DECL_CONSTEXPR inline bool operator>=(int i, const QFixed &f) { return i * 64 >= f.value(); } -Q_DECL_CONSTEXPR inline bool operator<(const QFixed &f, int i) { return f.value() < i * 64; } -Q_DECL_CONSTEXPR inline bool operator<(int i, const QFixed &f) { return i * 64 < f.value(); } -Q_DECL_CONSTEXPR inline bool operator>(const QFixed &f, int i) { return f.value() > i * 64; } -Q_DECL_CONSTEXPR inline bool operator>(int i, const QFixed &f) { return i * 64 > f.value(); } +constexpr inline int qRound(const QFixed &f) { return f.toInt(); } +constexpr inline int qFloor(const QFixed &f) { return f.floor().truncate(); } + +constexpr inline QFixed operator*(int i, const QFixed &d) { return d*i; } +constexpr inline QFixed operator+(int i, const QFixed &d) { return d+i; } +constexpr inline QFixed operator-(int i, const QFixed &d) { return -(d-i); } +constexpr inline QFixed operator*(uint i, const QFixed &d) { return d*i; } +constexpr inline QFixed operator+(uint i, const QFixed &d) { return d+i; } +constexpr inline QFixed operator-(uint i, const QFixed &d) { return -(d-i); } +// constexpr inline QFixed operator*(qreal d, const QFixed &d2) { return d2*d; } + +constexpr inline bool operator==(const QFixed &f, int i) { return f.value() == i * 64; } +constexpr inline bool operator==(int i, const QFixed &f) { return f.value() == i * 64; } +constexpr inline bool operator!=(const QFixed &f, int i) { return f.value() != i * 64; } +constexpr inline bool operator!=(int i, const QFixed &f) { return f.value() != i * 64; } +constexpr inline bool operator<=(const QFixed &f, int i) { return f.value() <= i * 64; } +constexpr inline bool operator<=(int i, const QFixed &f) { return i * 64 <= f.value(); } +constexpr inline bool operator>=(const QFixed &f, int i) { return f.value() >= i * 64; } +constexpr inline bool operator>=(int i, const QFixed &f) { return i * 64 >= f.value(); } +constexpr inline bool operator<(const QFixed &f, int i) { return f.value() < i * 64; } +constexpr inline bool operator<(int i, const QFixed &f) { return i * 64 < f.value(); } +constexpr inline bool operator>(const QFixed &f, int i) { return f.value() > i * 64; } +constexpr inline bool operator>(int i, const QFixed &f) { return i * 64 > f.value(); } #ifndef QT_NO_DEBUG_STREAM inline QDebug &operator<<(QDebug &dbg, const QFixed &f) @@ -190,27 +190,27 @@ inline QDebug &operator<<(QDebug &dbg, const QFixed &f) struct QFixedPoint { QFixed x; QFixed y; - Q_DECL_CONSTEXPR inline QFixedPoint() {} - Q_DECL_CONSTEXPR inline QFixedPoint(const QFixed &_x, const QFixed &_y) : x(_x), y(_y) {} - Q_DECL_CONSTEXPR QPointF toPointF() const { return QPointF(x.toReal(), y.toReal()); } - Q_DECL_CONSTEXPR static QFixedPoint fromPointF(const QPointF &p) { + constexpr inline QFixedPoint() {} + constexpr inline QFixedPoint(const QFixed &_x, const QFixed &_y) : x(_x), y(_y) {} + constexpr QPointF toPointF() const { return QPointF(x.toReal(), y.toReal()); } + constexpr static QFixedPoint fromPointF(const QPointF &p) { return QFixedPoint(QFixed::fromReal(p.x()), QFixed::fromReal(p.y())); } }; Q_DECLARE_TYPEINFO(QFixedPoint, Q_PRIMITIVE_TYPE); -Q_DECL_CONSTEXPR inline QFixedPoint operator-(const QFixedPoint &p1, const QFixedPoint &p2) +constexpr inline QFixedPoint operator-(const QFixedPoint &p1, const QFixedPoint &p2) { return QFixedPoint(p1.x - p2.x, p1.y - p2.y); } -Q_DECL_CONSTEXPR inline QFixedPoint operator+(const QFixedPoint &p1, const QFixedPoint &p2) +constexpr inline QFixedPoint operator+(const QFixedPoint &p1, const QFixedPoint &p2) { return QFixedPoint(p1.x + p2.x, p1.y + p2.y); } struct QFixedSize { QFixed width; QFixed height; - Q_DECL_CONSTEXPR QFixedSize() {} - Q_DECL_CONSTEXPR QFixedSize(QFixed _width, QFixed _height) : width(_width), height(_height) {} - Q_DECL_CONSTEXPR QSizeF toSizeF() const { return QSizeF(width.toReal(), height.toReal()); } - Q_DECL_CONSTEXPR static QFixedSize fromSizeF(const QSizeF &s) { + constexpr QFixedSize() {} + constexpr QFixedSize(QFixed _width, QFixed _height) : width(_width), height(_height) {} + constexpr QSizeF toSizeF() const { return QSizeF(width.toReal(), height.toReal()); } + constexpr static QFixedSize fromSizeF(const QSizeF &s) { return QFixedSize(QFixed::fromReal(s.width()), QFixed::fromReal(s.height())); } }; diff --git a/src/gui/painting/qpixellayout.cpp b/src/gui/painting/qpixellayout.cpp index ad6df37228..c931cc0a09 100644 --- a/src/gui/painting/qpixellayout.cpp +++ b/src/gui/painting/qpixellayout.cpp @@ -46,146 +46,146 @@ QT_BEGIN_NAMESPACE -template<QImage::Format> Q_DECL_CONSTEXPR uint redWidth(); -template<QImage::Format> Q_DECL_CONSTEXPR uint redShift(); -template<QImage::Format> Q_DECL_CONSTEXPR uint greenWidth(); -template<QImage::Format> Q_DECL_CONSTEXPR uint greenShift(); -template<QImage::Format> Q_DECL_CONSTEXPR uint blueWidth(); -template<QImage::Format> Q_DECL_CONSTEXPR uint blueShift(); -template<QImage::Format> Q_DECL_CONSTEXPR uint alphaWidth(); -template<QImage::Format> Q_DECL_CONSTEXPR uint alphaShift(); - -template<> Q_DECL_CONSTEXPR uint redWidth<QImage::Format_RGB16>() { return 5; } -template<> Q_DECL_CONSTEXPR uint redWidth<QImage::Format_RGB444>() { return 4; } -template<> Q_DECL_CONSTEXPR uint redWidth<QImage::Format_RGB555>() { return 5; } -template<> Q_DECL_CONSTEXPR uint redWidth<QImage::Format_RGB666>() { return 6; } -template<> Q_DECL_CONSTEXPR uint redWidth<QImage::Format_RGB888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint redWidth<QImage::Format_BGR888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint redWidth<QImage::Format_ARGB4444_Premultiplied>() { return 4; } -template<> Q_DECL_CONSTEXPR uint redWidth<QImage::Format_ARGB8555_Premultiplied>() { return 5; } -template<> Q_DECL_CONSTEXPR uint redWidth<QImage::Format_ARGB8565_Premultiplied>() { return 5; } -template<> Q_DECL_CONSTEXPR uint redWidth<QImage::Format_ARGB6666_Premultiplied>() { return 6; } -template<> Q_DECL_CONSTEXPR uint redWidth<QImage::Format_RGBX8888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint redWidth<QImage::Format_RGBA8888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint redWidth<QImage::Format_RGBA8888_Premultiplied>() { return 8; } - -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_RGB16>() { return 11; } -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_RGB444>() { return 8; } -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_RGB555>() { return 10; } -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_RGB666>() { return 12; } -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_RGB888>() { return 16; } -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_BGR888>() { return 0; } -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_ARGB4444_Premultiplied>() { return 8; } -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_ARGB8555_Premultiplied>() { return 18; } -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_ARGB8565_Premultiplied>() { return 19; } -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_ARGB6666_Premultiplied>() { return 12; } +template<QImage::Format> constexpr uint redWidth(); +template<QImage::Format> constexpr uint redShift(); +template<QImage::Format> constexpr uint greenWidth(); +template<QImage::Format> constexpr uint greenShift(); +template<QImage::Format> constexpr uint blueWidth(); +template<QImage::Format> constexpr uint blueShift(); +template<QImage::Format> constexpr uint alphaWidth(); +template<QImage::Format> constexpr uint alphaShift(); + +template<> constexpr uint redWidth<QImage::Format_RGB16>() { return 5; } +template<> constexpr uint redWidth<QImage::Format_RGB444>() { return 4; } +template<> constexpr uint redWidth<QImage::Format_RGB555>() { return 5; } +template<> constexpr uint redWidth<QImage::Format_RGB666>() { return 6; } +template<> constexpr uint redWidth<QImage::Format_RGB888>() { return 8; } +template<> constexpr uint redWidth<QImage::Format_BGR888>() { return 8; } +template<> constexpr uint redWidth<QImage::Format_ARGB4444_Premultiplied>() { return 4; } +template<> constexpr uint redWidth<QImage::Format_ARGB8555_Premultiplied>() { return 5; } +template<> constexpr uint redWidth<QImage::Format_ARGB8565_Premultiplied>() { return 5; } +template<> constexpr uint redWidth<QImage::Format_ARGB6666_Premultiplied>() { return 6; } +template<> constexpr uint redWidth<QImage::Format_RGBX8888>() { return 8; } +template<> constexpr uint redWidth<QImage::Format_RGBA8888>() { return 8; } +template<> constexpr uint redWidth<QImage::Format_RGBA8888_Premultiplied>() { return 8; } + +template<> constexpr uint redShift<QImage::Format_RGB16>() { return 11; } +template<> constexpr uint redShift<QImage::Format_RGB444>() { return 8; } +template<> constexpr uint redShift<QImage::Format_RGB555>() { return 10; } +template<> constexpr uint redShift<QImage::Format_RGB666>() { return 12; } +template<> constexpr uint redShift<QImage::Format_RGB888>() { return 16; } +template<> constexpr uint redShift<QImage::Format_BGR888>() { return 0; } +template<> constexpr uint redShift<QImage::Format_ARGB4444_Premultiplied>() { return 8; } +template<> constexpr uint redShift<QImage::Format_ARGB8555_Premultiplied>() { return 18; } +template<> constexpr uint redShift<QImage::Format_ARGB8565_Premultiplied>() { return 19; } +template<> constexpr uint redShift<QImage::Format_ARGB6666_Premultiplied>() { return 12; } #if Q_BYTE_ORDER == Q_BIG_ENDIAN -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_RGBX8888>() { return 24; } -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_RGBA8888>() { return 24; } -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_RGBA8888_Premultiplied>() { return 24; } +template<> constexpr uint redShift<QImage::Format_RGBX8888>() { return 24; } +template<> constexpr uint redShift<QImage::Format_RGBA8888>() { return 24; } +template<> constexpr uint redShift<QImage::Format_RGBA8888_Premultiplied>() { return 24; } #else -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_RGBX8888>() { return 0; } -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_RGBA8888>() { return 0; } -template<> Q_DECL_CONSTEXPR uint redShift<QImage::Format_RGBA8888_Premultiplied>() { return 0; } +template<> constexpr uint redShift<QImage::Format_RGBX8888>() { return 0; } +template<> constexpr uint redShift<QImage::Format_RGBA8888>() { return 0; } +template<> constexpr uint redShift<QImage::Format_RGBA8888_Premultiplied>() { return 0; } #endif -template<> Q_DECL_CONSTEXPR uint greenWidth<QImage::Format_RGB16>() { return 6; } -template<> Q_DECL_CONSTEXPR uint greenWidth<QImage::Format_RGB444>() { return 4; } -template<> Q_DECL_CONSTEXPR uint greenWidth<QImage::Format_RGB555>() { return 5; } -template<> Q_DECL_CONSTEXPR uint greenWidth<QImage::Format_RGB666>() { return 6; } -template<> Q_DECL_CONSTEXPR uint greenWidth<QImage::Format_RGB888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint greenWidth<QImage::Format_BGR888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint greenWidth<QImage::Format_ARGB4444_Premultiplied>() { return 4; } -template<> Q_DECL_CONSTEXPR uint greenWidth<QImage::Format_ARGB8555_Premultiplied>() { return 5; } -template<> Q_DECL_CONSTEXPR uint greenWidth<QImage::Format_ARGB8565_Premultiplied>() { return 6; } -template<> Q_DECL_CONSTEXPR uint greenWidth<QImage::Format_ARGB6666_Premultiplied>() { return 6; } -template<> Q_DECL_CONSTEXPR uint greenWidth<QImage::Format_RGBX8888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint greenWidth<QImage::Format_RGBA8888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint greenWidth<QImage::Format_RGBA8888_Premultiplied>() { return 8; } - -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_RGB16>() { return 5; } -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_RGB444>() { return 4; } -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_RGB555>() { return 5; } -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_RGB666>() { return 6; } -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_RGB888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_BGR888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_ARGB4444_Premultiplied>() { return 4; } -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_ARGB8555_Premultiplied>() { return 13; } -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_ARGB8565_Premultiplied>() { return 13; } -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_ARGB6666_Premultiplied>() { return 6; } +template<> constexpr uint greenWidth<QImage::Format_RGB16>() { return 6; } +template<> constexpr uint greenWidth<QImage::Format_RGB444>() { return 4; } +template<> constexpr uint greenWidth<QImage::Format_RGB555>() { return 5; } +template<> constexpr uint greenWidth<QImage::Format_RGB666>() { return 6; } +template<> constexpr uint greenWidth<QImage::Format_RGB888>() { return 8; } +template<> constexpr uint greenWidth<QImage::Format_BGR888>() { return 8; } +template<> constexpr uint greenWidth<QImage::Format_ARGB4444_Premultiplied>() { return 4; } +template<> constexpr uint greenWidth<QImage::Format_ARGB8555_Premultiplied>() { return 5; } +template<> constexpr uint greenWidth<QImage::Format_ARGB8565_Premultiplied>() { return 6; } +template<> constexpr uint greenWidth<QImage::Format_ARGB6666_Premultiplied>() { return 6; } +template<> constexpr uint greenWidth<QImage::Format_RGBX8888>() { return 8; } +template<> constexpr uint greenWidth<QImage::Format_RGBA8888>() { return 8; } +template<> constexpr uint greenWidth<QImage::Format_RGBA8888_Premultiplied>() { return 8; } + +template<> constexpr uint greenShift<QImage::Format_RGB16>() { return 5; } +template<> constexpr uint greenShift<QImage::Format_RGB444>() { return 4; } +template<> constexpr uint greenShift<QImage::Format_RGB555>() { return 5; } +template<> constexpr uint greenShift<QImage::Format_RGB666>() { return 6; } +template<> constexpr uint greenShift<QImage::Format_RGB888>() { return 8; } +template<> constexpr uint greenShift<QImage::Format_BGR888>() { return 8; } +template<> constexpr uint greenShift<QImage::Format_ARGB4444_Premultiplied>() { return 4; } +template<> constexpr uint greenShift<QImage::Format_ARGB8555_Premultiplied>() { return 13; } +template<> constexpr uint greenShift<QImage::Format_ARGB8565_Premultiplied>() { return 13; } +template<> constexpr uint greenShift<QImage::Format_ARGB6666_Premultiplied>() { return 6; } #if Q_BYTE_ORDER == Q_BIG_ENDIAN -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_RGBX8888>() { return 16; } -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_RGBA8888>() { return 16; } -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_RGBA8888_Premultiplied>() { return 16; } +template<> constexpr uint greenShift<QImage::Format_RGBX8888>() { return 16; } +template<> constexpr uint greenShift<QImage::Format_RGBA8888>() { return 16; } +template<> constexpr uint greenShift<QImage::Format_RGBA8888_Premultiplied>() { return 16; } #else -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_RGBX8888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_RGBA8888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint greenShift<QImage::Format_RGBA8888_Premultiplied>() { return 8; } +template<> constexpr uint greenShift<QImage::Format_RGBX8888>() { return 8; } +template<> constexpr uint greenShift<QImage::Format_RGBA8888>() { return 8; } +template<> constexpr uint greenShift<QImage::Format_RGBA8888_Premultiplied>() { return 8; } #endif -template<> Q_DECL_CONSTEXPR uint blueWidth<QImage::Format_RGB16>() { return 5; } -template<> Q_DECL_CONSTEXPR uint blueWidth<QImage::Format_RGB444>() { return 4; } -template<> Q_DECL_CONSTEXPR uint blueWidth<QImage::Format_RGB555>() { return 5; } -template<> Q_DECL_CONSTEXPR uint blueWidth<QImage::Format_RGB666>() { return 6; } -template<> Q_DECL_CONSTEXPR uint blueWidth<QImage::Format_RGB888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint blueWidth<QImage::Format_BGR888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint blueWidth<QImage::Format_ARGB4444_Premultiplied>() { return 4; } -template<> Q_DECL_CONSTEXPR uint blueWidth<QImage::Format_ARGB8555_Premultiplied>() { return 5; } -template<> Q_DECL_CONSTEXPR uint blueWidth<QImage::Format_ARGB8565_Premultiplied>() { return 5; } -template<> Q_DECL_CONSTEXPR uint blueWidth<QImage::Format_ARGB6666_Premultiplied>() { return 6; } -template<> Q_DECL_CONSTEXPR uint blueWidth<QImage::Format_RGBX8888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint blueWidth<QImage::Format_RGBA8888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint blueWidth<QImage::Format_RGBA8888_Premultiplied>() { return 8; } - -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_RGB16>() { return 0; } -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_RGB444>() { return 0; } -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_RGB555>() { return 0; } -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_RGB666>() { return 0; } -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_RGB888>() { return 0; } -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_BGR888>() { return 16; } -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_ARGB4444_Premultiplied>() { return 0; } -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_ARGB8555_Premultiplied>() { return 8; } -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_ARGB8565_Premultiplied>() { return 8; } -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_ARGB6666_Premultiplied>() { return 0; } +template<> constexpr uint blueWidth<QImage::Format_RGB16>() { return 5; } +template<> constexpr uint blueWidth<QImage::Format_RGB444>() { return 4; } +template<> constexpr uint blueWidth<QImage::Format_RGB555>() { return 5; } +template<> constexpr uint blueWidth<QImage::Format_RGB666>() { return 6; } +template<> constexpr uint blueWidth<QImage::Format_RGB888>() { return 8; } +template<> constexpr uint blueWidth<QImage::Format_BGR888>() { return 8; } +template<> constexpr uint blueWidth<QImage::Format_ARGB4444_Premultiplied>() { return 4; } +template<> constexpr uint blueWidth<QImage::Format_ARGB8555_Premultiplied>() { return 5; } +template<> constexpr uint blueWidth<QImage::Format_ARGB8565_Premultiplied>() { return 5; } +template<> constexpr uint blueWidth<QImage::Format_ARGB6666_Premultiplied>() { return 6; } +template<> constexpr uint blueWidth<QImage::Format_RGBX8888>() { return 8; } +template<> constexpr uint blueWidth<QImage::Format_RGBA8888>() { return 8; } +template<> constexpr uint blueWidth<QImage::Format_RGBA8888_Premultiplied>() { return 8; } + +template<> constexpr uint blueShift<QImage::Format_RGB16>() { return 0; } +template<> constexpr uint blueShift<QImage::Format_RGB444>() { return 0; } +template<> constexpr uint blueShift<QImage::Format_RGB555>() { return 0; } +template<> constexpr uint blueShift<QImage::Format_RGB666>() { return 0; } +template<> constexpr uint blueShift<QImage::Format_RGB888>() { return 0; } +template<> constexpr uint blueShift<QImage::Format_BGR888>() { return 16; } +template<> constexpr uint blueShift<QImage::Format_ARGB4444_Premultiplied>() { return 0; } +template<> constexpr uint blueShift<QImage::Format_ARGB8555_Premultiplied>() { return 8; } +template<> constexpr uint blueShift<QImage::Format_ARGB8565_Premultiplied>() { return 8; } +template<> constexpr uint blueShift<QImage::Format_ARGB6666_Premultiplied>() { return 0; } #if Q_BYTE_ORDER == Q_BIG_ENDIAN -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_RGBX8888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_RGBA8888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_RGBA8888_Premultiplied>() { return 8; } +template<> constexpr uint blueShift<QImage::Format_RGBX8888>() { return 8; } +template<> constexpr uint blueShift<QImage::Format_RGBA8888>() { return 8; } +template<> constexpr uint blueShift<QImage::Format_RGBA8888_Premultiplied>() { return 8; } #else -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_RGBX8888>() { return 16; } -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_RGBA8888>() { return 16; } -template<> Q_DECL_CONSTEXPR uint blueShift<QImage::Format_RGBA8888_Premultiplied>() { return 16; } +template<> constexpr uint blueShift<QImage::Format_RGBX8888>() { return 16; } +template<> constexpr uint blueShift<QImage::Format_RGBA8888>() { return 16; } +template<> constexpr uint blueShift<QImage::Format_RGBA8888_Premultiplied>() { return 16; } #endif -template<> Q_DECL_CONSTEXPR uint alphaWidth<QImage::Format_RGB16>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaWidth<QImage::Format_RGB444>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaWidth<QImage::Format_RGB555>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaWidth<QImage::Format_RGB666>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaWidth<QImage::Format_RGB888>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaWidth<QImage::Format_BGR888>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaWidth<QImage::Format_ARGB4444_Premultiplied>() { return 4; } -template<> Q_DECL_CONSTEXPR uint alphaWidth<QImage::Format_ARGB8555_Premultiplied>() { return 8; } -template<> Q_DECL_CONSTEXPR uint alphaWidth<QImage::Format_ARGB8565_Premultiplied>() { return 8; } -template<> Q_DECL_CONSTEXPR uint alphaWidth<QImage::Format_ARGB6666_Premultiplied>() { return 6; } -template<> Q_DECL_CONSTEXPR uint alphaWidth<QImage::Format_RGBX8888>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaWidth<QImage::Format_RGBA8888>() { return 8; } -template<> Q_DECL_CONSTEXPR uint alphaWidth<QImage::Format_RGBA8888_Premultiplied>() { return 8; } - -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_RGB16>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_RGB444>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_RGB555>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_RGB666>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_RGB888>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_BGR888>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_ARGB4444_Premultiplied>() { return 12; } -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_ARGB8555_Premultiplied>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_ARGB8565_Premultiplied>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_ARGB6666_Premultiplied>() { return 18; } +template<> constexpr uint alphaWidth<QImage::Format_RGB16>() { return 0; } +template<> constexpr uint alphaWidth<QImage::Format_RGB444>() { return 0; } +template<> constexpr uint alphaWidth<QImage::Format_RGB555>() { return 0; } +template<> constexpr uint alphaWidth<QImage::Format_RGB666>() { return 0; } +template<> constexpr uint alphaWidth<QImage::Format_RGB888>() { return 0; } +template<> constexpr uint alphaWidth<QImage::Format_BGR888>() { return 0; } +template<> constexpr uint alphaWidth<QImage::Format_ARGB4444_Premultiplied>() { return 4; } +template<> constexpr uint alphaWidth<QImage::Format_ARGB8555_Premultiplied>() { return 8; } +template<> constexpr uint alphaWidth<QImage::Format_ARGB8565_Premultiplied>() { return 8; } +template<> constexpr uint alphaWidth<QImage::Format_ARGB6666_Premultiplied>() { return 6; } +template<> constexpr uint alphaWidth<QImage::Format_RGBX8888>() { return 0; } +template<> constexpr uint alphaWidth<QImage::Format_RGBA8888>() { return 8; } +template<> constexpr uint alphaWidth<QImage::Format_RGBA8888_Premultiplied>() { return 8; } + +template<> constexpr uint alphaShift<QImage::Format_RGB16>() { return 0; } +template<> constexpr uint alphaShift<QImage::Format_RGB444>() { return 0; } +template<> constexpr uint alphaShift<QImage::Format_RGB555>() { return 0; } +template<> constexpr uint alphaShift<QImage::Format_RGB666>() { return 0; } +template<> constexpr uint alphaShift<QImage::Format_RGB888>() { return 0; } +template<> constexpr uint alphaShift<QImage::Format_BGR888>() { return 0; } +template<> constexpr uint alphaShift<QImage::Format_ARGB4444_Premultiplied>() { return 12; } +template<> constexpr uint alphaShift<QImage::Format_ARGB8555_Premultiplied>() { return 0; } +template<> constexpr uint alphaShift<QImage::Format_ARGB8565_Premultiplied>() { return 0; } +template<> constexpr uint alphaShift<QImage::Format_ARGB6666_Premultiplied>() { return 18; } #if Q_BYTE_ORDER == Q_BIG_ENDIAN -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_RGBX8888>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_RGBA8888>() { return 0; } -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_RGBA8888_Premultiplied>() { return 0; } +template<> constexpr uint alphaShift<QImage::Format_RGBX8888>() { return 0; } +template<> constexpr uint alphaShift<QImage::Format_RGBA8888>() { return 0; } +template<> constexpr uint alphaShift<QImage::Format_RGBA8888_Premultiplied>() { return 0; } #else -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_RGBX8888>() { return 24; } -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_RGBA8888>() { return 24; } -template<> Q_DECL_CONSTEXPR uint alphaShift<QImage::Format_RGBA8888_Premultiplied>() { return 24; } +template<> constexpr uint alphaShift<QImage::Format_RGBX8888>() { return 24; } +template<> constexpr uint alphaShift<QImage::Format_RGBA8888>() { return 24; } +template<> constexpr uint alphaShift<QImage::Format_RGBA8888_Premultiplied>() { return 24; } #endif template<QImage::Format> constexpr QPixelLayout::BPP bitsPerPixel(); @@ -221,17 +221,17 @@ inline void QT_FASTCALL storePixel<QPixelLayout::BPP24>(uchar *dest, int index, template<QImage::Format Format> static inline uint convertPixelToRGB32(uint s) { - Q_CONSTEXPR uint redMask = ((1 << redWidth<Format>()) - 1); - Q_CONSTEXPR uint greenMask = ((1 << greenWidth<Format>()) - 1); - Q_CONSTEXPR uint blueMask = ((1 << blueWidth<Format>()) - 1); + constexpr uint redMask = ((1 << redWidth<Format>()) - 1); + constexpr uint greenMask = ((1 << greenWidth<Format>()) - 1); + constexpr uint blueMask = ((1 << blueWidth<Format>()) - 1); - Q_CONSTEXPR uchar redLeftShift = 8 - redWidth<Format>(); - Q_CONSTEXPR uchar greenLeftShift = 8 - greenWidth<Format>(); - Q_CONSTEXPR uchar blueLeftShift = 8 - blueWidth<Format>(); + constexpr uchar redLeftShift = 8 - redWidth<Format>(); + constexpr uchar greenLeftShift = 8 - greenWidth<Format>(); + constexpr uchar blueLeftShift = 8 - blueWidth<Format>(); - Q_CONSTEXPR uchar redRightShift = 2 * redWidth<Format>() - 8; - Q_CONSTEXPR uchar greenRightShift = 2 * greenWidth<Format>() - 8; - Q_CONSTEXPR uchar blueRightShift = 2 * blueWidth<Format>() - 8; + constexpr uchar redRightShift = 2 * redWidth<Format>() - 8; + constexpr uchar greenRightShift = 2 * greenWidth<Format>() - 8; + constexpr uchar blueRightShift = 2 * blueWidth<Format>() - 8; uint red = (s >> redShift<Format>()) & redMask; uint green = (s >> greenShift<Format>()) & greenMask; @@ -300,22 +300,22 @@ static const QRgba64 *QT_FASTCALL fetchRGBToRGB64(QRgba64 *buffer, const uchar * template<QImage::Format Format> static inline uint convertPixelToARGB32PM(uint s) { - Q_CONSTEXPR uint alphaMask = ((1 << alphaWidth<Format>()) - 1); - Q_CONSTEXPR uint redMask = ((1 << redWidth<Format>()) - 1); - Q_CONSTEXPR uint greenMask = ((1 << greenWidth<Format>()) - 1); - Q_CONSTEXPR uint blueMask = ((1 << blueWidth<Format>()) - 1); + constexpr uint alphaMask = ((1 << alphaWidth<Format>()) - 1); + constexpr uint redMask = ((1 << redWidth<Format>()) - 1); + constexpr uint greenMask = ((1 << greenWidth<Format>()) - 1); + constexpr uint blueMask = ((1 << blueWidth<Format>()) - 1); - Q_CONSTEXPR uchar alphaLeftShift = 8 - alphaWidth<Format>(); - Q_CONSTEXPR uchar redLeftShift = 8 - redWidth<Format>(); - Q_CONSTEXPR uchar greenLeftShift = 8 - greenWidth<Format>(); - Q_CONSTEXPR uchar blueLeftShift = 8 - blueWidth<Format>(); + constexpr uchar alphaLeftShift = 8 - alphaWidth<Format>(); + constexpr uchar redLeftShift = 8 - redWidth<Format>(); + constexpr uchar greenLeftShift = 8 - greenWidth<Format>(); + constexpr uchar blueLeftShift = 8 - blueWidth<Format>(); - Q_CONSTEXPR uchar alphaRightShift = 2 * alphaWidth<Format>() - 8; - Q_CONSTEXPR uchar redRightShift = 2 * redWidth<Format>() - 8; - Q_CONSTEXPR uchar greenRightShift = 2 * greenWidth<Format>() - 8; - Q_CONSTEXPR uchar blueRightShift = 2 * blueWidth<Format>() - 8; + constexpr uchar alphaRightShift = 2 * alphaWidth<Format>() - 8; + constexpr uchar redRightShift = 2 * redWidth<Format>() - 8; + constexpr uchar greenRightShift = 2 * greenWidth<Format>() - 8; + constexpr uchar blueRightShift = 2 * blueWidth<Format>() - 8; - Q_CONSTEXPR bool mustMin = (alphaWidth<Format>() != redWidth<Format>()) || + constexpr bool mustMin = (alphaWidth<Format>() != redWidth<Format>()) || (alphaWidth<Format>() != greenWidth<Format>()) || (alphaWidth<Format>() != blueWidth<Format>()); @@ -393,19 +393,19 @@ template<QImage::Format Format, bool fromRGB> static void QT_FASTCALL storeRGBFromARGB32PM(uchar *dest, const uint *src, int index, int count, const QList<QRgb> *, QDitherInfo *dither) { - Q_CONSTEXPR uchar rWidth = redWidth<Format>(); - Q_CONSTEXPR uchar gWidth = greenWidth<Format>(); - Q_CONSTEXPR uchar bWidth = blueWidth<Format>(); + constexpr uchar rWidth = redWidth<Format>(); + constexpr uchar gWidth = greenWidth<Format>(); + constexpr uchar bWidth = blueWidth<Format>(); constexpr QPixelLayout::BPP BPP = bitsPerPixel<Format>(); // RGB32 -> RGB888 is not a precision loss. if (!dither || (rWidth == 8 && gWidth == 8 && bWidth == 8)) { - Q_CONSTEXPR uint rMask = (1 << redWidth<Format>()) - 1; - Q_CONSTEXPR uint gMask = (1 << greenWidth<Format>()) - 1; - Q_CONSTEXPR uint bMask = (1 << blueWidth<Format>()) - 1; - Q_CONSTEXPR uchar rRightShift = 24 - redWidth<Format>(); - Q_CONSTEXPR uchar gRightShift = 16 - greenWidth<Format>(); - Q_CONSTEXPR uchar bRightShift = 8 - blueWidth<Format>(); + constexpr uint rMask = (1 << redWidth<Format>()) - 1; + constexpr uint gMask = (1 << greenWidth<Format>()) - 1; + constexpr uint bMask = (1 << blueWidth<Format>()) - 1; + constexpr uchar rRightShift = 24 - redWidth<Format>(); + constexpr uchar gRightShift = 16 - greenWidth<Format>(); + constexpr uchar bRightShift = 8 - blueWidth<Format>(); for (int i = 0; i < count; ++i) { const uint c = fromRGB ? src[i] : qUnpremultiply(src[i]); @@ -447,17 +447,17 @@ static void QT_FASTCALL storeARGBPMFromARGB32PM(uchar *dest, const uint *src, in { constexpr QPixelLayout::BPP BPP = bitsPerPixel<Format>(); if (!dither) { - Q_CONSTEXPR uint aMask = (1 << alphaWidth<Format>()) - 1; - Q_CONSTEXPR uint rMask = (1 << redWidth<Format>()) - 1; - Q_CONSTEXPR uint gMask = (1 << greenWidth<Format>()) - 1; - Q_CONSTEXPR uint bMask = (1 << blueWidth<Format>()) - 1; + constexpr uint aMask = (1 << alphaWidth<Format>()) - 1; + constexpr uint rMask = (1 << redWidth<Format>()) - 1; + constexpr uint gMask = (1 << greenWidth<Format>()) - 1; + constexpr uint bMask = (1 << blueWidth<Format>()) - 1; - Q_CONSTEXPR uchar aRightShift = 32 - alphaWidth<Format>(); - Q_CONSTEXPR uchar rRightShift = 24 - redWidth<Format>(); - Q_CONSTEXPR uchar gRightShift = 16 - greenWidth<Format>(); - Q_CONSTEXPR uchar bRightShift = 8 - blueWidth<Format>(); + constexpr uchar aRightShift = 32 - alphaWidth<Format>(); + constexpr uchar rRightShift = 24 - redWidth<Format>(); + constexpr uchar gRightShift = 16 - greenWidth<Format>(); + constexpr uchar bRightShift = 8 - blueWidth<Format>(); - Q_CONSTEXPR uint aOpaque = aMask << alphaShift<Format>(); + constexpr uint aOpaque = aMask << alphaShift<Format>(); for (int i = 0; i < count; ++i) { const uint c = src[i]; const uint a = fromRGB ? aOpaque : (((c >> aRightShift) & aMask) << alphaShift<Format>()); @@ -467,10 +467,10 @@ static void QT_FASTCALL storeARGBPMFromARGB32PM(uchar *dest, const uint *src, in storePixel<BPP>(dest, index + i, a | r | g | b); }; } else { - Q_CONSTEXPR uchar aWidth = alphaWidth<Format>(); - Q_CONSTEXPR uchar rWidth = redWidth<Format>(); - Q_CONSTEXPR uchar gWidth = greenWidth<Format>(); - Q_CONSTEXPR uchar bWidth = blueWidth<Format>(); + constexpr uchar aWidth = alphaWidth<Format>(); + constexpr uchar rWidth = redWidth<Format>(); + constexpr uchar gWidth = greenWidth<Format>(); + constexpr uchar bWidth = blueWidth<Format>(); const uint *bayer_line = qt_bayer_matrix[dither->y & 15]; for (int i = 0; i < count; ++i) { @@ -503,19 +503,19 @@ static void QT_FASTCALL storeARGBPMFromARGB32PM(uchar *dest, const uint *src, in template<QImage::Format Format> static void QT_FASTCALL rbSwap(uchar *dst, const uchar *src, int count) { - Q_CONSTEXPR uchar aWidth = alphaWidth<Format>(); - Q_CONSTEXPR uchar aShift = alphaShift<Format>(); - Q_CONSTEXPR uchar rWidth = redWidth<Format>(); - Q_CONSTEXPR uchar rShift = redShift<Format>(); - Q_CONSTEXPR uchar gWidth = greenWidth<Format>(); - Q_CONSTEXPR uchar gShift = greenShift<Format>(); - Q_CONSTEXPR uchar bWidth = blueWidth<Format>(); - Q_CONSTEXPR uchar bShift = blueShift<Format>(); + constexpr uchar aWidth = alphaWidth<Format>(); + constexpr uchar aShift = alphaShift<Format>(); + constexpr uchar rWidth = redWidth<Format>(); + constexpr uchar rShift = redShift<Format>(); + constexpr uchar gWidth = greenWidth<Format>(); + constexpr uchar gShift = greenShift<Format>(); + constexpr uchar bWidth = blueWidth<Format>(); + constexpr uchar bShift = blueShift<Format>(); #ifdef Q_COMPILER_CONSTEXPR static_assert(rWidth == bWidth); #endif - Q_CONSTEXPR uint redBlueMask = (1 << rWidth) - 1; - Q_CONSTEXPR uint alphaGreenMask = (((1 << aWidth) - 1) << aShift) + constexpr uint redBlueMask = (1 << rWidth) - 1; + constexpr uint alphaGreenMask = (((1 << aWidth) - 1) << aShift) | (((1 << gWidth) - 1) << gShift); constexpr QPixelLayout::BPP bpp = bitsPerPixel<Format>(); @@ -570,7 +570,7 @@ static void QT_FASTCALL rbSwap_rgb30(uchar *d, const uchar *s, int count) UNALIASED_CONVERSION_LOOP(dest, src, count, qRgbSwapRgb30); } -template<QImage::Format Format> Q_DECL_CONSTEXPR static inline QPixelLayout pixelLayoutRGB() +template<QImage::Format Format> constexpr static inline QPixelLayout pixelLayoutRGB() { return QPixelLayout{ false, @@ -586,7 +586,7 @@ template<QImage::Format Format> Q_DECL_CONSTEXPR static inline QPixelLayout pixe }; } -template<QImage::Format Format> Q_DECL_CONSTEXPR static inline QPixelLayout pixelLayoutARGBPM() +template<QImage::Format Format> constexpr static inline QPixelLayout pixelLayoutARGBPM() { return QPixelLayout{ true, diff --git a/src/gui/painting/qpixellayout_p.h b/src/gui/painting/qpixellayout_p.h index 99d98ac36e..6d20131efe 100644 --- a/src/gui/painting/qpixellayout_p.h +++ b/src/gui/painting/qpixellayout_p.h @@ -77,7 +77,7 @@ inline QRgb qRepremultiply(QRgb p) if (alpha == 255 || alpha == 0) return p; p = qUnpremultiply(p); - Q_CONSTEXPR uint mult = 255 / (255 >> Shift); + constexpr uint mult = 255 / (255 >> Shift); const uint newAlpha = mult * (alpha >> Shift); p = (p & ~0xff000000) | (newAlpha<<24); return qPremultiply(p); @@ -90,7 +90,7 @@ inline QRgba64 qRepremultiply(QRgba64 p) if (alpha == 65535 || alpha == 0) return p; p = p.unpremultiplied(); - Q_CONSTEXPR uint mult = 65535 / (65535 >> Shift); + constexpr uint mult = 65535 / (65535 >> Shift); p.setAlpha(mult * (alpha >> Shift)); return p.premultiplied(); } diff --git a/src/gui/painting/qrgb.h b/src/gui/painting/qrgb.h index fe8306109b..c6caa62c75 100644 --- a/src/gui/painting/qrgb.h +++ b/src/gui/painting/qrgb.h @@ -51,34 +51,34 @@ typedef unsigned int QRgb; // RGB triplet // non-namespaced Qt global variable const Q_DECL_UNUSED QRgb RGB_MASK = 0x00ffffff; // masks RGB values -inline Q_DECL_CONSTEXPR int qRed(QRgb rgb) // get red part of RGB +inline constexpr int qRed(QRgb rgb) // get red part of RGB { return ((rgb >> 16) & 0xff); } -inline Q_DECL_CONSTEXPR int qGreen(QRgb rgb) // get green part of RGB +inline constexpr int qGreen(QRgb rgb) // get green part of RGB { return ((rgb >> 8) & 0xff); } -inline Q_DECL_CONSTEXPR int qBlue(QRgb rgb) // get blue part of RGB +inline constexpr int qBlue(QRgb rgb) // get blue part of RGB { return (rgb & 0xff); } -inline Q_DECL_CONSTEXPR int qAlpha(QRgb rgb) // get alpha part of RGBA +inline constexpr int qAlpha(QRgb rgb) // get alpha part of RGBA { return rgb >> 24; } -inline Q_DECL_CONSTEXPR QRgb qRgb(int r, int g, int b)// set RGB value +inline constexpr QRgb qRgb(int r, int g, int b) // set RGB value { return (0xffu << 24) | ((r & 0xffu) << 16) | ((g & 0xffu) << 8) | (b & 0xffu); } -inline Q_DECL_CONSTEXPR QRgb qRgba(int r, int g, int b, int a)// set RGBA value +inline constexpr QRgb qRgba(int r, int g, int b, int a) // set RGBA value { return ((a & 0xffu) << 24) | ((r & 0xffu) << 16) | ((g & 0xffu) << 8) | (b & 0xffu); } -inline Q_DECL_CONSTEXPR int qGray(int r, int g, int b)// convert R,G,B to gray 0..255 +inline constexpr int qGray(int r, int g, int b) // convert R,G,B to gray 0..255 { return (r*11+g*16+b*5)/32; } -inline Q_DECL_CONSTEXPR int qGray(QRgb rgb) // convert RGB to gray 0..255 +inline constexpr int qGray(QRgb rgb) // convert RGB to gray 0..255 { return qGray(qRed(rgb), qGreen(rgb), qBlue(rgb)); } -inline Q_DECL_CONSTEXPR bool qIsGray(QRgb rgb) +inline constexpr bool qIsGray(QRgb rgb) { return qRed(rgb) == qGreen(rgb) && qRed(rgb) == qBlue(rgb); } -inline Q_DECL_RELAXED_CONSTEXPR QRgb qPremultiply(QRgb x) +inline constexpr QRgb qPremultiply(QRgb x) { const uint a = qAlpha(x); uint t = (x & 0xff00ff) * a; diff --git a/src/gui/painting/qrgba64.h b/src/gui/painting/qrgba64.h index 30d5e244b8..2c644c4cf0 100644 --- a/src/gui/painting/qrgba64.h +++ b/src/gui/painting/qrgba64.h @@ -64,16 +64,16 @@ class QRgba64 { #endif }; - explicit Q_ALWAYS_INLINE Q_DECL_CONSTEXPR QRgba64(quint64 c) : rgba(c) { } + explicit Q_ALWAYS_INLINE constexpr QRgba64(quint64 c) : rgba(c) { } public: QRgba64() = default; - Q_DECL_CONSTEXPR static + constexpr static QRgba64 fromRgba64(quint64 c) { return QRgba64(c); } - Q_DECL_CONSTEXPR static + constexpr static QRgba64 fromRgba64(quint16 red, quint16 green, quint16 blue, quint16 alpha) { return fromRgba64(quint64(red) << RedShift @@ -81,42 +81,42 @@ public: | quint64(blue) << BlueShift | quint64(alpha) << AlphaShift); } - Q_DECL_RELAXED_CONSTEXPR static QRgba64 fromRgba(quint8 red, quint8 green, quint8 blue, quint8 alpha) + constexpr static QRgba64 fromRgba(quint8 red, quint8 green, quint8 blue, quint8 alpha) { QRgba64 rgb64 = fromRgba64(red, green, blue, alpha); // Expand the range so that 0x00 maps to 0x0000 and 0xff maps to 0xffff. rgb64.rgba |= rgb64.rgba << 8; return rgb64; } - Q_DECL_RELAXED_CONSTEXPR static + constexpr static QRgba64 fromArgb32(uint rgb) { return fromRgba(quint8(rgb >> 16), quint8(rgb >> 8), quint8(rgb), quint8(rgb >> 24)); } - Q_DECL_CONSTEXPR bool isOpaque() const + constexpr bool isOpaque() const { return (rgba & alphaMask()) == alphaMask(); } - Q_DECL_CONSTEXPR bool isTransparent() const + constexpr bool isTransparent() const { return (rgba & alphaMask()) == 0; } - Q_DECL_CONSTEXPR quint16 red() const { return quint16(rgba >> RedShift); } - Q_DECL_CONSTEXPR quint16 green() const { return quint16(rgba >> GreenShift); } - Q_DECL_CONSTEXPR quint16 blue() const { return quint16(rgba >> BlueShift); } - Q_DECL_CONSTEXPR quint16 alpha() const { return quint16(rgba >> AlphaShift); } + constexpr quint16 red() const { return quint16(rgba >> RedShift); } + constexpr quint16 green() const { return quint16(rgba >> GreenShift); } + constexpr quint16 blue() const { return quint16(rgba >> BlueShift); } + constexpr quint16 alpha() const { return quint16(rgba >> AlphaShift); } void setRed(quint16 _red) { rgba = (rgba & ~(Q_UINT64_C(0xffff) << RedShift)) | (quint64(_red) << RedShift); } void setGreen(quint16 _green) { rgba = (rgba & ~(Q_UINT64_C(0xffff) << GreenShift)) | (quint64(_green) << GreenShift); } void setBlue(quint16 _blue) { rgba = (rgba & ~(Q_UINT64_C(0xffff) << BlueShift)) | (quint64(_blue) << BlueShift); } void setAlpha(quint16 _alpha) { rgba = (rgba & ~(Q_UINT64_C(0xffff) << AlphaShift)) | (quint64(_alpha) << AlphaShift); } - Q_DECL_CONSTEXPR quint8 red8() const { return div_257(red()); } - Q_DECL_CONSTEXPR quint8 green8() const { return div_257(green()); } - Q_DECL_CONSTEXPR quint8 blue8() const { return div_257(blue()); } - Q_DECL_CONSTEXPR quint8 alpha8() const { return div_257(alpha()); } - Q_DECL_CONSTEXPR uint toArgb32() const + constexpr quint8 red8() const { return div_257(red()); } + constexpr quint8 green8() const { return div_257(green()); } + constexpr quint8 blue8() const { return div_257(blue()); } + constexpr quint8 alpha8() const { return div_257(alpha()); } + constexpr uint toArgb32() const { #if defined(__cpp_constexpr) && __cpp_constexpr-0 >= 201304 quint64 br = rgba & Q_UINT64_C(0xffff0000ffff); @@ -140,12 +140,12 @@ public: return uint((alpha8() << 24) | (red8() << 16) | (green8() << 8) | blue8()); #endif } - Q_DECL_CONSTEXPR ushort toRgb16() const + constexpr ushort toRgb16() const { return ushort((red() & 0xf800) | ((green() >> 10) << 5) | (blue() >> 11)); } - Q_DECL_RELAXED_CONSTEXPR QRgba64 premultiplied() const + constexpr QRgba64 premultiplied() const { if (isOpaque()) return *this; @@ -167,7 +167,7 @@ public: #endif } - Q_DECL_RELAXED_CONSTEXPR QRgba64 unpremultiplied() const + constexpr QRgba64 unpremultiplied() const { #if Q_PROCESSOR_WORDSIZE < 8 return unpremultiplied_32bit(); @@ -176,7 +176,7 @@ public: #endif } - Q_DECL_CONSTEXPR operator quint64() const + constexpr operator quint64() const { return rgba; } @@ -188,11 +188,11 @@ public: } private: - static Q_DECL_CONSTEXPR Q_ALWAYS_INLINE quint64 alphaMask() { return Q_UINT64_C(0xffff) << AlphaShift; } + static constexpr Q_ALWAYS_INLINE quint64 alphaMask() { return Q_UINT64_C(0xffff) << AlphaShift; } - static Q_DECL_CONSTEXPR Q_ALWAYS_INLINE quint8 div_257_floor(uint x) { return quint8((x - (x >> 8)) >> 8); } - static Q_DECL_CONSTEXPR Q_ALWAYS_INLINE quint8 div_257(quint16 x) { return div_257_floor(x + 128U); } - Q_DECL_RELAXED_CONSTEXPR Q_ALWAYS_INLINE QRgba64 unpremultiplied_32bit() const + static constexpr Q_ALWAYS_INLINE quint8 div_257_floor(uint x) { return quint8((x - (x >> 8)) >> 8); } + static constexpr Q_ALWAYS_INLINE quint8 div_257(quint16 x) { return div_257_floor(x + 128U); } + constexpr Q_ALWAYS_INLINE QRgba64 unpremultiplied_32bit() const { if (isOpaque() || isTransparent()) return *this; @@ -202,7 +202,7 @@ private: const quint16 b = quint16((blue() * 0xffff + a/2) / a); return fromRgba64(r, g, b, quint16(a)); } - Q_DECL_RELAXED_CONSTEXPR Q_ALWAYS_INLINE QRgba64 unpremultiplied_64bit() const + constexpr Q_ALWAYS_INLINE QRgba64 unpremultiplied_64bit() const { if (isOpaque() || isTransparent()) return *this; @@ -217,36 +217,36 @@ private: Q_DECLARE_TYPEINFO(QRgba64, Q_PRIMITIVE_TYPE); -Q_DECL_CONSTEXPR inline QRgba64 qRgba64(quint16 r, quint16 g, quint16 b, quint16 a) +constexpr inline QRgba64 qRgba64(quint16 r, quint16 g, quint16 b, quint16 a) { return QRgba64::fromRgba64(r, g, b, a); } -Q_DECL_CONSTEXPR inline QRgba64 qRgba64(quint64 c) +constexpr inline QRgba64 qRgba64(quint64 c) { return QRgba64::fromRgba64(c); } -Q_DECL_RELAXED_CONSTEXPR inline QRgba64 qPremultiply(QRgba64 c) +constexpr inline QRgba64 qPremultiply(QRgba64 c) { return c.premultiplied(); } -Q_DECL_RELAXED_CONSTEXPR inline QRgba64 qUnpremultiply(QRgba64 c) +constexpr inline QRgba64 qUnpremultiply(QRgba64 c) { return c.unpremultiplied(); } -inline Q_DECL_CONSTEXPR uint qRed(QRgba64 rgb) +inline constexpr uint qRed(QRgba64 rgb) { return rgb.red8(); } -inline Q_DECL_CONSTEXPR uint qGreen(QRgba64 rgb) +inline constexpr uint qGreen(QRgba64 rgb) { return rgb.green8(); } -inline Q_DECL_CONSTEXPR uint qBlue(QRgba64 rgb) +inline constexpr uint qBlue(QRgba64 rgb) { return rgb.blue8(); } -inline Q_DECL_CONSTEXPR uint qAlpha(QRgba64 rgb) +inline constexpr uint qAlpha(QRgba64 rgb) { return rgb.alpha8(); } QT_END_NAMESPACE diff --git a/src/gui/painting/webgradients.cpp b/src/gui/painting/webgradients.cpp index d837c4383c..8800523367 100644 --- a/src/gui/painting/webgradients.cpp +++ b/src/gui/painting/webgradients.cpp @@ -386,7 +386,7 @@ static QList<QGradientStop> qt_preset_gradient_stops(QGradient::Preset preset) return {}; } -static Q_CONSTEXPR QGradient::QGradientData qt_preset_gradient_data[] = { +static constexpr QGradient::QGradientData qt_preset_gradient_data[] = { { { 0, 1, 1, 0 } }, { { 0.5, 1, 0.5, 0 } }, { { 0.5, 1, 0.5, 0 } }, diff --git a/src/gui/text/qtextengine_p.h b/src/gui/text/qtextengine_p.h index 61c47c5e83..0e80510058 100644 --- a/src/gui/text/qtextengine_p.h +++ b/src/gui/text/qtextengine_p.h @@ -332,7 +332,7 @@ public: struct QScriptItem { - Q_DECL_CONSTEXPR QScriptItem(int p, QScriptAnalysis a) noexcept + constexpr QScriptItem(int p, QScriptAnalysis a) noexcept : position(p), analysis(a), num_glyphs(0), descent(-1), ascent(-1), leading(-1), width(-1), glyph_data_offset(0) {} @@ -345,7 +345,7 @@ struct QScriptItem QFixed leading; QFixed width; int glyph_data_offset; - Q_DECL_CONSTEXPR QFixed height() const noexcept { return ascent + descent; } + constexpr QFixed height() const noexcept { return ascent + descent; } private: friend class QList<QScriptItem>; QScriptItem() {} // for QList, don't use |