aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/scenegraph/qsgdefaultglyphnode_p.cpp24
-rw-r--r--src/quick/scenegraph/shaders/styledtext.vert4
-rw-r--r--src/quick/scenegraph/shaders/styledtext_core.vert4
-rw-r--r--src/quick/scenegraph/shaders/textmask.vert2
-rw-r--r--src/quick/scenegraph/shaders/textmask_core.vert2
5 files changed, 8 insertions, 28 deletions
diff --git a/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp b/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp
index 16feafe02f..802c92be9f 100644
--- a/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp
+++ b/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp
@@ -128,28 +128,8 @@ void QSGTextMaskShader::updateState(const RenderState &state, QSGMaterial *newEf
}
}
- if (state.isMatrixDirty()) {
- QMatrix4x4 transform = state.modelViewMatrix();
- qreal xTranslation = transform(0, 3);
- qreal yTranslation = transform(1, 3);
-
- // Remove translation and check identity to see if matrix is only translating.
- // If it is, we can round the translation to make sure the text is pixel aligned,
- // which is the only thing that works with GL_NEAREST filtering. Adding rotations
- // and scales to native rendered text is not a prioritized use case, since the
- // default rendering type is designed for that.
- transform(0, 3) = 0.0;
- transform(1, 3) = 0.0;
- if (transform.isIdentity()) {
- transform(0, 3) = qRound(xTranslation);
- transform(1, 3) = qRound(yTranslation);
-
- transform = state.projectionMatrix() * transform;
- program()->setUniformValue(m_matrix_id, transform);
- } else {
- program()->setUniformValue(m_matrix_id, state.combinedMatrix());
- }
- }
+ if (state.isMatrixDirty())
+ program()->setUniformValue(m_matrix_id, state.combinedMatrix());
}
class QSG8BitTextMaskShader : public QSGTextMaskShader
diff --git a/src/quick/scenegraph/shaders/styledtext.vert b/src/quick/scenegraph/shaders/styledtext.vert
index 3ad9497b65..14fefc2564 100644
--- a/src/quick/scenegraph/shaders/styledtext.vert
+++ b/src/quick/scenegraph/shaders/styledtext.vert
@@ -12,5 +12,5 @@ void main()
{
sampleCoord = tCoord * textureScale;
shiftedSampleCoord = (tCoord - shift) * textureScale;
- gl_Position = matrix * vCoord;
-} \ No newline at end of file
+ gl_Position = matrix * floor(vCoord + 0.5);
+}
diff --git a/src/quick/scenegraph/shaders/styledtext_core.vert b/src/quick/scenegraph/shaders/styledtext_core.vert
index b7a3ecc667..65bdb66814 100644
--- a/src/quick/scenegraph/shaders/styledtext_core.vert
+++ b/src/quick/scenegraph/shaders/styledtext_core.vert
@@ -14,5 +14,5 @@ void main()
{
sampleCoord = tCoord * textureScale;
shiftedSampleCoord = (tCoord - shift) * textureScale;
- gl_Position = matrix * vCoord;
-} \ No newline at end of file
+ gl_Position = matrix * round(vCoord);
+}
diff --git a/src/quick/scenegraph/shaders/textmask.vert b/src/quick/scenegraph/shaders/textmask.vert
index 1f45e9cf71..dd8918839e 100644
--- a/src/quick/scenegraph/shaders/textmask.vert
+++ b/src/quick/scenegraph/shaders/textmask.vert
@@ -9,5 +9,5 @@ varying highp vec2 sampleCoord;
void main()
{
sampleCoord = tCoord * textureScale;
- gl_Position = matrix * vCoord;
+ gl_Position = matrix * floor(vCoord + 0.5);
}
diff --git a/src/quick/scenegraph/shaders/textmask_core.vert b/src/quick/scenegraph/shaders/textmask_core.vert
index 619248dccb..d145d33195 100644
--- a/src/quick/scenegraph/shaders/textmask_core.vert
+++ b/src/quick/scenegraph/shaders/textmask_core.vert
@@ -11,5 +11,5 @@ uniform vec2 textureScale;
void main()
{
sampleCoord = tCoord * textureScale;
- gl_Position = matrix * vCoord;
+ gl_Position = matrix * round(vCoord);
}