| 1 | import QtQuick |
| 2 | import QtQuick.Shapes |
| 3 | |
| 4 | // The halftone orb on an empty desktop (no wallpaper): equal dots, a radial gradient sets their brightness. |
| 5 | // phase (s) = a slow breath. Ported from glyph-rice (github.com/Nebelung-cloud/glyph-rice, GPL-3.0), components/Orb.qml. |
| 6 | Shape { |
| 7 | property real phase: 0 |
| 8 | |
| 9 | width: 1100 |
| 10 | height: 1100 |
| 11 | opacity: 0.18 + 0.06 * Math.sin(phase * 2 * Math.PI / 8) |
| 12 | layer.enabled: true |
| 13 | layer.textureSize: Qt.size(320, 320) // a smooth gradient: the dots sample their cell centre, more pixels are wasted |
| 14 | layer.effect: DotMask { step: 14 } |
| 15 | |
| 16 | ShapePath { |
| 17 | strokeWidth: -1 |
| 18 | fillGradient: RadialGradient { |
| 19 | centerX: 352; centerY: 330; centerRadius: 730 |
| 20 | focalX: 352; focalY: 330 |
| 21 | GradientStop { position: 0; color: Theme.fill } |
| 22 | GradientStop { position: 1; color: Theme.fade(Theme.fill, 0) } |
| 23 | } |
| 24 | PathAngleArc { centerX: 550; centerY: 550; radiusX: 550; radiusY: 550; startAngle: 0; sweepAngle: 360 } |
| 25 | } |
| 26 | } |