diff options
-rw-r--r-- | src/quick/scenegraph/qsgdefaultglyphnode_p.cpp | 24 | ||||
-rw-r--r-- | src/quick/scenegraph/shaders/styledtext.vert | 4 | ||||
-rw-r--r-- | src/quick/scenegraph/shaders/styledtext_core.vert | 4 | ||||
-rw-r--r-- | src/quick/scenegraph/shaders/textmask.vert | 2 | ||||
-rw-r--r-- | src/quick/scenegraph/shaders/textmask_core.vert | 2 |
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); } |