<i18n dev> Problems drawing supplemental characters in Java.
Mark Davis ☕️
mark at macchiato.com
Wed Apr 9 19:28:41 UTC 2014
Fixes it, thanks!!
Mark <https://google.com/+MarkDavis>
*— Il meglio è l’inimico del bene —*
On 9 April 2014 19:43, Phil Race <philip.race at oracle.com> wrote:
> 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