aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/particles/qquickimageparticle.cpp12
-rw-r--r--src/particles/qquickimageparticle_p.h1
-rw-r--r--src/particles/shaders_ng/imageparticle.frag1
-rw-r--r--src/particles/shaders_ng/imageparticle.vert3
-rw-r--r--src/particles/shaders_ng/imageparticle_colored.frag.qsbbin1644 -> 1676 bytes
-rw-r--r--src/particles/shaders_ng/imageparticle_colored.vert.qsbbin3995 -> 4026 bytes
-rw-r--r--src/particles/shaders_ng/imageparticle_coloredpoint.frag.qsbbin1634 -> 1663 bytes
-rw-r--r--src/particles/shaders_ng/imageparticle_coloredpoint.vert.qsbbin3425 -> 3526 bytes
-rw-r--r--src/particles/shaders_ng/imageparticle_deformed.frag.qsbbin1645 -> 1689 bytes
-rw-r--r--src/particles/shaders_ng/imageparticle_deformed.vert.qsbbin5333 -> 5389 bytes
-rw-r--r--src/particles/shaders_ng/imageparticle_simplepoint.frag.qsbbin1637 -> 1655 bytes
-rw-r--r--src/particles/shaders_ng/imageparticle_simplepoint.vert.qsbbin3457 -> 3474 bytes
-rw-r--r--src/particles/shaders_ng/imageparticle_sprite.frag.qsbbin1962 -> 1988 bytes
-rw-r--r--src/particles/shaders_ng/imageparticle_sprite.vert.qsbbin6032 -> 6028 bytes
-rw-r--r--src/particles/shaders_ng/imageparticle_tabled.frag.qsbbin1837 -> 1875 bytes
-rw-r--r--src/particles/shaders_ng/imageparticle_tabled.vert.qsbbin5670 -> 5694 bytes
16 files changed, 16 insertions, 1 deletions
diff --git a/src/particles/qquickimageparticle.cpp b/src/particles/qquickimageparticle.cpp
index 2b03d7889a..643194c8d5 100644
--- a/src/particles/qquickimageparticle.cpp
+++ b/src/particles/qquickimageparticle.cpp
@@ -79,6 +79,7 @@ class ImageMaterialData
float sizeTable[UNIFORM_ARRAY_SIZE];
float opacityTable[UNIFORM_ARRAY_SIZE];
+ qreal dpr;
qreal timestamp;
qreal entry;
QSizeF animSheetSize;
@@ -336,6 +337,9 @@ public:
float timestamp = float(state->timestamp);
memcpy(buf->data() + 72, &timestamp, 4);
+ float dpr = float(state->dpr);
+ memcpy(buf->data() + 76, &dpr, 4);
+
return true;
}
@@ -428,6 +432,9 @@ public:
float timestamp = float(state->timestamp);
memcpy(buf->data() + 72, &timestamp, 4);
+ float dpr = float(state->dpr);
+ memcpy(buf->data() + 76, &dpr, 4);
+
return true;
}
@@ -735,6 +742,7 @@ QQuickImageParticle::QQuickImageParticle(QQuickItem* parent)
, m_startedImageLoading(0)
, m_rhi(nullptr)
, m_apiChecked(false)
+ , m_dpr(1.0)
{
setFlag(ItemHasContents);
}
@@ -1420,6 +1428,8 @@ void QQuickImageParticle::finishBuildParticleNodes(QSGNode** node)
}
state->texture->setFiltering(QSGTexture::Linear);
state->entry = (qreal) m_entryEffect;
+ state->dpr = m_dpr;
+
m_material->setFlag(QSGMaterial::Blending | QSGMaterial::RequiresFullMatrix);
}
}
@@ -1531,6 +1541,8 @@ QSGNode *QQuickImageParticle::updatePaintNode(QSGNode *node, UpdatePaintNodeData
qWarning("Failed to query QRhi, particles disabled");
return nullptr;
}
+ // Get the pixel ratio of the window, used for pointsize scaling
+ m_dpr = m_window ? m_window->devicePixelRatio() : 1.0;
}
if (m_pleaseReset){
diff --git a/src/particles/qquickimageparticle_p.h b/src/particles/qquickimageparticle_p.h
index 0df098a05e..320534ca0b 100644
--- a/src/particles/qquickimageparticle_p.h
+++ b/src/particles/qquickimageparticle_p.h
@@ -482,6 +482,7 @@ private:
int m_startedImageLoading;
QRhi *m_rhi;
bool m_apiChecked;
+ qreal m_dpr;
};
QT_END_NAMESPACE
diff --git a/src/particles/shaders_ng/imageparticle.frag b/src/particles/shaders_ng/imageparticle.frag
index 89cdd48257..90b79e6ea9 100644
--- a/src/particles/shaders_ng/imageparticle.frag
+++ b/src/particles/shaders_ng/imageparticle.frag
@@ -23,6 +23,7 @@ layout(std140, binding = 0) uniform buf {
float opacity;
float entry;
float timestamp;
+ float dpr;
float sizetable[64];
float opacitytable[64];
} ubuf;
diff --git a/src/particles/shaders_ng/imageparticle.vert b/src/particles/shaders_ng/imageparticle.vert
index 420b2e2210..da3533dc40 100644
--- a/src/particles/shaders_ng/imageparticle.vert
+++ b/src/particles/shaders_ng/imageparticle.vert
@@ -48,6 +48,7 @@ layout(std140, binding = 0) uniform buf {
float opacity;
float entry;
float timestamp;
+ float dpr;
float sizetable[64];
float opacitytable[64];
} ubuf;
@@ -137,7 +138,7 @@ void main()
pos = vPos.xy
+ vVec.xy * t * vData.y // apply velocity vector..
+ 0.5 * vVec.zw * pow(t * vData.y, 2.);
- gl_PointSize = currentSize;
+ gl_PointSize = currentSize * ubuf.dpr;
#else // non point color
vec2 deform = currentSize * (vTex.xy - 0.5);
pos = vPos.xy
diff --git a/src/particles/shaders_ng/imageparticle_colored.frag.qsb b/src/particles/shaders_ng/imageparticle_colored.frag.qsb
index 0cde86cd8f..5dfc5d1d97 100644
--- a/src/particles/shaders_ng/imageparticle_colored.frag.qsb
+++ b/src/particles/shaders_ng/imageparticle_colored.frag.qsb
Binary files differ
diff --git a/src/particles/shaders_ng/imageparticle_colored.vert.qsb b/src/particles/shaders_ng/imageparticle_colored.vert.qsb
index 77549dd5f0..b2548042ca 100644
--- a/src/particles/shaders_ng/imageparticle_colored.vert.qsb
+++ b/src/particles/shaders_ng/imageparticle_colored.vert.qsb
Binary files differ
diff --git a/src/particles/shaders_ng/imageparticle_coloredpoint.frag.qsb b/src/particles/shaders_ng/imageparticle_coloredpoint.frag.qsb
index f30633eec9..6e0373fd3b 100644
--- a/src/particles/shaders_ng/imageparticle_coloredpoint.frag.qsb
+++ b/src/particles/shaders_ng/imageparticle_coloredpoint.frag.qsb
Binary files differ
diff --git a/src/particles/shaders_ng/imageparticle_coloredpoint.vert.qsb b/src/particles/shaders_ng/imageparticle_coloredpoint.vert.qsb
index 3c92bc2f63..09b31c77c3 100644
--- a/src/particles/shaders_ng/imageparticle_coloredpoint.vert.qsb
+++ b/src/particles/shaders_ng/imageparticle_coloredpoint.vert.qsb
Binary files differ
diff --git a/src/particles/shaders_ng/imageparticle_deformed.frag.qsb b/src/particles/shaders_ng/imageparticle_deformed.frag.qsb
index 00ebda56a9..3df7e49cd0 100644
--- a/src/particles/shaders_ng/imageparticle_deformed.frag.qsb
+++ b/src/particles/shaders_ng/imageparticle_deformed.frag.qsb
Binary files differ
diff --git a/src/particles/shaders_ng/imageparticle_deformed.vert.qsb b/src/particles/shaders_ng/imageparticle_deformed.vert.qsb
index 378e9ba876..121e35fbb0 100644
--- a/src/particles/shaders_ng/imageparticle_deformed.vert.qsb
+++ b/src/particles/shaders_ng/imageparticle_deformed.vert.qsb
Binary files differ
diff --git a/src/particles/shaders_ng/imageparticle_simplepoint.frag.qsb b/src/particles/shaders_ng/imageparticle_simplepoint.frag.qsb
index 738be48b91..6199c48589 100644
--- a/src/particles/shaders_ng/imageparticle_simplepoint.frag.qsb
+++ b/src/particles/shaders_ng/imageparticle_simplepoint.frag.qsb
Binary files differ
diff --git a/src/particles/shaders_ng/imageparticle_simplepoint.vert.qsb b/src/particles/shaders_ng/imageparticle_simplepoint.vert.qsb
index a53868d4a5..ff8a5403d6 100644
--- a/src/particles/shaders_ng/imageparticle_simplepoint.vert.qsb
+++ b/src/particles/shaders_ng/imageparticle_simplepoint.vert.qsb
Binary files differ
diff --git a/src/particles/shaders_ng/imageparticle_sprite.frag.qsb b/src/particles/shaders_ng/imageparticle_sprite.frag.qsb
index 53f7592520..2df0734683 100644
--- a/src/particles/shaders_ng/imageparticle_sprite.frag.qsb
+++ b/src/particles/shaders_ng/imageparticle_sprite.frag.qsb
Binary files differ
diff --git a/src/particles/shaders_ng/imageparticle_sprite.vert.qsb b/src/particles/shaders_ng/imageparticle_sprite.vert.qsb
index 8d0efb05c3..5ef575a868 100644
--- a/src/particles/shaders_ng/imageparticle_sprite.vert.qsb
+++ b/src/particles/shaders_ng/imageparticle_sprite.vert.qsb
Binary files differ
diff --git a/src/particles/shaders_ng/imageparticle_tabled.frag.qsb b/src/particles/shaders_ng/imageparticle_tabled.frag.qsb
index 788063044e..08a82fe8ab 100644
--- a/src/particles/shaders_ng/imageparticle_tabled.frag.qsb
+++ b/src/particles/shaders_ng/imageparticle_tabled.frag.qsb
Binary files differ
diff --git a/src/particles/shaders_ng/imageparticle_tabled.vert.qsb b/src/particles/shaders_ng/imageparticle_tabled.vert.qsb
index 2027b0ecfa..febe5a495a 100644
--- a/src/particles/shaders_ng/imageparticle_tabled.vert.qsb
+++ b/src/particles/shaders_ng/imageparticle_tabled.vert.qsb
Binary files differ