public override void drawGlyphVector(java.awt.font.GlyphVector gv, float x, float y) { java.awt.font.FontRenderContext frc = gv.getFontRenderContext(); Matrix currentMatrix = null; Font currentFont = netfont; TextRenderingHint currentHint = g.TextRenderingHint; try { java.awt.Font javaFont = gv.getFont(); if (javaFont != null) { netfont = javaFont.getNetFont(); } if (frc.isAntiAliased()) { if( frc.usesFractionalMetrics() ){ g.TextRenderingHint = TextRenderingHint.AntiAlias; } else { g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; } } else { if (frc.usesFractionalMetrics()) { g.TextRenderingHint = TextRenderingHint.SingleBitPerPixel; } else { g.TextRenderingHint = TextRenderingHint.SingleBitPerPixelGridFit; } } if (!frc.getTransform().equals(getTransform())) { // save the old context and use the transformation from the renderContext currentMatrix = g.Transform; g.Transform = J2C.ConvertTransform(frc.getTransform()); } drawString(J2C.ConvertGlyphVector(gv), x, y); } finally { // Restore the old context if needed g.TextRenderingHint = currentHint; netfont = currentFont; if (currentMatrix != null) { g.Transform = currentMatrix; } } }
public override void drawGlyphVector(java.awt.font.GlyphVector gv, float x, float y) { java.awt.Font javaFont = gv.getFont(); if (javaFont == null) { javaFont = font; } int count = gv.getNumGlyphs(); char[] text = new char[count]; for (int i = 0; i < count; i++) { text[i] = (char)gv.getGlyphCode(i); } java.awt.font.FontRenderContext frc = gv.getFontRenderContext(); Matrix matrix = null; try { if (frc != null && !frc.getTransform().equals(getTransform())) { // save the old context and use the transformation from the renderContext matrix = g.Transform; g.Transform = J2C.ConvertTransform(frc.getTransform()); } g.DrawString(new string(text), javaFont.getNetFont(), brush, x, y - javaFont.getSize(), StringFormat.GenericTypographic); } finally { // Restore the old context if needed if (matrix != null) { g.Transform = matrix; } } }