MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / generateShadowCorner

Function generateShadowCorner

app/src/Platform/CSD.cpp:98–118  ·  view source on GitHub ↗

* @brief Generates a square shadow corner tile fading from opaque (inner) to transparent (outer). */

Source from the content-addressed store, hash-verified

96 * @brief Generates a square shadow corner tile fading from opaque (inner) to transparent (outer).
97 */
98QImage generateShadowCorner(int size)
99{
100 QImage tile(size, size, QImage::Format_ARGB32_Premultiplied);
101 tile.fill(Qt::transparent);
102
103 const qreal invSize = size > 0 ? 1.0 / static_cast<qreal>(size) : 0.0;
104 for (int y = 0; y < size; ++y) {
105 for (int x = 0; x < size; ++x) {
106 const qreal dx = static_cast<qreal>(size - x - 1);
107 const qreal dy = static_cast<qreal>(size - y - 1);
108 const qreal dist = qSqrt(dx * dx + dy * dy);
109
110 qreal alpha = 1.0 - qMin(dist * invSize, 1.0);
111 alpha = alpha * alpha * (3.0 - 2.0 * alpha);
112 alpha *= CSD::ShadowOpacity;
113 tile.setPixelColor(x, y, QColor(0, 0, 0, qRound(alpha * 255)));
114 }
115 }
116
117 return tile;
118}
119
120/**
121 * @brief Builds the (2r+1)^2 9-slice atlas: corner tiles + 1px edge gradients + transparent center.

Callers 1

buildShadowAtlasFunction · 0.85

Calls 1

fillMethod · 0.45

Tested by

no test coverage detected