6#include "qml_material/core.hpp"
8namespace qml_material::sg
22 void set_point(
float x,
float y)
noexcept {
26 void set_point(QVector2D v)
noexcept {
30 void set_color(QRgb c)
noexcept {
32 g = qGreen(c) / 255.0f;
33 b = qBlue(c) / 255.0f;
34 a = qAlpha(c) / 255.0f;
36 void set_color(
const QColor& c)
noexcept { set_color(c.rgb()); }
39struct RectangleVertex : BasicVertex {
43 float ce_distance_to_outter;
44 float ce_distance_to_inner;
46 operator QVector2D()
const {
return { x, y }; }
47 operator QColor()
const {
return QColor::fromRgbF(r, g, b, a); }
49auto create_rectangle_geometry() -> up<QSGGeometry>;
51void update_rectangle_geometry(RectangleVertex* vertexs, QVector2D size, QRgb color,
54struct ShadowVertex : BasicVertex {
58 float distance_correction;
60 void set_offset(QVector2D v)
noexcept {
65auto create_shadow_geometry() -> up<QSGGeometry>;
69 None_ShadowFlag = 0x00,
72 TransparentOccluder_ShadowFlag = 0x01,
74 GeometricOnly_ShadowFlag = 0x02,
76 DirectionalLight_ShadowFlag = 0x04,
78 ConcaveBlurOnly_ShadowFlag = 0x08,
83 QVector3D z_plane_params;
85 float light_radius { 0 };
86 QRgb ambient_color { 0 };
87 QRgb spot_color { 0 };
91void update_shadow_geometry(QSGGeometry* geo,
const ShadowParams& params,
const QRectF& rect);