The problem is in GlyphCache.render(..)
pt.setLocation(x + gl.getPosX(gi), y + gl.getPosY(gi));
int subPixel = strike.getQuantizedPosition(pt);
GlyphData data = getCachedGlyph(gc, subPixel);
....
xform.transform(pt, pt);
addDataToQuad(data, vb, tex, pt.x, pt.y, dstw, dsth);
That call to getQuantizedPosition() is doing rounding
before we have the final device space.
The fix is to move the transform to before the call to
getQuantizedPosition()
This makes the test look much better. TextTest was also used to verify that
everything behaves well under scales and rotates.
Bug : https://bugs.openjdk.java.net/browse/JDK-8154177
Webrev: http://cr.openjdk.java.net/~prr/8154177/
-phil.