summaryrefslogtreecommitdiffstats
path: root/libs
Commit message (Collapse)AuthorAgeFilesLines
* Fix incomplete refcounting and lockingRaph Levien2014-05-193-2/+18
| | | | | | | | These changes were supposed to be committed in the previous patch "Better refcounting and locking" but seem to have gotten lost in a rebase. It fixes a memory leak and some possible race conditions. Change-Id: I54ca1e37500ec49756fe317cc6d6d03da9911501
* Initial BiDi supportRaph Levien2014-05-142-2/+12
| | | | | | | | | | | | | | This patch contains a very basic implementation of BiDi. It respects the BiDi flags passed in as an explicit parameter (through the "-minikin-bidi" pseudo-CSS property), but doesn't yet do its own BiDi run detection. It also takes some shortcuts (marked as TODO) that are based on reasonable assumptions of the current font stack, but not universally valid. Even with these shortcomings, it seems to display RTL text from TextView correctly. Change-Id: I223433923c4eb06f90c0327e86bfbe0aff71d4f5
* Fix 64-bit cleanliness problemRaph Levien2014-05-141-2/+2
| | | | | | This patch fixes a problem where int and ssize_t were being conflated. Change-Id: I642a4ee1d59d81723034fdfe33bd8ca29a5dc322
* Fix build breakage in sample codeRaph Levien2014-05-141-0/+5
| | | | | | | This updates the Skia sample implementation to implement GetBounds, but the FreeType implementation is NYI (to be fixed in future commit). Change-Id: I24eda14d5fb11c2a1e81394ad8c779de3292dd79
* Better refcounting and lockingRaph Levien2014-05-127-8/+108
| | | | | | | | | | | 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
* A basket of features: itemization, bounds, refcountRaph Levien2014-05-124-30/+174
| | | | | | | | | | | | | | | 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
* Use canonical UniquePtr.h headerKenny Root2013-09-111-1/+1
| | | | Change-Id: Id50e9d6fe2f08d3121b168b45791a8e8fb045d7f
* Use shared ft2 lib, deal with libpng/zlib depsVictoria Lease2013-06-271-3/+3
| | | | | Bug: 9603326 Change-Id: I7df1f68fa3a44b37b1b279387f4ddfe942928bb0
* Introduce MinikinFont abstractionRaph Levien2013-06-145-61/+172
| | | | | | | | | | | 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
* Initial commit of Minikin libraryRaph Levien2013-04-258-0/+1083
This is the initial draft of Minikin, a library intended to perform text layout functions. This version does basic weight selection and font runs for scripts, and also has a simple renderer for drawing into bitmaps, but is lacking measurement, line breaking, and a number of other important features. It also lacks caching and other performance refinements. Change-Id: I789a2e47d11d71202dc84b4751b51a5e2cd9c451