diff --git a/engine/src/core/com/jme3/font/LetterQuad.java b/engine/src/core/com/jme3/font/LetterQuad.java index bf4b082bb..ba2b5fe81 100644 --- a/engine/src/core/com/jme3/font/LetterQuad.java +++ b/engine/src/core/com/jme3/font/LetterQuad.java @@ -291,6 +291,18 @@ class LetterQuad { if (previous.isHead() || previous.eol) { x0 = bound.x; + + // The first letter quad will be drawn right at the first + // position... but it does not offset by the characters offset + // amount. This means that we've potentially accumulated extra + // pixels and the next letter won't get drawn far enough unless + // we add this offset back into xAdvance.. by subtracting it. + // This is the same thing that's done below because we've + // technically baked the offset in just like below. It doesn't + // look like it at first glance so I'm keeping it separate with + // this comment. + xAdvance -= xOffset * incrScale; + } else { x0 = previous.getNextX() + xOffset * incrScale;