1. 06 6月, 2014 1 次提交
    • R
      Make paint flags consistently uint32_t · 3164d1a7
      Raph Levien 提交于
      Change internal plumbing of paint flags (including CssParse) to uint32_t
      consistently, to match the type used in the client. This will probably
      prevent compiler warnings. Also renames "float" to "double" to avoid
      confusion about precision.
      
      Change-Id: I80374712c4067ca9e7711cc2d4ec33c440ab9c7c
      3164d1a7
  2. 04 6月, 2014 1 次提交
    • R
      Support for scaleX and skewX · 448b0fd7
      Raph Levien 提交于
      Adds pseudo-css properties for scaleX and skewX, as well as paint flags,
      and plumb them through to the MinikinPaint abstraction and to Harfbuzz,
      to support nontrivial scale and stretch of text.
      
      This is the Minikin part of the fix for bug 15186705 "Usability of the
      suggestion strip in recent OTA's is severely reduced"
      
      Change-Id: Ifa60355e086e4691ff92c5d50d84eb7cea0fea95
      448b0fd7
  3. 27 5月, 2014 1 次提交
    • R
      Caching for layouts and harfbuzz faces · 4d4e6bc8
      Raph Levien 提交于
      This patch adds caching for both layouts and for HarfBuzz face objects.
      The granularity of the cache for layouts is words, so it splits the
      input string at word boundaries (using a heuristic). There are is also
      some refactoring to reduce the amount of allocation and copying, and
      movement towards properly supporting contexts.
      
      The size of the caches is a fixed number of entries; thus, it is
      possible to consume a large amount of memory by filling the cache with
      lots of large strings. This should be refined towards a scheme that
      bounds the total memory used by the cache.
      
      This patch fixes bug 15237293 "Regression: Measure performance is
      significantly slower with minikin".
      
      Change-Id: Ie8176857e2d78656ce5479a7c04969819ef2718d
      4d4e6bc8
  4. 13 5月, 2014 2 次提交
    • R
      Better refcounting and locking · b80c1f19
      Raph Levien 提交于
      All major externally accessible objects (especially FontFamily and
      FontCollection) are now reference counted. In addition, there is a
      global lock intended to make operations thread-safe.
      
      WIP notice: in this version of the patch, not all external API entry
      points are protected by the lock. That should be fixed.
      
      Change-Id: I14106196e99eb101e8bf1bcb4b81359759d2086c
      b80c1f19
    • R
      A basket of features: itemization, bounds, refcount · ecc2d34a
      Raph Levien 提交于
      This patch improves script run itemization and also exposes metrics
      and bounds for layouts. In addition, there is a fair amount of internal
      cleanup, including ref counting, and making the MinikinFont abstraction
      strong enough to support both FreeType and Skia implementations. There
      is also a sample implementation using Skia, in the sample directory.
      
      As part of its functionality, his patch measures the bounds of the
      layout and gives access through Layout::GetBounds().  The corresponding
      method is not implemented in the FreeType-only implementation of
      MinikinFont, so that will probably have to be fixed.
      
      Change-Id: Ib1a3fe9d7c90519ac651fb4aa957848e4bb758ec
      ecc2d34a
  5. 15 6月, 2013 2 次提交
    • R
      Fix build breakage · f660ef9e
      Raph Levien 提交于
      The MinikinFont class was missing a destructor. The build error was
      not caught because incremental builds didn't see fit to relink after
      I deleted one of the source files (that contained the impl of this
      destructor).
      
      Change-Id: Ic72d56fe28316cd2b2f808910e34ca6f177a1220
      f660ef9e
    • R
      Introduce MinikinFont abstraction · bcc3dc5a
      Raph Levien 提交于
      This commit removes the direct dependency on FreeType and replaces it
      with a MinikinFont abstraction, which is designed to support both
      FreeType and Skia fonts (and possibly others in the future).
      
      Also adds a "total advance" to the Layout, with an API for retrieving
      it.
      
      Change-Id: If20f92db9a43fd15b0fe9794b761ba00fb21338c
      bcc3dc5a