Revert "support more colors in rounded color gradients"

This reverts commit 5754d2d0773d8273d42ae1775b53d40f5e6af26a.
This commit is contained in:
Peter Hartmann 2021-12-15 15:52:25 +01:00
parent 7cbd5d8cb8
commit 6e872bac99
1 changed files with 13 additions and 29 deletions

View File

@ -506,37 +506,21 @@ namespace
class BorderMapGradient class BorderMapGradient
{ {
public: public:
inline BorderMapGradient( int stepCount, const QskGradient& gradient ) inline BorderMapGradient( int stepCount, QRgb rgb1, QRgb rgb2 )
: m_stepCount( stepCount ) : m_stepCount( stepCount )
, m_gradient( gradient ) , m_color1( rgb1 )
, m_color2( rgb2 )
{ {
} }
inline Color colorAt( int step ) const inline Color colorAt( int step ) const
{ {
const qreal ratio = step / m_stepCount; return m_color1.interpolatedTo( m_color2, step / m_stepCount );
const auto stops = m_gradient.stops();
for( int i = 0; i < m_gradient.stopCount(); ++i )
{
const QskGradientStop stop = stops.at( i );
if( stop.position() >= ratio )
{
const int start = ( i == 0 ) ? 0 : i - 1;
const int end = ( i == 0 ) ? 1 : i;
const QColor color = QskGradientStop::interpolated( stops.at( start ),
stops.at( end ), ratio );
return Color( color );
}
}
return Color();
} }
private: private:
const qreal m_stepCount; const qreal m_stepCount;
const QskGradient m_gradient; const Color m_color1, m_color2;
}; };
template< class Line, class BorderValues > template< class Line, class BorderValues >
@ -882,10 +866,10 @@ static inline void qskRenderBorder( const QskBoxRenderer::Metrics& metrics,
const int stepCount = metrics.corner[ 0 ].stepCount; const int stepCount = metrics.corner[ 0 ].stepCount;
qskRenderBorderLines( metrics, orientation, line, qskRenderBorderLines( metrics, orientation, line,
BorderMapGradient( stepCount, { Qt::Vertical, c.gradient( Qsk::Top ).startColor(), c.gradient( Qsk::Left ).endColor() } ), BorderMapGradient( stepCount, c.gradient( Qsk::Top ).startColor().rgb(), c.gradient( Qsk::Left ).endColor().rgb() ),
BorderMapGradient( stepCount, { Qt::Vertical, c.gradient( Qsk::Right ).startColor(), c.gradient( Qsk::Top ).endColor() } ), BorderMapGradient( stepCount, c.gradient( Qsk::Right ).startColor().rgb(), c.gradient( Qsk::Top ).endColor().rgb() ),
BorderMapGradient( stepCount, { Qt::Vertical, c.gradient( Qsk::Left ).startColor(), c.gradient( Qsk::Bottom ).endColor() } ), BorderMapGradient( stepCount, c.gradient( Qsk::Left ).startColor().rgb(), c.gradient( Qsk::Bottom ).endColor().rgb() ),
BorderMapGradient( stepCount, { Qt::Vertical, c.gradient( Qsk::Bottom ).startColor(), c.gradient( Qsk::Right ).endColor() } ) ); BorderMapGradient( stepCount, c.gradient( Qsk::Bottom ).startColor().rgb(), c.gradient( Qsk::Right ).endColor().rgb() ) );
} }
} }
@ -934,10 +918,10 @@ static inline void qskRenderBoxRandom(
{ {
const int n = metrics.corner[ 0 ].stepCount; const int n = metrics.corner[ 0 ].stepCount;
const BorderMapGradient tl( n, { Qt::Vertical, bc.gradient( Qsk::Top ).startColor(), bc.gradient( Qsk::Left ).startColor() } ); const BorderMapGradient tl( n, bc.gradient( Qsk::Top ).startColor().rgb(), bc.gradient( Qsk::Left ).startColor().rgb() );
const BorderMapGradient tr( n, { Qt::Vertical, bc.gradient( Qsk::Right ).startColor(), bc.gradient( Qsk::Top ).startColor() } ); const BorderMapGradient tr( n, bc.gradient( Qsk::Right ).startColor().rgb(), bc.gradient( Qsk::Top ).startColor().rgb() );
const BorderMapGradient bl( n, { Qt::Vertical, bc.gradient( Qsk::Left ).startColor(), bc.gradient( Qsk::Bottom ).startColor() } ); const BorderMapGradient bl( n, bc.gradient( Qsk::Left ).startColor().rgb(), bc.gradient( Qsk::Bottom ).startColor().rgb() );
const BorderMapGradient br( n, { Qt::Vertical, bc.gradient( Qsk::Bottom ).startColor(), bc.gradient( Qsk::Right ).startColor() } ); const BorderMapGradient br( n, bc.gradient( Qsk::Bottom ).startColor().rgb(), bc.gradient( Qsk::Right ).startColor().rgb() );
if ( gradient.isMonochrome() ) if ( gradient.isMonochrome() )
{ {