fix: closed panels don't add resistance to bounce + use qtrendering for text

This commit is contained in:
2026-10-07 13:32:37 +02:00
parent 376595cd0b
commit 909b5113fb
14 changed files with 146 additions and 81 deletions
+6 -3
View File
@@ -22,9 +22,11 @@ class BlobInvertedRect2;
// disagree with the first. That is what makes overlapping shapes read as one
// surface - one value, one writer, one alpha per pixel.
struct BlobGroupData {
// The shader reads rectData[80] = 16 entries, and excludeMask is a 32-bit
// mask. The shared list is capped at 16, in group order, so the cap is the
// same list for every pixel.
// The shader reads rectData[80] = 16 entries of 5 vec4, and excludeMask is a
// 32-bit mask. The shared list is capped at 16, in group order, so the cap is the
// same list for every pixel. Each entry is either a source for its span or not; the
// flag is in the third vec4 alongside the screen half-extents, so no extra data is
// needed.
static constexpr int kMaxRects = 16;
QVector<BlobRectData> rects;
@@ -109,6 +111,7 @@ class BlobGroup2 : public QQuickItem {
private:
void ensurePhysicsUpdated();
void ensureDataBuilt();
void resolveSources(const QVector<BlobShape2*>& entryShapes);
void fillMaterial(BlobMaterial* material);
qreal m_smoothing = 32.0;