When freetype scaler is used outline is not translated correctly along y axis. Testcase: ============ import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.font.FontRenderContext; import java.awt.font.GlyphVector; import javax.swing.JComponent; import javax.swing.JFrame; public class BugDemo { public static class DemoComponent extends JComponent { @Override public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; FontRenderContext frc = new FontRenderContext(null, false, false); g2.translate(100, 100); g2.setColor(Color.GRAY); g2.drawLine(0,0,150,0); g2.drawLine(0,150,0,0); g2.setColor(Color.BLACK); GlyphVector gv = g.getFont().createGlyphVector(frc, "test"); g2.drawGlyphVector(gv, 20, 20); g2.setColor(Color.RED); g2.fill(gv.getOutline(20,20)); } } private static void createAndShowGUI() { JFrame.setDefaultLookAndFeelDecorated(true); JFrame frame = new JFrame("BugDemo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(new DemoComponent()); frame.pack(); frame.setSize(200,200); frame.setVisible(true); } public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } }
|