[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-2d-dev
Subject:    Re: [OpenJDK 2D-Dev] RFR: 7017058: Malayalam glyph substitution is failing for Malayalam with Window
From:       Prasanta Sadhukhan <prasanta.sadhukhan () oracle ! com>
Date:       2018-09-13 6:25:01
Message-ID: 136c112c-41ae-5c62-b4d1-b482743cf4cb () oracle ! com
[Download RAW message or body]

+1

Regards
Prasanta
On 05-Sep-18 6:10 AM, Philip Race wrote:
> This fixes 3 submitted bugs
> https://bugs.openjdk.java.net/browse/JDK-7017058 : the Malayalam bug above
> And also
> https://bugs.openjdk.java.net/browse/JDK-8191130 :
> Sinhala text rendering problem with C+VIRAMA+ZWJ+RA/YA+V
> and
> https://bugs.openjdk.java.net/browse/JDK-8195836:
> opentype:Bengali: "Khanda Ta" shaping issue with U+09A4 TA, U+09CD 
> virama, U+200D ZWJ
>
> Webrev: http://cr.openjdk.java.net/~prr/7017058/
>
> As discussed in the evaluation of 7017058, this is because of some 
> code which
> always maps several unicode formatting characters to the invisible 
> glyph to
> ensure it is never rendered as a missing glyph box.
> But if the opentype tables in a font have glyph substitution looks ups 
> that
> depend on that font's actual mapping of those glyphs then they are broken.
> We have had several reports of this (above) and also complaints this 
> breaks
> Emoji family ligature substitution.
>
> The fix changes this to first consult the font to see if it does map 
> these codepoints.
> If it does not then we still will map to the empty glyph in which case 
> clearly the
> font can't have any lookup that depends on it.
>
> The variable origCharCode is added because several of the methods 
> mutate charCode
> and we avoid risk with this approach.
>
> The tab, NL and CR code points are still always mapped to the empty glyph
> since they are never going to be used by layout in this way and some fonts
> map TAB to a space char which is not what we want.
>
> -phil.
>
>


[Attachment #3 (text/html)]

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>+1<br>
    </p>
    Regards<br>
    Prasanta<br>
    <div class="moz-cite-prefix">On 05-Sep-18 6:10 AM, Philip Race
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:5B8F25FD.1000606@oracle.com">
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      This fixes 3 submitted bugs<br>
      <a class="moz-txt-link-freetext"
        href="https://bugs.openjdk.java.net/browse/JDK-7017058"
        moz-do-not-send="true">https://bugs.openjdk.java.net/browse/JDK-7017058</a>
      : the Malayalam bug above<br>
      And also<br>
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      <a class="moz-txt-link-freetext"
        href="https://bugs.openjdk.java.net/browse/JDK-8191130"
        moz-do-not-send="true">https://bugs.openjdk.java.net/browse/JDK-8191130</a>
      :<br>
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      Sinhala text rendering problem with C+VIRAMA+ZWJ+RA/YA+V<br>
      and<br>
      <a class="moz-txt-link-freetext"
        href="https://bugs.openjdk.java.net/browse/JDK-8195836:"
        moz-do-not-send="true">https://bugs.openjdk.java.net/browse/JDK-8195836:</a><br>
      opentype:Bengali: "Khanda Ta" shaping issue with U+09A4 TA, U+09CD
      virama, U+200D ZWJ<br>
      <br>
      Webrev: <a class="moz-txt-link-freetext"
        href="http://cr.openjdk.java.net/%7Eprr/7017058/"
        moz-do-not-send="true">http://cr.openjdk.java.net/~prr/7017058/</a><br>
      <br>
      As discussed in the evaluation of 7017058, this is because of some
      code which<br>
      always maps several unicode formatting characters to the invisible
      glyph to<br>
      ensure it is never rendered as a missing glyph box.<br>
      But if the opentype tables in a font have glyph substitution looks
      ups that<br>
      depend on that font's actual mapping of those glyphs then they are
      broken.<br>
      We have had several reports of this (above) and also complaints
      this breaks<br>
      Emoji family ligature substitution.<br>
      <br>
      The fix changes this to first consult the font to see if it does
      map these codepoints.<br>
      If it does not then we still will map to the empty glyph in which
      case clearly the<br>
      font can't have any lookup that depends on it.<br>
      <br>
      The variable origCharCode is added because several of the methods
      mutate charCode<br>
      and we avoid risk with this approach.<br>
      <br>
      The tab, NL and CR code points are still always mapped to the
      empty glyph<br>
      since they are never going to be used by layout in this way and
      some fonts<br>
      map TAB to a space char which is not what we want.<br>
      <br>
      -phil.<br>
      <br>
      <br>
    </blockquote>
    <br>
  </body>
</html>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic