support rounded corners

This commit is contained in:
Peter Hartmann 2021-12-15 14:36:12 +01:00
parent 72a86a11c9
commit 6c08d47bc2
2 changed files with 17 additions and 11 deletions

View File

@ -361,9 +361,7 @@ static void addRectanglesRest( QskLinearBox* parent )
static void addColoredBorderRectangles1( QskLinearBox* parent )
{
Box* box;
box = new Box( parent );
auto* box = new Box( parent );
box->setBorderWidth( 20 );
QskGradient gradient1( Qt::Vertical, { { 0.0, Qt::blue },
{ 0.7, Qt::yellow },
@ -412,10 +410,18 @@ static void addColoredBorderRectangles5( QskLinearBox* parent )
static void addColoredBorderRectangles6( QskLinearBox* parent )
{
Box* box = new Box( parent );
auto* box = new Box( parent );
box->setBorderWidth( 20 );
QskGradient gradient( Qt::Vertical, Qt::magenta, Qt::cyan );
box->setBorderGradients( gradient, gradient, gradient, gradient );
QskGradient gradient1( Qt::Vertical, { { 0.0, Qt::blue },
{ 0.7, Qt::yellow },
{ 1.0, Qt::darkRed } } );
QskGradient gradient2( Qt::Vertical, { { 0.0, Qt::black },
{ 0.3, Qt::white },
{ 0.7, Qt::white },
{ 1.0, Qt::black } } );
QskGradient gradient3( Qt::green );
QskGradient gradient4( Qt::Vertical, Qt::magenta, Qt::cyan );
box->setBorderGradients( gradient1, gradient2, gradient3, gradient4 );
box->setShape( 30, Qt::AbsoluteSize );
}

View File

@ -866,10 +866,10 @@ static inline void qskRenderBorder( const QskBoxRenderer::Metrics& metrics,
const int stepCount = metrics.corner[ 0 ].stepCount;
qskRenderBorderLines( metrics, orientation, line,
BorderMapGradient( stepCount, c.gradient( Qsk::Top ).startColor().rgb(), c.gradient( Qsk::Left ).startColor().rgb() ), // ###
BorderMapGradient( stepCount, c.gradient( Qsk::Right ).startColor().rgb(), c.gradient( Qsk::Top ).startColor().rgb() ), // ###
BorderMapGradient( stepCount, c.gradient( Qsk::Left ).startColor().rgb(), c.gradient( Qsk::Bottom ).startColor().rgb() ), // ###
BorderMapGradient( stepCount, c.gradient( Qsk::Bottom ).startColor().rgb(), c.gradient( Qsk::Right ).startColor().rgb() ) ); // ###
BorderMapGradient( stepCount, c.gradient( Qsk::Top ).startColor().rgb(), c.gradient( Qsk::Left ).endColor().rgb() ),
BorderMapGradient( stepCount, c.gradient( Qsk::Right ).startColor().rgb(), c.gradient( Qsk::Top ).endColor().rgb() ),
BorderMapGradient( stepCount, c.gradient( Qsk::Left ).startColor().rgb(), c.gradient( Qsk::Bottom ).endColor().rgb() ),
BorderMapGradient( stepCount, c.gradient( Qsk::Bottom ).startColor().rgb(), c.gradient( Qsk::Right ).endColor().rgb() ) );
}
}
@ -1124,7 +1124,7 @@ void QskBoxRenderer::renderRectellipseBorder(
const int stepCount = metrics.corner[ 0 ].stepCount;
const int lineCount = 4 * ( stepCount + 1 ) + 1;
const auto line = allocateLines< Line >( geometry, lineCount );
const auto line = allocateLines< ColoredLine >( geometry, lineCount );
qskRenderBorderLines( metrics, Qt::Vertical, line, BorderMapNone() );
}