1. 02 6月, 2015 1 次提交
    • R
      Disable hyphenation for unreasonably long words · a0196658
      Raph Levien 提交于
      Very long words cause O(n^2) behavior. These are unlikely to happen in
      real text, but do happen with synthetic strings, so in those cases we
      just disable hyphenation.
      
      Bug: 20790394
      Change-Id: Idf957dd40b24efe1476f619f17093a48b5bc56f7
      a0196658
  2. 13 5月, 2015 1 次提交
    • R
      Support hyphenation frequency in Minikin. · 0dc07c0b
      Roozbeh Pournader 提交于
      Three hyphenation frequencies are now supported:
      
      kHyphenationFrequency_None, which turns off both automatic
      hyphenation and soft hyphens.
      
      kHyphenationFrequency_Normal, which has aconservative amount of
      hyphenation useful as a conservative default.
      
      kHyphenationFrequency_Full, which has a typographic-quality amount of
      hyphenation useful for running text and tight screens.
      
      Bug: 21038249
      Change-Id: I2800f718c887c9389a1a059d7ec07d7fa2ca1dee
      0dc07c0b
  3. 28 4月, 2015 1 次提交
    • J
      Move Bitmap to a different namespace · 8920e817
      John Reck 提交于
      namespace naming collision. Move minikin's
      Bitmap out of android:: and into minikin::
      
      Change-Id: I5ae3925f81b848dc79576429ab55243b96f7fed2
      8920e817
  4. 23 4月, 2015 1 次提交
    • R
      Don't include trailing newline in width for line breaking · 68ae337a
      Raph Levien 提交于
      In a paragraph with a trailing newline, the width of the newline
      character was included in the line width for breaking purposes,
      basically as if it were a non-breaking space. This caused a
      discrepancy, where Layout.getDesiredWidth() suggested that the text
      would fit in a single line, but StaticLayout would break it because of
      the added width of the newline character.
      
      The proposed fix is simply to consider newline to be a space that
      disappears at the end of a line.
      
      Bug: 20152308
      Change-Id: I539574c5b8ea892c8ed6aca6c59e90ccdf74a680
      68ae337a
  5. 16 4月, 2015 3 次提交
    • R
      Add functions for measuring cursor positioning · 40beb774
      Raph Levien 提交于
      New functions for computing the correspondence between cursor
      position and advance, respecting grapheme boundaries.
      
      Change-Id: I620378d5f64cd74300cd43db522adeb555825dff
      40beb774
    • R
      Rename "margins" to "indents" · bb86b433
      Raph Levien 提交于
      The name "margin" conflicts with another meaning, so we're making the
      name in the public api "idents" and the code consistent in naming.
      
      Change-Id: I9170116b4d972e4b25f0f319e78376310288eb41
      bb86b433
    • R
      Add margins array to line widths object · dc7bc6e3
      Raph Levien 提交于
      In order to support layout in non-rectangular regions, the LineWidths
      object needs to accept an arbitrary array of margins. This is
      implemented in addition to the existing firstWidthLineCount/restWidth
      mechanism for convenience, though using only arrays would have the
      same expressive power.
      
      Bug: 20182243
      Change-Id: Iea96bca1a92012314ac27e617c67f306c1f1b2f2
      dc7bc6e3
  6. 31 3月, 2015 3 次提交
  7. 27 3月, 2015 1 次提交
    • R
      Add LineBreaker to Minikin · 01f52661
      Raph Levien 提交于
      This patch adds a LineBreaker class to Minikin, which will be used for
      computing line breaks in StaticLayout. The version in this patch
      contains basically the same functionality that existed before, but
      hopefully better performance and an interface that's suitable for more
      sophisticated paragraph layout.
      
      Note that this version contains a high quality strategy, which mostly
      works but doesn't respect varying line width.
      
      Change-Id: I02485d58b1e52856296a72cdd4efd963bc572933
      01f52661
  8. 13 3月, 2015 1 次提交
    • R
      HyphenEdit in support of hyphenation · d692d6a9
      Raph Levien 提交于
      Adds a "HyphenEdit" field to the Minikin Paint object, which represents
      an edit to the text to add a hyphen (and, in the future, other edits to
      support nonstandard hyphenation).
      
      Change-Id: Ib4ee690b0fe2137e1d1e2c9251e5526b274ec3a7
      d692d6a9
  9. 26 2月, 2015 1 次提交
    • R
      Disable HarfBuzz's fallback to compatibility decompositions · 0bbff3a9
      Roozbeh Pournader 提交于
      Previously, HarfBuzz's default fallback to compatibility
      decompositions resulted in Mathematical Alphanumeric Symbols getting
      rendered as normal letters and digits when there was no font
      available to render them. This patch disables that fallback, to
      ensure they are displayed as tofus.
      
      Based on a patch by Behdad Esfahbod.
      
      Bug: 19202569
      Change-Id: I357f172302448d4ab0b24efc86119f1977b5996b
      0bbff3a9
  10. 06 1月, 2015 2 次提交
  11. 05 1月, 2015 1 次提交
  12. 05 12月, 2014 3 次提交
  13. 04 12月, 2014 3 次提交
  14. 13 11月, 2014 2 次提交
  15. 12 11月, 2014 1 次提交
  16. 31 10月, 2014 1 次提交
  17. 30 10月, 2014 1 次提交
    • R
      Move coverage bitmap from FontCollection to FontFamily · 253320d2
      Raph Levien 提交于
      This will significantly reduce memory usage and also speed the creation
      of new font families. In particular, the coverage bitmaps for the fonts
      in the fallback stack will be computed once in the Zygote, rather than
      separately in each app process.
      
      Bug: 17756900
      Change-Id: I66f5706bddd4658d78fe5b709f7251ca9d2ff4f8
      253320d2
  18. 24 10月, 2014 2 次提交
    • R
      am 5f11abd3: Silently ignore invalid rangeOffset values · 168d3ef0
      Raph Levien 提交于
      * commit '5f11abd3':
        Silently ignore invalid rangeOffset values
      168d3ef0
    • R
      Silently ignore invalid rangeOffset values · 5f11abd3
      Raph Levien 提交于
      Some fonts contain a cmap segment for char 0xffff that contains an
      invalid rangeOffset. This was rejected by the existing code, which
      means the font is considered to have empty Unicode coverage. This patch
      just discards the invalid segment (consistent with OpenType Sanitizer),
      making the custom font display.
      
      Bug: 18106256
      Change-Id: Icc8616a3030f80e62db906332be64d434ae72ea2
      5f11abd3
  19. 24 9月, 2014 1 次提交
  20. 23 9月, 2014 1 次提交
    • R
      Fine-tune fake-bolding condition · d5804e39
      Raph Levien 提交于
      The old logic for fake bolding results in no fake bolding for a bold
      span on a light weight (300) because the target weight (600 in this
      case) didn't meet the condition. This patch fine-tunes the threshold
      to enable fake bolding for this.
      
      Bug: 17587185
      
      Change-Id: I04abd00a74240cbed79c417f81486aa2158b2806
      d5804e39
  21. 04 9月, 2014 2 次提交
    • R
      am 6740536e: Snap advance widths to integers · 9f00aaec
      Raph Levien 提交于
      * commit '6740536e':
        Snap advance widths to integers
      9f00aaec
    • R
      Snap advance widths to integers · 6740536e
      Raph Levien 提交于
      Fractional advance widths were causing subtle problems with text
      positioning when the same text was drawn with different spans in the
      hwui renderer. Quantizing the coordinates on layout (as opposed to
      waiting until the renderer draws the glyphs) solves the problem.
      
      This patch also fixes a discrepancy between x position and advance
      widths when letterspacing.
      
      Bug: 17347779
      Change-Id: Ia705944047408c2839d5ad078eefd6bbec446872
      6740536e
  22. 28 8月, 2014 1 次提交
  23. 27 8月, 2014 1 次提交
    • R
      Try Unicode decomposition for selecting fallback font · 997c799e
      Raph Levien 提交于
      This patch finds an appropriate fallback font in the case where no font
      directly maps the requested character, but a font does exist for the
      character's canonical decomposition. This yields correct rendering of
      compatibility characters such as U+FA70.
      
      Bug: 15816880
      Bug: 16856221
      Change-Id: Idff8ed6b942fec992a0815a32028b95af091d0ee
      997c799e
  24. 23 8月, 2014 1 次提交
  25. 22 8月, 2014 4 次提交
    • B
      Allocate font vector on stack · 56c7fb8c
      Behdad Esfahbod 提交于
      This reduces another allocation (last one?) we were doing when
      fulfilling shaping requests from the cache.
      
      Bug: 17111260
      Change-Id: Ieb8ae1ccfcaacedb257e1e9263777f10623aaf98
      56c7fb8c
    • B
      am 6da7796c: Fix Layout initialization in the skipCache path · c01aa1e3
      Behdad Esfahbod 提交于
      * commit '6da7796c':
        Fix Layout initialization in the skipCache path
      c01aa1e3
    • B
      Fix Layout initialization in the skipCache path · 6da7796c
      Behdad Esfahbod 提交于
      C++ local var initialization always tricks me.  Previously, Layout
      didn't have a constructor, which meant that defining it on the stack
      left mAdvance uninitialized.  This was not an issue when we were doing
      "new Layout()", since that invokes zero-initialization, but was an
      issue for the skipCache path that was allocating layout on stack by
      just "Layout l" instead of "Layout l = Layout()".  To avoid surprises,
      add a constructors that clears everything.
      
      Also adds reset() method to reset the layout for reuse.
      
      Change-Id: I3e02f00da9dd7d360abe13f63c310f6882292d0a
      6da7796c
    • B
      am 288c9159: Speed up cache lookup · 338de7c4
      Behdad Esfahbod 提交于
      * commit '288c9159':
        Speed up cache lookup
      338de7c4