fix: blobs now allow to be drawn in device pixels to stay sharp
C++ / fmt (pull_request) Failing after 5s
C++ / build (pull_request) Failing after 10s
C++ / clang-tidy (pull_request) Failing after 10s
JS/TS / fmt (pull_request) Successful in 9s
JS/TS / lint (pull_request) Successful in 25s
Python / static (pull_request) Successful in 34s
Rust / build (pull_request) Successful in 51s
Python / verify (pull_request) Failing after 1m25s
Rust / fmt (pull_request) Successful in 39s
Rust / clippy (pull_request) Successful in 59s
C++ / fmt (pull_request) Failing after 5s
C++ / build (pull_request) Failing after 10s
C++ / clang-tidy (pull_request) Failing after 10s
JS/TS / fmt (pull_request) Successful in 9s
JS/TS / lint (pull_request) Successful in 25s
Python / static (pull_request) Successful in 34s
Rust / build (pull_request) Successful in 51s
Python / verify (pull_request) Failing after 1m25s
Rust / fmt (pull_request) Successful in 39s
Rust / clippy (pull_request) Successful in 59s
This commit is contained in:
@@ -8,14 +8,9 @@ struct BlobRectData {
|
||||
float cx = 0, cy = 0, hw = 0, hh = 0;
|
||||
float offsetX = 0, offsetY = 0;
|
||||
float minEig = 1.0f;
|
||||
// Inverse of 2x2 deformation matrix, column-major for GLSL
|
||||
float invDeform[4] = {1, 0, 0, 1};
|
||||
// Screen-space AABB half-extents of the deformed rect
|
||||
float screenHalfX = 0, screenHalfY = 0;
|
||||
// Effective per-corner radii (tr, br, bl, tl), pre-computed on CPU
|
||||
float radius[4] = {0, 0, 0, 0};
|
||||
// Bitmask of indices in this rect's m_cachedRects that mutually exclude (or are excluded by) this rect.
|
||||
// Used by the shader to skip smin between excluded pairs.
|
||||
int excludeMask = 0;
|
||||
};
|
||||
|
||||
@@ -32,19 +27,14 @@ class BlobMaterial : public QSGMaterial {
|
||||
float m_paddedH = 0;
|
||||
float m_smoothFactor = 32.0f;
|
||||
int m_rectCount = 0;
|
||||
// -2 means no owner test: the single group draw writes every pixel it covers.
|
||||
int m_myIndex = -2;
|
||||
QColor m_color{0x44, 0x88, 0xff};
|
||||
int m_hasInverted = 0;
|
||||
float m_invertedRadius = 0;
|
||||
float m_invertedOuter[4] = {};
|
||||
float m_invertedInner[4] = {};
|
||||
// Phase 2: shadow around the material edges. Matches the uniform block, which
|
||||
// puts these after rectData.
|
||||
float m_shadowRadius = 0.0f;
|
||||
float m_shadowColor[4] = {0.0f, 0.0f, 0.0f, 0.5f};
|
||||
// Outer-edge corner radii (tr, br, bl, tl). Matches the uniform block, which
|
||||
// puts this after shadowColor.
|
||||
float m_invertedOuterRadii[4] = {};
|
||||
BlobRectData m_rects[16] = {};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user