<i18n dev> Problems drawing supplemental characters in Java.

Mark Davis ☕️ mark at macchiato.com
Wed Apr 9 17:29:35 UTC 2014


jdk1.7.0_25.jdk


Mark <https://google.com/+MarkDavis>

 *— Il meglio è l’inimico del bene —*


On 9 April 2014 18:31, Phil Race <philip.race at oracle.com> wrote:

>  Sounds like https://bugs.openjdk.java.net/browse/JDK-8015556
>  [macosx] surrogate pairs do not render properly (show up as boxes or
> incorrect glyphs)
>
> But that was fixed in 7u40. What JDK 7 update is in use here ?
>
> -phil.
>
>
> On 4/9/14 9:17 AM, Naoto Sato wrote:
>
> Hi Mark,
>
> On 4/9/14, 3:11 AM, Mark Davis ☕️ wrote:
>
> I'm having some trouble with drawing supplemental characters in Java. It
> appears to be due to bugs in Java.
>
> *First, how do I report this? And second, can anyone think of a
> work-around?*
>
>
> Here is the link to report an issue against JDK:
>
> http://bugreport.java.com/bugreport/
>
> Please choose "classes_2d" as the subcategory.
>
>
> This is on a Mac OS 10.9.2, JDK 7, and I am rendering a number of
> characters in a loop.
>
> When I call
>
>                  graphics.drawString(s, xStart, ascent);
>
> Each supplemental character that shares the same first char (high
> surrogate) gets the same image (see attachments).
>
> It appears that it is caching by char instead of by code point.
>
>
> To work around the problem, I tried changing the code to draw glyph
> vectors instead.
>
>                  FontRenderContext frc = graphics.getFontRenderContext();
>
>                  GlyphVector gv = myFont.createGlyphVector(frc, s);
>
>                  ...
>
>                  Shape shape = gv.getOutline(xStart, ascent);
>
>                  graphics.draw(shape);
>
> To my surprise, it got even worse: I get an unknown glyph after each
> image. See attachments.
>
> It appears that when it is advancing through the string to get the
> glyphs, it is picking up the glyph ID for the code point, but then it is
> only advancing by 1, so it is always picking up garbage after each
> character.
>
>
> Yeah, your explanation does sound like what's happening in the font
> rendering on MacOSX. Phil/Mike, do you have any idea what's going on?
>
> Naoto
>
>
>


More information about the i18n-dev mailing list