using "unstretched" conic gradients

This commit is contained in:
Uwe Rathmann 2023-04-17 17:29:47 +02:00
parent 3beaeb83fa
commit 3210242276

View File

@ -8,7 +8,6 @@
#include "QskArcMetrics.h"
#include "QskMargins.h"
#include "QskGradient.h"
#include "QskGradientDirection.h"
#include "QskShapeNode.h"
#include "QskStrokeNode.h"
#include "QskSGNode.h"
@ -17,22 +16,14 @@
#include <qpainterpath.h>
static inline QskGradient qskEffectiveGradient(
const QskGradient& gradient, const QRectF& rect,
const QskArcMetrics& metrics )
const QskGradient& gradient, const QskArcMetrics& metrics )
{
if ( !gradient.isMonochrome() )
{
if ( gradient.type() == QskGradient::Stops )
{
const QskConicDirection dir(
rect.center(), metrics.startAngle() );
#if 0
dir.setSpanAngle( metrics.spanAngle() ); // what is "expected" ??
#endif
QskGradient g( gradient.stops() );
g.setStretchMode( QskGradient::NoStretch );
g.setConicDirection( dir );
g.setConicDirection( 0.5, 0.5, metrics.startAngle(), 360.0 );
return g;
}
@ -88,7 +79,7 @@ void QskArcNode::setArcData( const QRectF& rect, const QskArcMetrics& arcMetrics
};
const auto metrics = qskEffectiveMetrics( arcMetrics, rect );
const auto gradient = qskEffectiveGradient( fillGradient, rect, metrics );
const auto gradient = qskEffectiveGradient( fillGradient, metrics );
auto fillNode = static_cast< QskShapeNode* >(
QskSGNode::findChildNode( this, FillRole ) );