qskinny/src/nodes/QskBoxRenderer.h

71 lines
2.0 KiB
C
Raw Normal View History

/******************************************************************************
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
*****************************************************************************/
#ifndef QSK_BOX_RENDERER_H
#define QSK_BOX_RENDERER_H
2023-01-04 15:15:22 +00:00
#include "QskGlobal.h"
class QskBoxBorderMetrics;
class QskBoxBorderColors;
2022-12-09 10:50:31 +00:00
class QskBoxShapeMetrics;
class QskGradient;
class QQuickWindow;
class QSGGeometry;
2022-12-09 10:50:31 +00:00
class QRectF;
class QSK_EXPORT QskBoxRenderer
{
public:
QskBoxRenderer( const QQuickWindow* );
~QskBoxRenderer();
2023-01-11 11:51:16 +00:00
/*
Filling the geometry without any color information:
see QSGGeometry::defaultAttributes_Point2D()
- clip nodes
- using shaders setting the color information
*/
void setBorderLines( const QRectF&,
const QskBoxShapeMetrics&, const QskBoxBorderMetrics&, QSGGeometry& );
void setFillLines( const QRectF&,
const QskBoxShapeMetrics&, const QskBoxBorderMetrics&, QSGGeometry& );
void setFillLines( const QRectF&,
2023-01-11 11:51:16 +00:00
const QskBoxShapeMetrics&, QSGGeometry& );
/*
Filling the geometry with color information:
2023-01-11 11:51:16 +00:00
see QSGGeometry::defaultAttributes_ColoredPoint2D()
Usually used in combination with QSGVertexColorMaterial
*/
2023-01-11 11:51:16 +00:00
void setColoredBorderLines( const QRectF&,
const QskBoxShapeMetrics&, const QskBoxBorderMetrics&,
const QskBoxBorderColors&, QSGGeometry& );
void setColoredFillLines( const QRectF&,
const QskBoxShapeMetrics&, const QskBoxBorderMetrics&,
const QskGradient&, QSGGeometry& );
void setColoredBorderAndFillLines( const QRectF&,
const QskBoxShapeMetrics&, const QskBoxBorderMetrics&,
const QskBoxBorderColors&, const QskGradient&, QSGGeometry& );
static bool isGradientSupported( const QskGradient& );
static QskGradient effectiveGradient( const QskGradient& );
private:
// for adjustments to the target ( f.e devicePixelRatio )
const QQuickWindow* m_window;
};
#endif