more versatile APIs
This commit is contained in:
parent
c93958a24d
commit
1a5a94838e
@ -338,29 +338,23 @@ QSGNode* QskSkinlet::updateArcNode( const QskSkinnable* skinnable,
|
|||||||
QSGNode* node, const QRectF& rect, const QskGradient& fillGradient,
|
QSGNode* node, const QRectF& rect, const QskGradient& fillGradient,
|
||||||
QskAspect::Subcontrol subControl )
|
QskAspect::Subcontrol subControl )
|
||||||
{
|
{
|
||||||
auto arcMetrics = skinnable->arcMetricsHint( subControl );
|
const auto metrics = skinnable->arcMetricsHint( subControl );
|
||||||
return updateArcNode( skinnable, node ,rect, fillGradient, arcMetrics,
|
const auto r = rect.marginsRemoved( skinnable->marginHint( subControl ) );
|
||||||
subControl );
|
|
||||||
|
return updateArcNode( skinnable, node, r, fillGradient, metrics );
|
||||||
}
|
}
|
||||||
|
|
||||||
QSGNode* QskSkinlet::updateArcNode( const QskSkinnable* skinnable,
|
QSGNode* QskSkinlet::updateArcNode( const QskSkinnable* skinnable,
|
||||||
QSGNode* node, const QRectF& rect, const QskGradient& fillGradient,
|
QSGNode* node, const QRectF& rect, const QskGradient& fillGradient,
|
||||||
const QskArcMetrics& arcMetrics, QskAspect::Subcontrol subControl )
|
const QskArcMetrics& metrics )
|
||||||
{
|
{
|
||||||
const auto control = skinnable->owningControl();
|
const auto control = skinnable->owningControl();
|
||||||
if ( control == nullptr )
|
if ( control == nullptr || rect.isEmpty() )
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
const auto margins = skinnable->marginHint( subControl );
|
auto absoluteMetrics = metrics.toAbsolute( rect.size() );
|
||||||
|
|
||||||
const auto arcRect = rect.marginsRemoved( margins );
|
if ( !qskIsArcVisible( metrics, fillGradient ) )
|
||||||
|
|
||||||
if ( arcRect.isEmpty() )
|
|
||||||
return nullptr;
|
|
||||||
|
|
||||||
auto absoluteArcMetrics = arcMetrics.toAbsolute( arcRect.size() );
|
|
||||||
|
|
||||||
if ( !qskIsArcVisible( arcMetrics, fillGradient ) )
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
auto arcNode = static_cast< QskArcNode* >( node );
|
auto arcNode = static_cast< QskArcNode* >( node );
|
||||||
@ -377,12 +371,12 @@ QSGNode* QskSkinlet::updateArcNode( const QskSkinnable* skinnable,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
const auto ratio = control->window()->effectiveDevicePixelRatio();
|
const auto ratio = control->window()->effectiveDevicePixelRatio();
|
||||||
absoluteArcMetrics.setWidth( absoluteArcMetrics.width() * ratio );
|
absoluteMetrics.setWidth( absoluteMetrics.width() * ratio );
|
||||||
r.setSize( r.size() * ratio );
|
r.setSize( r.size() * ratio );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
arcNode->setArcData( r, absoluteArcMetrics, fillGradient, control->window() );
|
arcNode->setArcData( r, absoluteMetrics, fillGradient, control->window() );
|
||||||
|
|
||||||
return arcNode;
|
return arcNode;
|
||||||
}
|
}
|
||||||
@ -413,8 +407,8 @@ QSGNode* QskSkinlet::updateArcNode( const QskSkinnable* skinnable,
|
|||||||
arcMetrics.setStartAngle( startAngle );
|
arcMetrics.setStartAngle( startAngle );
|
||||||
arcMetrics.setSpanAngle( spanAngle );
|
arcMetrics.setSpanAngle( spanAngle );
|
||||||
|
|
||||||
return updateArcNode( skinnable, node ,rect,
|
const auto r = rect.marginsRemoved( skinnable->marginHint( subControl ) );
|
||||||
fillGradient, arcMetrics, subControl );
|
return updateArcNode( skinnable, node, r, fillGradient, arcMetrics );
|
||||||
}
|
}
|
||||||
|
|
||||||
QSGNode* QskSkinlet::updateBoxClipNode( const QskSkinnable* skinnable,
|
QSGNode* QskSkinlet::updateBoxClipNode( const QskSkinnable* skinnable,
|
||||||
|
@ -60,8 +60,7 @@ class QSK_EXPORT QskSkinlet
|
|||||||
const QRectF&, const QskGradient&, QskAspect::Subcontrol );
|
const QRectF&, const QskGradient&, QskAspect::Subcontrol );
|
||||||
|
|
||||||
static QSGNode* updateArcNode( const QskSkinnable*, QSGNode*,
|
static QSGNode* updateArcNode( const QskSkinnable*, QSGNode*,
|
||||||
const QRectF&, const QskGradient&, const QskArcMetrics&,
|
const QRectF&, const QskGradient&, const QskArcMetrics& );
|
||||||
QskAspect::Subcontrol );
|
|
||||||
|
|
||||||
static QSGNode* updateArcNode( const QskSkinnable*, QSGNode*,
|
static QSGNode* updateArcNode( const QskSkinnable*, QSGNode*,
|
||||||
const QRectF&, qreal startAngle, qreal spanAngle, QskAspect::Subcontrol );
|
const QRectF&, qreal startAngle, qreal spanAngle, QskAspect::Subcontrol );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user