From 3de71d1bd546cbca2661f7b1c1d7b6a3d5f97880 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Thu, 22 Dec 2022 11:45:23 +0100 Subject: [PATCH] QskGradient::Spread -> QskGradient::SpreadMode --- playground/gradients/GradientQuickShape.cpp | 2 +- playground/gradients/main.cpp | 2 +- playground/shapes/Window.cpp | 18 +++---- playground/shapes/shapes.qml | 16 +++--- qmlexport/QskQml.cpp | 7 ++- src/common/QskGradient.cpp | 59 ++++++++------------- src/common/QskGradient.h | 16 +++--- src/nodes/QskColorRamp.cpp | 26 ++++----- src/nodes/QskColorRamp.h | 3 +- src/nodes/QskGradientMaterial.cpp | 18 +++---- src/nodes/QskGradientMaterial.h | 14 ++--- 11 files changed, 86 insertions(+), 95 deletions(-) diff --git a/playground/gradients/GradientQuickShape.cpp b/playground/gradients/GradientQuickShape.cpp index 1600c26f..cedce13c 100644 --- a/playground/gradients/GradientQuickShape.cpp +++ b/playground/gradients/GradientQuickShape.cpp @@ -115,7 +115,7 @@ namespace } shapeGradient->setSpread( - static_cast< QQuickShapeGradient::SpreadMode >( gradient.spread() ) ); + static_cast< QQuickShapeGradient::SpreadMode >( gradient.spreadMode() ) ); /* QQuickGradient has been made in the early days of Qt5 for the QML diff --git a/playground/gradients/main.cpp b/playground/gradients/main.cpp index 032430c9..ef131861 100644 --- a/playground/gradients/main.cpp +++ b/playground/gradients/main.cpp @@ -46,7 +46,7 @@ namespace QskGradient gradient; gradient.setLinearDirection( 0.0, 0.0, 1.0, 1.0 ); - gradient.setSpread( QskGradient::RepeatSpread ); + gradient.setSpreadMode( QskGradient::RepeatSpread ); gradient.setStops( stops ); showGradient( gradient ); diff --git a/playground/shapes/Window.cpp b/playground/shapes/Window.cpp index 69a1a1b8..da30217e 100644 --- a/playground/shapes/Window.cpp +++ b/playground/shapes/Window.cpp @@ -35,7 +35,7 @@ namespace QskGradient gradient( QGradient::PhoenixStart ); gradient.setLinearDirection( 0.0, 0.0, 0.2, 0.5 ); - gradient.setSpread( QskGradient::ReflectSpread ); + gradient.setSpreadMode( QskGradient::ReflectSpread ); shapeItem->setGradient( gradient ); } @@ -50,7 +50,7 @@ namespace QskGradient gradient( stops ); gradient.setLinearDirection( 0.0, 0.0, 0.05, 0.1 ); - gradient.setSpread( QskGradient::RepeatSpread ); + gradient.setSpreadMode( QskGradient::RepeatSpread ); shapeItem->setGradient( gradient ); } @@ -83,7 +83,7 @@ namespace QskGradient gradient( QskRgb::LightYellow, QskRgb::MidnightBlue ); gradient.setRadialDirection( QskRadialDirection() ); - gradient.setSpread( QskGradient::PadSpread ); + gradient.setSpreadMode( QskGradient::PadSpread ); shapeItem->setGradient( gradient ); } @@ -107,7 +107,7 @@ namespace QskGradient gradient( stops ); gradient.setDirection( QskGradient::Radial ); - gradient.setSpread( QskGradient::PadSpread ); + gradient.setSpreadMode( QskGradient::PadSpread ); shapeItem->setGradient( gradient ); } @@ -118,7 +118,7 @@ namespace QskGradient gradient( QGradient::LilyMeadow ); gradient.setRadialDirection( 0.5, 0.7, 0.25 ); - gradient.setSpread( QskGradient::RepeatSpread ); + gradient.setSpreadMode( QskGradient::RepeatSpread ); shapeItem->setGradient( gradient ); } @@ -129,7 +129,7 @@ namespace QskGradient gradient( Qt::red, Qt::blue ); gradient.setRadialDirection( 0.6, 0.4, 0.1 ); - gradient.setSpread( QskGradient::ReflectSpread ); + gradient.setSpreadMode( QskGradient::ReflectSpread ); shapeItem->setGradient( gradient ); } @@ -149,7 +149,7 @@ namespace QskGradient gradient( QGradient::JuicyPeach ); gradient.setConicDirection( 0.5, 0.5, 30.0, 60.0 ); - gradient.setSpread( QskGradient::ReflectSpread ); + gradient.setSpreadMode( QskGradient::ReflectSpread ); shapeItem->setGradient( gradient ); } @@ -160,7 +160,7 @@ namespace QskGradient gradient( QGradient::WinterNeva ); gradient.setConicDirection( 0.5, 0.5, 30.0, 60.0 ); - gradient.setSpread( QskGradient::RepeatSpread ); + gradient.setSpreadMode( QskGradient::RepeatSpread ); shapeItem->setGradient( gradient ); } @@ -179,7 +179,7 @@ namespace QskGradient gradient( QGradient::FabledSunset ); gradient.setConicDirection( 0.5, 0.5, 45.0, 180.0 ); - gradient.setSpread( QskGradient::ReflectSpread ); + gradient.setSpreadMode( QskGradient::ReflectSpread ); shapeItem->setGradient( gradient ); } diff --git a/playground/shapes/shapes.qml b/playground/shapes/shapes.qml index a5907673..aa029e1b 100644 --- a/playground/shapes/shapes.qml +++ b/playground/shapes/shapes.qml @@ -26,7 +26,7 @@ Qsk.Window gradient: ({ linear: { x1: 0, y1: 0, x2: 0.2, y2: 0.5 }, - spread: Qsk.Gradient.ReflectSpread, + spreadMode: Qsk.Gradient.ReflectSpread, // PhonixStart stops: [ @@ -44,7 +44,7 @@ Qsk.Window gradient: ({ linear: { x1: 0, y1: 0, x2: 0.05, y2: 0.1 }, - spread: Qsk.Gradient.RepeatSpread, + spreadMode: Qsk.Gradient.RepeatSpread, stops: [ { position: 0.5, color: "RoyalBlue" }, @@ -85,7 +85,7 @@ Qsk.Window gradient: ({ conic: { x: 0.5, y: 0.5, startAngle: 30, spanAngle: 60 }, - spread: Qsk.Gradient.ReflectSpread, + spreadMode: Qsk.Gradient.ReflectSpread, // JuicyPeach stops: [ @@ -103,7 +103,7 @@ Qsk.Window gradient: ({ conic: { x: 0.5, y: 0.5, startAngle: 30, spanAngle: 60 }, - spread: Qsk.Gradient.RepeatSpread, + spreadMode: Qsk.Gradient.RepeatSpread, // WinterNeva stops: [ @@ -144,7 +144,7 @@ Qsk.Window gradient: ({ conic: { x: 0.5, y: 0.5, startAngle: 45, spanAngle: 180 }, - spread: Qsk.Gradient.ReflectSpread, + spreadMode: Qsk.Gradient.ReflectSpread, // FabledSunset stops: [ @@ -188,7 +188,7 @@ Qsk.Window gradient: ({ radial: { x: 0.5, y: 0.5, radius: 0.5 }, - spread: Qsk.Gradient.PadSpread, + spreadMode: Qsk.Gradient.PadSpread, stops: [ { position: 0.0, color: "lime" }, @@ -213,7 +213,7 @@ Qsk.Window gradient: ({ radial: { x: 0.5, y: 0.7, radius: 0.25 }, - spread: Qsk.Gradient.RepeatSpread, + spreadMode: Qsk.Gradient.RepeatSpread, // LilyMeadow stops: [ @@ -232,7 +232,7 @@ Qsk.Window gradient: ({ radial: { x: 0.6, y: 0.4, radius: 0.1 }, - spread: Qsk.Gradient.ReflectSpread, + spreadMode: Qsk.Gradient.ReflectSpread, stops: [ { position: 0.0, color: "red" }, diff --git a/qmlexport/QskQml.cpp b/qmlexport/QskQml.cpp index 9e2ed07e..e2bfc803 100644 --- a/qmlexport/QskQml.cpp +++ b/qmlexport/QskQml.cpp @@ -153,11 +153,14 @@ namespace } else if ( v.isNumber() ) { - if ( it.name() == QStringLiteral( "spread" ) ) + if ( it.name() == QStringLiteral( "spreadMode" ) ) { const auto s = v.toNumber(); if ( s >= QskGradient::PadSpread && s <= QskGradient::RepeatSpread ) - gradient.setSpread( static_cast< QskGradient::Spread >( s ) ); + { + gradient.setSpreadMode( + static_cast< QskGradient::SpreadMode >( s ) ); + } } } } diff --git a/src/common/QskGradient.cpp b/src/common/QskGradient.cpp index 8be53ce7..749bb8bb 100644 --- a/src/common/QskGradient.cpp +++ b/src/common/QskGradient.cpp @@ -129,7 +129,7 @@ QskGradient::QskGradient( const QGradient& qGradient ) } } - m_spread = static_cast< Spread >( qGradient.spread() ); + m_spreadMode = static_cast< SpreadMode >( qGradient.spread() ); setStops( qskBuildGradientStops( qGradient.stops() ) ); } @@ -138,7 +138,7 @@ QskGradient::QskGradient( const QskGradient& other ) noexcept , m_values{ other.m_values[0], other.m_values[1], other.m_values[2], other.m_values[3], } , m_type( other.m_type ) - , m_spread( other.m_spread ) + , m_spreadMode( other.m_spreadMode ) , m_isDirty( other.m_isDirty ) , m_isValid( other.m_isValid ) , m_isMonchrome( other.m_isMonchrome ) @@ -153,7 +153,7 @@ QskGradient::~QskGradient() QskGradient& QskGradient::operator=( const QskGradient& other ) noexcept { m_type = other.m_type; - m_spread = other.m_spread; + m_spreadMode = other.m_spreadMode; m_stops = other.m_stops; m_values[0] = other.m_values[0]; @@ -172,7 +172,7 @@ QskGradient& QskGradient::operator=( const QskGradient& other ) noexcept bool QskGradient::operator==( const QskGradient& other ) const noexcept { return ( m_type == other.m_type ) - && ( m_spread == other.m_spread ) + && ( m_spreadMode == other.m_spreadMode ) && ( m_values[0] == other.m_values[0] ) && ( m_values[1] == other.m_values[1] ) && ( m_values[2] == other.m_values[2] ) @@ -346,9 +346,9 @@ void QskGradient::setAlpha( int alpha ) m_isDirty = true; } -void QskGradient::setSpread( Spread spread ) +void QskGradient::setSpreadMode( SpreadMode spreadMode ) { - m_spread = spread; + m_spreadMode = spreadMode; } void QskGradient::reverse() @@ -593,26 +593,20 @@ void QskGradient::resetDirection() QGradient QskGradient::toQGradient() const { - switch( m_type ) + QGradient g; + + switch( static_cast< int >( m_type ) ) { case Linear: { - QLinearGradient g( m_values[0], m_values[1], m_values[2], m_values[3] ); - g.setCoordinateMode( QGradient::ObjectMode ); - g.setSpread( static_cast< QGradient::Spread >( m_spread ) ); - g.setStops( qskToQGradientStops( m_stops ) ); - - return g; + g = QLinearGradient( m_values[0], m_values[1], m_values[2], m_values[3] ); + break; } case Radial: { - QRadialGradient g( m_values[0], m_values[1], m_values[2] ); - g.setCoordinateMode( QGradient::ObjectMode ); - g.setSpread( static_cast< QGradient::Spread >( m_spread ) ); - g.setStops( qskToQGradientStops( m_stops ) ); - - return g; + g = QRadialGradient( m_values[0], m_values[1], m_values[2] ); + break; } case Conic: @@ -623,24 +617,17 @@ QGradient QskGradient::toQGradient() const "QskGradient: spanAngle got lost, when converting to QConicalGradient"; } - QConicalGradient g( m_values[0], m_values[1], m_values[2] ); - g.setCoordinateMode( QGradient::ObjectMode ); - g.setSpread( static_cast< QGradient::Spread >( m_spread ) ); - g.setStops( qskToQGradientStops( m_stops ) ); - - return g; - } - - default: - { - QGradient g; - g.setCoordinateMode( QGradient::ObjectMode ); - g.setSpread( static_cast< QGradient::Spread >( m_spread ) ); - g.setStops( qskToQGradientStops( m_stops ) ); - - return g; + g = QConicalGradient( m_values[0], m_values[1], m_values[2] ); + break; } } + + g.setCoordinateMode( QGradient::ObjectMode ); + + g.setSpread( static_cast< QGradient::Spread >( m_spreadMode ) ); + g.setStops( qskToQGradientStops( m_stops ) ); + + return g; } QGradient QskGradient::toQGradient( const QRectF& rect ) const @@ -772,7 +759,7 @@ QDebug operator<<( QDebug debug, const QskGradient& gradient ) } } - switch( gradient.spread() ) + switch( gradient.spreadMode() ) { case QskGradient::RepeatSpread: debug << " RP"; diff --git a/src/common/QskGradient.h b/src/common/QskGradient.h index 44f641df..55d03167 100644 --- a/src/common/QskGradient.h +++ b/src/common/QskGradient.h @@ -30,7 +30,7 @@ class QSK_EXPORT QskGradient Q_PROPERTY( QskGradientStops stops READ stops WRITE setStops ) - Q_PROPERTY( Spread spread READ spread WRITE setSpread ) + Q_PROPERTY( SpreadMode spreadMode READ spreadMode WRITE setSpreadMode ) Q_PROPERTY( bool valid READ isValid ) Q_PROPERTY( bool visible READ isVisible ) @@ -49,13 +49,13 @@ class QSK_EXPORT QskGradient }; Q_ENUM( Type ) - enum Spread + enum SpreadMode { PadSpread, ReflectSpread, RepeatSpread }; - Q_ENUM( Spread ) + Q_ENUM( SpreadMode ) QskGradient() noexcept = default; @@ -122,8 +122,8 @@ class QSK_EXPORT QskGradient void setAlpha( int alpha ); - void setSpread( Spread ); - Spread spread() const noexcept; + void setSpreadMode( SpreadMode ); + SpreadMode spreadMode() const noexcept; void reverse(); QskGradient reversed() const; @@ -160,7 +160,7 @@ class QSK_EXPORT QskGradient qreal m_values[4] = {}; Type m_type = Stops; - Spread m_spread = PadSpread; + SpreadMode m_spreadMode = PadSpread; mutable bool m_isDirty = false; mutable bool m_isValid = false; @@ -234,9 +234,9 @@ inline QRgb QskGradient::rgbEnd() const return m_stops.isEmpty() ? qRgba( 0, 0, 0, 255 ) : m_stops.last().rgb(); } -inline QskGradient::Spread QskGradient::spread() const noexcept +inline QskGradient::SpreadMode QskGradient::spreadMode() const noexcept { - return m_spread; + return m_spreadMode; } #ifndef QT_NO_DEBUG_STREAM diff --git a/src/nodes/QskColorRamp.cpp b/src/nodes/QskColorRamp.cpp index 62535a8e..c8021b06 100644 --- a/src/nodes/QskColorRamp.cpp +++ b/src/nodes/QskColorRamp.cpp @@ -18,7 +18,7 @@ namespace class Texture : public QSGPlainTexture { public: - Texture( const QskGradientStops& stops, QskGradient::Spread spread ) + Texture( const QskGradientStops& stops, QskGradient::SpreadMode spreadMode ) { /* Qt creates tables of 1024 colors, while Chrome, Firefox, and Android @@ -28,7 +28,7 @@ namespace setImage( QskRgb::colorTable( 256, stops ) ); - const auto wrapMode = this->wrapMode( spread ); + const auto wrapMode = this->wrapMode( spreadMode ); setHorizontalWrapMode( wrapMode ); setVerticalWrapMode( wrapMode ); @@ -37,9 +37,9 @@ namespace }; private: - static inline QSGTexture::WrapMode wrapMode( QskGradient::Spread spread ) + static inline QSGTexture::WrapMode wrapMode( QskGradient::SpreadMode spreadMode ) { - switch ( spread ) + switch ( spreadMode ) { case QskGradient::RepeatSpread: return QSGTexture::Repeat; @@ -58,17 +58,17 @@ namespace public: inline bool operator==( const HashKey& other ) const { - return rhi == other.rhi && spread == other.spread && stops == other.stops; + return rhi == other.rhi && spreadMode == other.spreadMode && stops == other.stops; } const void* rhi; const QskGradientStops stops; - const QskGradient::Spread spread; + const QskGradient::SpreadMode spreadMode; }; inline size_t qHash( const HashKey& key, size_t seed = 0 ) { - size_t values = seed + key.spread; + size_t values = seed + key.spreadMode; for ( const auto& stop : key.stops ) values += stop.rgb(); @@ -84,7 +84,7 @@ namespace void cleanupRhi( const QRhi* ); Texture* texture( const void* rhi, - const QskGradientStops&, QskGradient::Spread ); + const QskGradientStops&, QskGradient::SpreadMode ); private: QHash< HashKey, Texture* > m_hashTable; @@ -107,14 +107,14 @@ static void qskCleanupRhi( const QRhi* rhi ) } Texture* Cache::texture( const void* rhi, - const QskGradientStops& stops, QskGradient::Spread spread ) + const QskGradientStops& stops, QskGradient::SpreadMode spreadMode ) { - const HashKey key { rhi, stops, spread }; + const HashKey key { rhi, stops, spreadMode }; auto texture = m_hashTable[key]; if ( texture == nullptr ) { - texture = new Texture( stops, spread ); + texture = new Texture( stops, spreadMode ); m_hashTable[ key ] = texture; if ( rhi != nullptr ) @@ -151,7 +151,7 @@ void Cache::cleanupRhi( const QRhi* rhi ) } QSGTexture* QskColorRamp::texture( const void* rhi, - const QskGradientStops& stops, QskGradient::Spread spread ) + const QskGradientStops& stops, QskGradient::SpreadMode spreadMode ) { if ( s_cache == nullptr ) { @@ -166,5 +166,5 @@ QSGTexture* QskColorRamp::texture( const void* rhi, qAddPostRoutine( qskCleanupCache ); } - return s_cache->texture( rhi, stops, spread ); + return s_cache->texture( rhi, stops, spreadMode ); } diff --git a/src/nodes/QskColorRamp.h b/src/nodes/QskColorRamp.h index aa51d9a6..30a6cd8b 100644 --- a/src/nodes/QskColorRamp.h +++ b/src/nodes/QskColorRamp.h @@ -13,7 +13,8 @@ class QSGTexture; namespace QskColorRamp { - QSGTexture* texture( const void* rhi, const QskGradientStops&, QskGradient::Spread ); + QSGTexture* texture( const void* rhi, + const QskGradientStops&, QskGradient::SpreadMode ); } #endif diff --git a/src/nodes/QskGradientMaterial.cpp b/src/nodes/QskGradientMaterial.cpp index b03b4a9b..d4217f8c 100644 --- a/src/nodes/QskGradientMaterial.cpp +++ b/src/nodes/QskGradientMaterial.cpp @@ -52,7 +52,7 @@ namespace { const auto mat = static_cast< const GradientMaterial* >( other ); - if ( ( spread() == mat->spread() ) && ( stops() == mat->stops() ) ) + if ( ( spreadMode() == mat->spreadMode() ) && ( stops() == mat->stops() ) ) return 0; return QSGMaterial::compare( other ); @@ -107,7 +107,7 @@ namespace updateUniformValues( material ); auto texture = QskColorRamp::texture( - nullptr, material->stops(), material->spread() ); + nullptr, material->stops(), material->spreadMode() ); texture->bind(); } @@ -146,7 +146,7 @@ namespace auto material = static_cast< const GradientMaterial* >( newMaterial ); auto texture = QskColorRamp::texture( - state.rhi(), material->stops(), material->spread() ); + state.rhi(), material->stops(), material->spreadMode() ); #if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) texture->updateRhiTexture( state.rhi(), state.resourceUpdateBatch() ); @@ -186,9 +186,9 @@ namespace the number of color ramps. TODO ... */ - if ( gradient.spread() != spread() ) + if ( gradient.spreadMode() != spreadMode() ) { - setSpread( gradient.spread() ); + setSpreadMode( gradient.spreadMode() ); changed = true; } @@ -347,9 +347,9 @@ namespace changed = true; } - if ( gradient.spread() != spread() ) + if ( gradient.spreadMode() != spreadMode() ) { - setSpread( gradient.spread() ); + setSpreadMode( gradient.spreadMode() ); changed = true; } @@ -518,9 +518,9 @@ namespace changed = true; } - if ( gradient.spread() != spread() ) + if ( gradient.spreadMode() != spreadMode() ) { - setSpread( gradient.spread() ); + setSpreadMode( gradient.spreadMode() ); changed = true; } diff --git a/src/nodes/QskGradientMaterial.h b/src/nodes/QskGradientMaterial.h index 6079936b..fa6f9184 100644 --- a/src/nodes/QskGradientMaterial.h +++ b/src/nodes/QskGradientMaterial.h @@ -19,19 +19,19 @@ class QSK_EXPORT QskGradientMaterial : public QSGMaterial QskGradient::Type gradientType() const; const QskGradientStops& stops() const; - QskGradient::Spread spread() const; + QskGradient::SpreadMode spreadMode() const; protected: QskGradientMaterial( QskGradient::Type ); void setStops( const QskGradientStops& ); - void setSpread( QskGradient::Spread ); + void setSpreadMode( QskGradient::SpreadMode ); private: const QskGradient::Type m_gradientType; QskGradientStops m_stops; - QskGradient::Spread m_spread = QskGradient::PadSpread; + QskGradient::SpreadMode m_spreadMode = QskGradient::PadSpread; }; inline QskGradient::Type QskGradientMaterial::gradientType() const @@ -44,9 +44,9 @@ inline void QskGradientMaterial::setStops( const QskGradientStops& stops ) m_stops = stops; } -inline void QskGradientMaterial::setSpread( QskGradient::Spread spread ) +inline void QskGradientMaterial::setSpreadMode( QskGradient::SpreadMode spreadMode ) { - m_spread = spread; + m_spreadMode = spreadMode; } inline const QskGradientStops& QskGradientMaterial::stops() const @@ -54,9 +54,9 @@ inline const QskGradientStops& QskGradientMaterial::stops() const return m_stops; } -inline QskGradient::Spread QskGradientMaterial::spread() const +inline QskGradient::SpreadMode QskGradientMaterial::spreadMode() const { - return m_spread; + return m_spreadMode; } #endif