1. 17 3月, 2016 1 次提交
  2. 04 3月, 2016 1 次提交
  3. 03 3月, 2016 1 次提交
  4. 27 2月, 2016 2 次提交
    • R
      Fix wrong conditions in isEmojiBase · 1934c2c3
      Raph Levien 提交于
      I computed ranges using low <= c || c <= high, should be &&.
      
      Bug: 26829153
      Change-Id: Ic1002d90b6a408a0b415f2d117d0e57adcbc2fa9
      1934c2c3
    • R
      Suppress line breaks in emoji + modifier · 56840e80
      Raph Levien 提交于
      An emoji base with an emoji modifier renders as a single glyph and
      thus should not be a line break. Current (Unicode 8) logic does
      indicate a line break, so we override the results of the ICU line
      break iterator. The code references a proposal to improve Unicode
      behavior; when that is adopted and we upgrade ICU accordingly, the
      special-case code should be deleted, but the tests can remain.
      
      Bug: 27343378
      Change-Id: I5de9c53e9a34c503816f9131e3d894e6f7a57d13
      56840e80
  5. 26 2月, 2016 1 次提交
    • S
      Use color font if skin tone is specified. · 0036da16
      Seigo Nonaka 提交于
      If skin tone is specified, the base emoji should be emoji style even
      if it is text presentation default emoji.
      
      This patch also removes wrong test case which expects default emoji
      presentation but it is controlled by family order in /etc/fonts.xml
      and there is no special logic for default presentation in minikin.
      Thus the default presentation unit test should not be in minikin.
      
      Bug: 27342346
      
      Change-Id: I74a2b2feab4d559535049e368cfd833063cce81c
      0036da16
  6. 25 2月, 2016 2 次提交
  7. 23 2月, 2016 1 次提交
  8. 20 2月, 2016 1 次提交
  9. 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
  10. 18 2月, 2016 15 次提交
  11. 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
  12. 13 2月, 2016 2 次提交
  13. 12 2月, 2016 1 次提交
  14. 08 2月, 2016 1 次提交
  15. 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
  16. 26 1月, 2016 3 次提交
  17. 21 1月, 2016 1 次提交
  18. 16 1月, 2016 1 次提交