using more intuitive function names for QskBoxRenderer

This commit is contained in:
Uwe Rathmann 2024-09-19 08:39:14 +02:00
parent 46e5630f48
commit cc455dff5a
4 changed files with 44 additions and 24 deletions

View File

@ -67,7 +67,7 @@ void QskBoxClipNode::setBox( const QRectF& rect,
else
{
setIsRectangular( false );
QskBoxRenderer::renderFillGeometry( rect, shape, border, m_geometry );
QskBoxRenderer::setFillLines( rect, shape, border, m_geometry );
}
/*

View File

@ -112,8 +112,8 @@ void QskBoxRectangleNode::updateFilling( const QRectF& rect,
{
setColoring( QskFillNode::Polychrome );
QskBoxRenderer::renderBox( rect, shape,
borderMetrics, QskBoxBorderColors(), fillGradient, *geometry() );
QskBoxRenderer::setColoredFillLines( rect, shape,
borderMetrics, fillGradient, *geometry() );
markDirty( QSGNode::DirtyGeometry );
}
@ -132,7 +132,7 @@ void QskBoxRectangleNode::updateFilling( const QRectF& rect,
if ( dirtyMetrics )
{
QskBoxRenderer::renderFillGeometry(
QskBoxRenderer::setFillLines(
rect, shape, borderMetrics, *geometry() );
markDirty( QSGNode::DirtyGeometry );
@ -165,8 +165,8 @@ void QskBoxRectangleNode::updateBorder( const QRectF& rect,
else
setColoring( borderColors.left().rgbStart() );
QskBoxRenderer::renderBox( rect, shape, borderMetrics,
borderColors, QskGradient(), *this->geometry() );
QskBoxRenderer::setColoredBorderLines( rect, shape, borderMetrics,
borderColors, *this->geometry() );
markDirty( QSGNode::DirtyGeometry );
}
@ -208,7 +208,7 @@ void QskBoxRectangleNode::updateBox( const QRectF& rect,
fillGradient.setDirection( QskGradient::Linear );
}
QskBoxRenderer::renderBox( rect, shape, borderMetrics,
QskBoxRenderer::setColoredBorderAndFillLines( rect, shape, borderMetrics,
borderColors, fillGradient, *geometry() );
markDirty( QSGNode::DirtyGeometry );

View File

@ -109,7 +109,7 @@ bool QskBoxRenderer::isGradientSupported( const QskGradient& gradient )
return false;
}
void QskBoxRenderer::renderBorderGeometry(
void QskBoxRenderer::setBorderLines(
const QRectF& rect, const QskBoxShapeMetrics& shape,
const QskBoxBorderMetrics& border, QSGGeometry& geometry )
{
@ -124,13 +124,13 @@ void QskBoxRenderer::renderBorderGeometry(
stroker.setBorderLines( lines );
}
void QskBoxRenderer::renderFillGeometry(
void QskBoxRenderer::setFillLines(
const QRectF& rect, const QskBoxShapeMetrics& shape, QSGGeometry& geometry )
{
renderFillGeometry( rect, shape, QskBoxBorderMetrics(), geometry );
setFillLines( rect, shape, QskBoxBorderMetrics(), geometry );
}
void QskBoxRenderer::renderFillGeometry(
void QskBoxRenderer::setFillLines(
const QRectF& rect, const QskBoxShapeMetrics& shape,
const QskBoxBorderMetrics& border, QSGGeometry& geometry )
{
@ -144,15 +144,28 @@ void QskBoxRenderer::renderFillGeometry(
stroker.setFillLines( lines );
}
void QskBoxRenderer::renderBox( const QRectF& rect,
const QskBoxShapeMetrics& shape, const QskGradient& gradient,
QSGGeometry& geometry )
void QskBoxRenderer::setColoredFillLines( const QRectF& rect,
const QskBoxShapeMetrics& shape, const QskBoxBorderMetrics& border,
const QskGradient& gradient, QSGGeometry& geometry )
{
renderBox( rect, shape, QskBoxBorderMetrics(),
setColoredBorderAndFillLines( rect, shape, border,
QskBoxBorderColors(), gradient, geometry );
}
void QskBoxRenderer::renderBox( const QRectF& rect,
void QskBoxRenderer::setColoredBorderLines( const QRectF& rect,
const QskBoxShapeMetrics& shape, const QskBoxBorderMetrics& border,
const QskBoxBorderColors& borderColors, QSGGeometry& geometry )
{
geometry.setDrawingMode( QSGGeometry::DrawTriangleStrip );
geometry.markVertexDataDirty();
const QskBoxBasicStroker stroker( QskBoxMetrics( rect, shape, border ), borderColors );
if ( auto lines = qskAllocateColoredLines( geometry, stroker.borderCount() ) )
stroker.setBoxLines( lines, nullptr );
}
void QskBoxRenderer::setColoredBorderAndFillLines( const QRectF& rect,
const QskBoxShapeMetrics& shape, const QskBoxBorderMetrics& border,
const QskBoxBorderColors& borderColors, const QskGradient& gradient,
QSGGeometry& geometry )

View File

@ -26,27 +26,34 @@ namespace QskBoxRenderer
- using shaders setting the color information
*/
QSK_EXPORT void renderBorderGeometry( const QRectF&,
QSK_EXPORT void setBorderLines( const QRectF&,
const QskBoxShapeMetrics&, const QskBoxBorderMetrics&, QSGGeometry& );
QSK_EXPORT void renderFillGeometry( const QRectF&,
QSK_EXPORT void setFillLines( const QRectF&,
const QskBoxShapeMetrics&, const QskBoxBorderMetrics&, QSGGeometry& );
QSK_EXPORT void renderFillGeometry( const QRectF&,
QSK_EXPORT void setFillLines( const QRectF&,
const QskBoxShapeMetrics&, QSGGeometry& );
/*
Filling the geometry usually with color information:
Filling the geometry with color information:
see QSGGeometry::defaultAttributes_ColoredPoint2D()
Usually used in combination with QSGVertexColorMaterial
*/
QSK_EXPORT bool isGradientSupported( const QskGradient& );
QSK_EXPORT void renderBox( const QRectF&,
QSK_EXPORT void setColoredBorderLines( const QRectF&,
const QskBoxShapeMetrics&, const QskBoxBorderMetrics&,
const QskBoxBorderColors&, QSGGeometry& );
QSK_EXPORT void setColoredFillLines( const QRectF&,
const QskBoxShapeMetrics&, const QskBoxBorderMetrics&,
const QskGradient&, QSGGeometry& );
QSK_EXPORT void setColoredBorderAndFillLines( const QRectF&,
const QskBoxShapeMetrics&, const QskBoxBorderMetrics&,
const QskBoxBorderColors&, const QskGradient&, QSGGeometry& );
QSK_EXPORT void renderBox( const QRectF&,
const QskBoxShapeMetrics&, const QskGradient&, QSGGeometry& );
}
#endif