2021-10-20 07:50:25 +02:00
|
|
|
/**********************************************************************
|
|
|
|
* QSkinny - Copyright (C) 2016 Uwe Rathmann
|
|
|
|
* This file may be used under the terms of the QSkinny License, Version 1.0
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
#include "QskArcNode.h"
|
|
|
|
#include "QskArcRenderer.h"
|
|
|
|
|
|
|
|
QskArcNode::QskArcNode()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QskArcNode::~QskArcNode()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void QskArcNode::setArcData( const QRectF& rect, const QskArcMetrics& metrics,
|
2021-12-23 19:05:59 +01:00
|
|
|
const QskGradient& gradient, QQuickWindow* window )
|
2021-10-20 07:50:25 +02:00
|
|
|
{
|
|
|
|
m_metrics = metrics;
|
|
|
|
m_gradient = gradient;
|
|
|
|
|
|
|
|
update( window, QskTextureRenderer::AutoDetect, rect.toRect() );
|
|
|
|
}
|
|
|
|
|
2021-12-23 19:05:59 +01:00
|
|
|
void QskArcNode::paint( QPainter* painter, const QSizeF& size )
|
2021-10-20 07:50:25 +02:00
|
|
|
{
|
|
|
|
const qreal w = m_metrics.width();
|
|
|
|
const QRectF rect( 0.5 * w, 0.5 * w, size.width() - w, size.height() - w );
|
|
|
|
|
|
|
|
QskArcRenderer renderer;
|
|
|
|
renderer.renderArc( rect, m_metrics, m_gradient, painter );
|
|
|
|
}
|
|
|
|
|
2022-03-25 10:28:06 +01:00
|
|
|
QskHashValue QskArcNode::hash() const
|
2021-10-20 07:50:25 +02:00
|
|
|
{
|
2022-03-25 10:28:06 +01:00
|
|
|
auto h = m_metrics.hash();
|
2021-10-20 07:50:25 +02:00
|
|
|
|
2022-03-24 10:39:33 +01:00
|
|
|
for( const auto& stop : qAsConst( m_gradient.stops() ) )
|
2021-10-20 07:50:25 +02:00
|
|
|
h = stop.hash( h );
|
|
|
|
|
|
|
|
return h;
|
|
|
|
}
|