works but hackish

This commit is contained in:
Peter Hartmann 2022-01-12 15:46:05 +01:00
parent c46fdfc67a
commit 88fe651b52
1 changed files with 24 additions and 11 deletions

View File

@ -575,7 +575,7 @@ namespace
} }
template< class BorderMap, class FillMap > template< class BorderMap, class FillMap >
inline void createLines( Qt::Orientation orientation, Line* borderLines, void createLines( Qt::Orientation orientation, Line* borderLines,
const BorderMap& borderMapTL, const BorderMap& borderMapTR, const BorderMap& borderMapTL, const BorderMap& borderMapTR,
const BorderMap& borderMapBL, const BorderMap& borderMapBR, const BorderMap& borderMapBL, const BorderMap& borderMapBR,
Line* fillLines, FillMap& fillMap ) Line* fillLines, FillMap& fillMap )
@ -600,6 +600,12 @@ namespace
linesTR = linesBR + numCornerLines + additionalGradientStops( borderMapBR.gradient() ); linesTR = linesBR + numCornerLines + additionalGradientStops( borderMapBR.gradient() );
linesTL = linesTR + numCornerLines + additionalGradientStops( borderMapTR.gradient() ); linesTL = linesTR + numCornerLines + additionalGradientStops( borderMapTR.gradient() );
linesBL = linesTL + numCornerLines + additionalGradientStops( borderMapTL.gradient() ); linesBL = linesTL + numCornerLines + additionalGradientStops( borderMapTL.gradient() );
qDebug() << "total additional lines:" << additionalGradientStops( borderMapBR.gradient() )
<< additionalGradientStops( borderMapTR.gradient() )
<< additionalGradientStops( borderMapTL.gradient() )
<< additionalGradientStops( borderMapBL.gradient() )
<< "corner lines:" << numCornerLines;
} }
if ( fillLines ) if ( fillLines )
@ -762,7 +768,7 @@ namespace
addAdditionalLines( x1BL, y1BL, x2BL, y2BL, x1BR, y1BR, x2BR, y2BR, addAdditionalLines( x1BL, y1BL, x2BL, y2BL, x1BR, y1BR, x2BR, y2BR,
borderMapBL.gradient(), linesBL + k ); borderMapBL.gradient(), linesBL + k );
// ###: // ###:
linesBL[ k + 2 ].setLine( x1BR, y1BR, x2BR, y2BR, borderMapBR.colorAt( j ) ); // linesBL[ k + 2 ] = borderLines[0];
} }
} }
@ -854,18 +860,24 @@ namespace
} }
#if 1 #if 1
// if ( borderLines ) if ( borderLines )
// { {
// const int k = 4 * numCornerLines; const int additionalStops = additionalGradientStops( borderMapBR.gradient() )
+ additionalGradientStops( borderMapTR.gradient() )
+ additionalGradientStops( borderMapTL.gradient() )
+ additionalGradientStops( borderMapBL.gradient() );
const int k = 4 * numCornerLines + additionalStops;
// if ( orientation == Qt::Vertical ) qDebug() << "presumed last line no:" << k;
// {
// borderLines[ k ] = borderLines[ 0 ]; if ( orientation == Qt::Vertical )
// qDebug() << "setting line" << k << "to line 0"; {
// } borderLines[ k ] = borderLines[ 0 ];
qDebug() << "setting line" << k << "to line 0";
}
// else // else
// borderLines[ 0 ] = borderLines[ k ]; // borderLines[ 0 ] = borderLines[ k ];
// } }
#endif #endif
} }
@ -1385,6 +1397,7 @@ void QskBoxRenderer::renderRectellipse( const QRectF& rect,
{ {
borderLineCount = 4 * ( stepCount + 1 ) + 1; borderLineCount = 4 * ( stepCount + 1 ) + 1;
// ### when do we need an additional one?
const int additionalLines = qMax( 0, 0 const int additionalLines = qMax( 0, 0
+ additionalGradientStops( borderColors.gradient( Qsk::Left ) ) + additionalGradientStops( borderColors.gradient( Qsk::Left ) )
+ additionalGradientStops( borderColors.gradient( Qsk::Top ) ) + additionalGradientStops( borderColors.gradient( Qsk::Top ) )