<i18n dev> Problems drawing supplemental characters in Java.
Phil Race
philip.race at oracle.com
Wed Apr 9 17:43:43 UTC 2014
So can you please update to 7u51 (current security baseline) and see if
that cures it ?
http://www.oracle.com/technetwork/java/javase/7u51-relnotes-2085002.html
-phil.
On 4/9/2014 10:29 AM, Mark Davis ☕️ wrote:
> 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
> <mailto: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