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.r...@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 > > >