qskinny/src/nodes/QskBoxRectangleNode.h

55 lines
1.6 KiB
C
Raw Normal View History

2022-06-13 15:01:15 +00:00
/******************************************************************************
2024-01-17 13:31:45 +00:00
* QSkinny - Copyright (C) The authors
2023-04-06 07:23:37 +00:00
* SPDX-License-Identifier: BSD-3-Clause
2022-06-13 15:01:15 +00:00
*****************************************************************************/
#ifndef QSK_BOX_RECTANGLE_NODE_H
#define QSK_BOX_RECTANGLE_NODE_H
2022-06-13 15:01:15 +00:00
#include "QskGlobal.h"
2023-11-15 10:47:56 +00:00
#include "QskFillNode.h"
2022-06-13 15:01:15 +00:00
class QskBoxShapeMetrics;
class QskBoxBorderMetrics;
class QskBoxBorderColors;
class QskGradient;
2022-06-13 15:01:15 +00:00
class QskBoxRectangleNodePrivate;
2023-11-15 10:47:56 +00:00
class QSK_EXPORT QskBoxRectangleNode : public QskFillNode
2022-06-13 15:01:15 +00:00
{
2023-11-15 10:47:56 +00:00
using Inherited = QskFillNode;
2022-06-13 15:01:15 +00:00
public:
QskBoxRectangleNode();
~QskBoxRectangleNode() override;
2022-06-13 15:01:15 +00:00
void updateBox( const QRectF&,
2022-06-13 15:01:15 +00:00
const QskBoxShapeMetrics&, const QskBoxBorderMetrics&,
const QskBoxBorderColors&, const QskGradient& );
void updateBorder( const QRectF&,
const QskBoxShapeMetrics&, const QskBoxBorderMetrics&,
const QskBoxBorderColors& );
void updateFilling( const QRectF& rect, const QskGradient& );
void updateFilling( const QRectF& rect,
2022-12-30 09:27:18 +00:00
const QskBoxShapeMetrics&, const QskGradient& );
void updateFilling( const QRectF& rect, const QskBoxShapeMetrics&,
const QskBoxBorderMetrics&, const QskGradient& );
/*
If true border/filling can be rendered together into the same geometry.
This should not make much difference as the scene graph batches geometries
for the same material anyway.
*/
static bool isCombinedGeometrySupported( const QskGradient& );
private:
Q_DECLARE_PRIVATE( QskBoxRectangleNode )
2022-06-13 15:01:15 +00:00
};
#endif