1. 20 10月, 2015 2 次提交
    • S
      Merge "Support Variation Selector in font selection." · 16da66db
      Seigo Nonaka 提交于
      16da66db
    • S
      Support Variation Selector in font selection. · bbdd73ec
      Seigo Nonaka 提交于
      This CL contains the following changes:
      - Add a variation selector argument into getFamilyForChar to be able to
        select fonts which support variation selector.
      - In case no fonts support the codepoint and variation selector pair,
        add a fallback rule which selects font family with ignoring variation
        selector.
      - Change FontCollection::itemize to not change the font family
        immediately preceding a variation selector.
      - Introduce unit tests for variation selectors.
      
      With this CL, TextView can render the variation selectors correctly.
      
      Bug: 11256006
      Change-Id: I22ce0e9eadc941f84e3a9b23462f194e51dd7180
      bbdd73ec
  2. 19 10月, 2015 1 次提交
  3. 15 10月, 2015 7 次提交
  4. 12 10月, 2015 1 次提交
    • S
      Introduce FontFamily::hasVariationSelector · 0f2a025d
      Seigo Nonaka 提交于
      This CL introduces new method hasVariationSelector into FontFamily but it
      is not used in production code. So no behavior changes are expected.
      
      This CL contains the following changes:
      - Introduce hasVariationSelector which returns true if the corresponding
        font has a glyph for a code point and variation selector pair.
      - Introduce purgeHbFontCache since hb_face_t won't be released by
        keeping hb_font_t.
      - Introduce unit tests with self-built font.
      
      Change-Id: I659a6d03d9ec446b409e1fba2758452abb9f44fa
      0f2a025d
  5. 02 10月, 2015 1 次提交
  6. 01 10月, 2015 4 次提交
  7. 30 9月, 2015 3 次提交
  8. 18 9月, 2015 1 次提交
    • S
      Introduce unit tests for FontCollection::itemize. · 1c2bd209
      Seigo Nonaka 提交于
      Introduced tests depend on installed font list in running device.
      I verified these test passed  on Nexus 5(hammerhead), Nexus 6(shamu)
      and Nexus 9(volantis).
      
      Bug: 11256006
      Bug: 17759267
      Change-Id: I6f806370e17f6c6d3dad8df0cb70bb475a827873
      1c2bd209
  9. 11 9月, 2015 1 次提交
    • S
      Resolve glyph ID by HarfBuzz function. · 2a79f59e
      Seigo Nonaka 提交于
      Currently codepoint to glyph ID resolution is done through MinikinFont
      interface. To support variation selector, use HarfBuzz API instead of
      calling this interface since one of its implementation Skia doesn't
      support variation selector.
      
      On the other hand, we don't want to get glyph horizontal advance values
      by HarfBuzz since HarfBuzz doesn't return correct values when the hinting
      is active.
      
      Thus, use ot_font as a parent font and override
      glyph_h_advance/glyph_h_origin functions as is.
      
      With this change, MinikinFont::GetGlyph is no longer necessary but not
      removing in this CL for easy reverting since removing interface requires
      multi-repository commit.
      
      This is a base work of b/11256006 and this patch doesn't provide any
      user visible changes.
      
      Bug: 11256006
      Change-Id: I061172c0b674bb649ce8bc013ffecf38708bdc41
      2a79f59e
  10. 29 8月, 2015 1 次提交
    • S
      Update word breaker to be aware tone mark and variation selector. · 4e3adc6f
      Seigo Nonaka 提交于
      This CL does:
      1. Move the getNextWordBreak/getPrevWordBreak function to a separate source file.
      2. Adding "ForCache" suffix for function name for making clear these function is
         for layout cache.
      3. Introduce unit tests for them.
      
      Bug: 11256006
      Change-Id: I4138751a4570915f1a0d6c8921f89700f8ec7f35
      4e3adc6f
  11. 20 8月, 2015 1 次提交
    • R
      Add basic unit tests for Minikin · d8dd94b8
      Raph Levien 提交于
      Initial unit tests for Minikin functionality. Also fixes an incorrect
      Hangul case (uncovered in testing), and improves handling of broken
      UTF-16.
      
      Change-Id: I69b441d8e3b19ed06abcc56f13271abadf3d1010
      d8dd94b8
  12. 12 8月, 2015 1 次提交
  13. 08 8月, 2015 1 次提交
  14. 07 8月, 2015 1 次提交
    • R
      Gold plate grapheme cluster breaks. · c02138bf
      Roozbeh Pournader 提交于
      This tailors Unicode's Grapheme_Cluster_Break property to better
      classify characters currently with the Control property value.
      
      Also adds support for rule GB9b of UAX #29, needed since there are
      now characters we are tailoring to be Prepend. The rule was
      previously ommited in our implementation because there was no
      characters in the Prepend class.
      
      Bug: 15653110
      Change-Id: If10da88df0980f7d676c8c0b950eda5fb8dbe741
      c02138bf
  15. 30 7月, 2015 1 次提交
    • R
      Improve fallback where explicit variant is not given · 90a09c3f
      Raph Levien 提交于
      In computing scores for which fallback font to choose, a match of a
      variant given explicitly in the xml config file scores higher than a
      family with no explicit variant. One consequence is that U+2010
      HYPHEN is chosen from the Naskh Arabic font in the fallback case.
      
      This patch scores families with no variants as a match (effectively
      the same as if the xml file specified both variants). Thus, it will
      choose the first matching font (Roboto), which is a better choice.
      
      This patch also revises the list of "sticky" characters to include
      various hyphens, so Arabic (and potentially other scripts) text that
      includes hyphens can access the script-specific variants matched to
      the underlying text.
      
      Bug: 22824219
      Change-Id: I6ec1043037f89cad50ca99ac24c473395546bcdf
      90a09c3f
  16. 22 7月, 2015 2 次提交
  17. 21 7月, 2015 1 次提交
    • R
      Consistently apply break opportunities in text spans · e9ec9a1d
      Raph Levien 提交于
      It's essential not to apply a break opportunity within a replacement
      span, otherwise things can happen such as displaying the span twice.
      The old code tested this case based on zero-width characters.
      However, this test was both imprecise, and also in some cases read
      uninitialized values from the mCharWidths array, which in turn led
      to inconsistent line breaking of the same text.
      
      This patch applies all line break opportunities (as identified by
      ICU) within text (as opposed to replacement spans), and also applies
      break opportunities at the beginning and end of replacement spans,
      but avoids breaks within a replacement span.
      
      Bug: 20138621
      Change-Id: I36baeb44d6808356649e1bb69ca57f093fc8c723
      e9ec9a1d
  18. 16 7月, 2015 2 次提交
    • R
      Use ICU to lowercase words to hyphenate. · cdd19dad
      Roozbeh Pournader 提交于
      Previously, the standard C tolower() function was used, which
      didn't support any characters beyond the basic ASCII letters.
      
      Bug: 22506121
      Change-Id: Ibb81121caa29be44fbb59aa98891e9faafc57592
      cdd19dad
    • R
      Add missing hyphen-like characters. · daf62d0e
      Roozbeh Pournader 提交于
      This adds various hyphen-like characters missed in the previous
      patch, that should disallow automatic hyphenation of words containing
      them.
      
      Bug: 22484266
      Change-Id: Ie972cb50384dbe0aa1ab5ec50286b75f9877953a
      daf62d0e
  19. 15 7月, 2015 1 次提交
    • R
      Avoid re-hyphenating already-hyphenated phrases. · baf6d0a4
      Roozbeh Pournader 提交于
      Previously, automatic hyphenation blindly took almost every line
      breaking opportunity as a word break, so words like "low-budget" were
      treated as two separate words, "low-", and "budget", each
      automatically hyphenated.
      
      This patch makes sure the subwords in already-hyphenated phrases are
      not passed to the automatic hyphenator, while keeping the possibility
      of a potential line break where a hyphen already exists.
      
      Bug: 22484266
      Bug: 22287425
      Change-Id: Ie46dbdd70e993d64a9b9cf44b4ae93b21459dbc2
      baf6d0a4
  20. 10 7月, 2015 1 次提交
    • R
      Add HyphenEdit to layout cache · 6c4d167b
      Raph Levien 提交于
      We bypass the word layout cache for "complex" cases, which includes
      things like OpenType features. We were counting a hyphen edit as such
      a case, but the problem is that we measure a _lot_ of these when
      doing layout with hyphenation.
      
      This patch adds plumbing for hyphen edits to the layout cache, so
      that word fragments with hyphens can be cached as well.
      
      Bug: 22378829
      
      Change-Id: Idba4df4faa14f48a5faccc8a7a7955a36c19ef27
      6c4d167b
  21. 01 7月, 2015 1 次提交
    • R
      Allow clusters to start with zero-width characters · 3e0fc64d
      Raph Levien 提交于
      The logic in getRunAdvance() assumed that any zero-width character was
      part of the preceding cluster, which is valid most of the time. However,
      characters such as ZWNBSP (U+FEFF) renders as a zero width glyph
      and is also a grapheme cluster boundary. This patch adds a clause to
      handle that case.
      
      Bug: 22121742
      Change-Id: Iad79a7d988bded1ef05f0fd7905d20669ea22051
      3e0fc64d
  22. 30 6月, 2015 1 次提交
    • R
      Fix logspam and incorrect cluster offset · 91425f05
      Raph Levien 提交于
      An incorrect cluster offset calculation was causing a lot of log
      messages to appear. Separately, a confusion between #if and #ifdef was
      causing unintended logging of line breaks. This patch fixes both.
      
      Bug: 22178333
      Change-Id: I2b3673ed66c784f5082fd127a8dc10bd3df6ed79
      91425f05
  23. 27 6月, 2015 1 次提交
    • R
      Disable letterspacing for connected scripts · e8721b2d
      Raph Levien 提交于
      The appearance of letterspacing with scripts with cursive connections
      is poor, so we simply disable letterspacing for those scripts. There
      may be some cases where some form of letterspacing is desirable, but
      this gives the highest likelihood that the final result will be good
      without requiring additional work from clients.
      
      Bug: 21935803
      Change-Id: Ie25266249ac3a2605aa89ef5132e8edbe3a06d35
      e8721b2d
  24. 25 6月, 2015 1 次提交
    • R
      Separate additional penalty for last line with hyphen · a6f8bf6f
      Raph Levien 提交于
      A recent change added a penalty for a hyphen at the last line break,
      which is visually undesirable. However, the penalty was assessed to
      "widthScore", which broke the assumption (used for another
      optimization) that widthScore increases monotonically. This patch
      separates the penalty into a different parameter, restoring the
      validity of the monotonicity assumption.
      
      Bug: 22066119
      Change-Id: I6a47a350ef3ceee2f00ee430d6954d0c307227f0
      a6f8bf6f
  25. 13 6月, 2015 2 次提交