1. 23 2月, 2016 1 次提交
  2. 20 2月, 2016 1 次提交
  3. 19 2月, 2016 3 次提交
    • R
      Suppress linebreaks in emoji ZWJ sequences · d3f45892
      Raph Levien 提交于
      Due to the way emoji ZWJ sequences are defined, the ICU line breaking
      algorithm determines that there are valid line breaks inside the
      sequence. This patch suppresses these line breaks.
      
      This is an adaptation of I225ebebc0f4186e4b8f48fee399c4a62b3f0218a
      into the nyc-dev branch.
      
      Bug: 25433289
      Change-Id: I84b50b1e6ef13d436965eab389659d02a30d100f
      d3f45892
    • K
      Optimize: Use measureText instead of doLayout. · ea408fc1
      Keisuke Kuroyanagi 提交于
      With this CL, measureText is used for getRunAdvance,
      getOffsetForAdvance and line breaking.
      
      Bug: 24505153
      Change-Id: Ib699f6b1391b46537736fc274cdb41686586b550
      ea408fc1
    • R
      Disable hyphenation when word overlaps style boundary · aa736d00
      Raph Levien 提交于
      In cases when a word (as defined by the ICU break iterator) overlaps a
      style boundary, the returned wordStart can be extend before the range
      currently being measured for layout. When we try to hyphenate the
      resulting substrings, we get a negative range, which crashes. This
      patch disables hyphenation in this case.
      
      Bug: 27237112
      Change-Id: I76d04b39dd3b4d6d267aaaf4bebc9ab361891646
      aa736d00
  4. 18 2月, 2016 15 次提交
  5. 17 2月, 2016 2 次提交
    • S
      Improve Paint.measureText and Paint.hasGlyph for variation sequences. · 6b1c227d
      Seigo Nonaka 提交于
      Before this patch, the font fallback chain iterated all installed font
      families if a variation selector was specified.
      
      This CL narrows down the range of iteration.
      To decide the font family for the variation sequence, we need to search
      for both the variation sequence and its base code point.
      The new range of the iteration is a union of them.
      
      With this change, the running time of Paint.hasGlyph for the variation
      sequence improves 50% and the running time of Paint.measureText for the
      variation sequence improves 40% for the large text case on Nexus 6
      userdebug.
      
      Bug: 26784699
      Bug: 11750374
      
      Change-Id: Iced1349e3ca750821d8882c551551f65bb569794
      6b1c227d
    • R
      Refine hyphenation around punctuation · 57b6dae9
      Raph Levien 提交于
      Implement a WordBreaker that defines our concept of valid word
      boundaries, customizing the ICU behavior. Currently, we suppress line
      breaks at soft hyphens (these are handled specially). Also, the
      new WordBreaker class has methods that determine the start and end
      of the word (punctuation stripped) for the purpose of hyphenation.
      
      This patch, in its current form, doesn't handle email addresses and
      URLs specially, but the WordBreaker class is the correct place to do
      so. Also, special case handling of hyphens and dashes is still done
      in LineBreaker, but all of that should be moved to WordBreaker.
      
      Bug: 20126487
      Bug: 20566159
      Change-Id: I492cbad963f9b74a2915f010dad46bb91f97b2fe
      57b6dae9
  6. 13 2月, 2016 2 次提交
  7. 12 2月, 2016 1 次提交
  8. 08 2月, 2016 1 次提交
  9. 04 2月, 2016 1 次提交
    • S
      Improve Paint.hasGlyph performance by caching hb_font_t · 89e80237
      Seigo Nonaka 提交于
      It turned out that hb_font_t creation is not a lightweight operation.
      Especially, Paint.hasGlyph creates hb_font_t for all existing fonts
      every time. To improve the performance, cache hb_font_t instead
      of hb_face_t.
      
      Note that to calculate horizontal advance, MinikinPaint needs to be
      associated with hb_font_t by calling hb_font_set_funcs. With this patch,
      hb_font_set_funcs may be called multiple times for the same hb_font_t
      object. However this is not an issue since MinikinPaint is unique
      during layout.
      
      Bug: 26784699
      
      Change-Id: I516498ae9f0127d700fc9829327e9789845a1416
      89e80237
  10. 26 1月, 2016 3 次提交
  11. 21 1月, 2016 1 次提交
  12. 16 1月, 2016 8 次提交
  13. 15 1月, 2016 1 次提交
    • S
      Introduce multiple language based font fallback. · 6f9966ea
      Seigo Nonaka 提交于
      The motivation of this CL is enhance the font fallback score design
      to support multiple language font fallback.
      
      This CL contains following changes:
      - Break language based font score into two: script-based score and
        primary-language-based score.
      - The primary-language-based score is 0 if the script-based score is 0.
        If the script-based score is not 0 and the primary language is the
        as same as the requested one, the font gets an extra score of 1.
      - The language score gets a higher multiplier for languages higher in
        the locale list.
      
      Bug: 25122318
      Bug: 26168983
      Change-Id: Ib999997a88e6977e341f4c325e2a1b41a59db2d5
      6f9966ea