reducing the memory used for QskGradient
This commit is contained in:
parent
4670e3b5d3
commit
6ce73136ce
|
@ -77,26 +77,31 @@ static inline QTransform qskTransformForRect( int stretch, const QRectF& rect )
|
||||||
}
|
}
|
||||||
|
|
||||||
QskGradient::QskGradient( const QColor& color )
|
QskGradient::QskGradient( const QColor& color )
|
||||||
|
: QskGradient()
|
||||||
{
|
{
|
||||||
setStops( color );
|
setStops( color );
|
||||||
}
|
}
|
||||||
|
|
||||||
QskGradient::QskGradient( const QColor& color1, const QColor& color2 )
|
QskGradient::QskGradient( const QColor& color1, const QColor& color2 )
|
||||||
|
: QskGradient()
|
||||||
{
|
{
|
||||||
setStops( color1, color2 );
|
setStops( color1, color2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
QskGradient::QskGradient( QGradient::Preset preset )
|
QskGradient::QskGradient( QGradient::Preset preset )
|
||||||
|
: QskGradient()
|
||||||
{
|
{
|
||||||
setStops( qskBuildGradientStops( QGradient( preset ).stops() ) );
|
setStops( qskBuildGradientStops( QGradient( preset ).stops() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
QskGradient::QskGradient( const QVector< QskGradientStop >& stops )
|
QskGradient::QskGradient( const QVector< QskGradientStop >& stops )
|
||||||
|
: QskGradient()
|
||||||
{
|
{
|
||||||
setStops( stops );
|
setStops( stops );
|
||||||
}
|
}
|
||||||
|
|
||||||
QskGradient::QskGradient( const QGradient& qGradient )
|
QskGradient::QskGradient( const QGradient& qGradient )
|
||||||
|
: QskGradient()
|
||||||
{
|
{
|
||||||
switch( qGradient.type() )
|
switch( qGradient.type() )
|
||||||
{
|
{
|
||||||
|
@ -421,8 +426,7 @@ void QskGradient::stretchTo( const QRectF& rect )
|
||||||
transform.map( m_values[0], m_values[1], &m_values[0], &m_values[1] );
|
transform.map( m_values[0], m_values[1], &m_values[0], &m_values[1] );
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
const auto radius = transform.map( QPointF( m_values[2], m_values[2] ) );
|
m_values[2] *= qMin( rect.width(), rect.height() );
|
||||||
m_values[2] = qMin( radius.x(), radius.y() );
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -69,7 +69,7 @@ class QSK_EXPORT QskGradient
|
||||||
};
|
};
|
||||||
Q_ENUM( StretchMode )
|
Q_ENUM( StretchMode )
|
||||||
|
|
||||||
QskGradient() noexcept = default;
|
QskGradient() noexcept;
|
||||||
|
|
||||||
QskGradient( Qt::GlobalColor );
|
QskGradient( Qt::GlobalColor );
|
||||||
QskGradient( QRgb );
|
QskGradient( QRgb );
|
||||||
|
@ -177,18 +177,29 @@ class QSK_EXPORT QskGradient
|
||||||
*/
|
*/
|
||||||
qreal m_values[4] = {};
|
qreal m_values[4] = {};
|
||||||
|
|
||||||
Type m_type = Stops;
|
unsigned int m_type : 3;
|
||||||
SpreadMode m_spreadMode = PadSpread;
|
unsigned int m_spreadMode : 3;
|
||||||
StretchMode m_stretchMode = StretchToSize;
|
unsigned int m_stretchMode : 3;
|
||||||
|
|
||||||
mutable bool m_isDirty = false;
|
mutable bool m_isDirty : 1;
|
||||||
mutable bool m_isValid = false;
|
mutable bool m_isValid : 1;
|
||||||
mutable bool m_isMonchrome = true;
|
mutable bool m_isMonchrome : 1;
|
||||||
mutable bool m_isVisible = false;
|
mutable bool m_isVisible : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
Q_DECLARE_METATYPE( QskGradient )
|
Q_DECLARE_METATYPE( QskGradient )
|
||||||
|
|
||||||
|
inline QskGradient::QskGradient() noexcept
|
||||||
|
: m_type( Stops )
|
||||||
|
, m_spreadMode( PadSpread )
|
||||||
|
, m_stretchMode( StretchToSize )
|
||||||
|
, m_isDirty( false )
|
||||||
|
, m_isValid( false )
|
||||||
|
, m_isMonchrome( true )
|
||||||
|
, m_isVisible( false )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
inline QskGradient::QskGradient( Qt::GlobalColor color )
|
inline QskGradient::QskGradient( Qt::GlobalColor color )
|
||||||
: QskGradient( QColor( color ) )
|
: QskGradient( QColor( color ) )
|
||||||
{
|
{
|
||||||
|
@ -206,7 +217,7 @@ inline bool QskGradient::operator!=( const QskGradient& other ) const noexcept
|
||||||
|
|
||||||
inline QskGradient::Type QskGradient::type() const noexcept
|
inline QskGradient::Type QskGradient::type() const noexcept
|
||||||
{
|
{
|
||||||
return m_type;
|
return static_cast< Type >( m_type );
|
||||||
}
|
}
|
||||||
|
|
||||||
inline const QskGradientStops& QskGradient::stops() const noexcept
|
inline const QskGradientStops& QskGradient::stops() const noexcept
|
||||||
|
@ -255,12 +266,12 @@ inline QRgb QskGradient::rgbEnd() const
|
||||||
|
|
||||||
inline QskGradient::SpreadMode QskGradient::spreadMode() const noexcept
|
inline QskGradient::SpreadMode QskGradient::spreadMode() const noexcept
|
||||||
{
|
{
|
||||||
return m_spreadMode;
|
return static_cast< SpreadMode >( m_spreadMode );
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QskGradient::StretchMode QskGradient::stretchMode() const noexcept
|
inline QskGradient::StretchMode QskGradient::stretchMode() const noexcept
|
||||||
{
|
{
|
||||||
return m_stretchMode;
|
return static_cast< StretchMode >( m_stretchMode );
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef QT_NO_DEBUG_STREAM
|
#ifndef QT_NO_DEBUG_STREAM
|
||||||
|
|
Loading…
Reference in New Issue