40beb7744a61248de82a6077996c83c14e0122c2 |
|
07-Apr-2015 |
Raph Levien <raph@google.com> |
Add functions for measuring cursor positioning New functions for computing the correspondence between cursor position and advance, respecting grapheme boundaries. Change-Id: I620378d5f64cd74300cd43db522adeb555825dff
/frameworks/minikin/libs/minikin/Android.mk
|
5cdad92c300a65cab89b172e952186f0c5870657 |
|
30-Mar-2015 |
Raph Levien <raph@google.com> |
Revert "Fix build: Revert "Add hyphenation to line breaking"" This reverts commit 0b25d5ac85533f64764a0d53d5e5d33b46b715fa.
/frameworks/minikin/libs/minikin/Android.mk
|
0b25d5ac85533f64764a0d53d5e5d33b46b715fa |
|
30-Mar-2015 |
Ed Heyl <edheyl@google.com> |
Fix build: Revert "Add hyphenation to line breaking" This reverts commit daf6a6bdbf2ff1f66496d6200cb253e2f50759d5. Change-Id: I3fed65046274d3aeb748f0730585ab89927f5741
/frameworks/minikin/libs/minikin/Android.mk
|
daf6a6bdbf2ff1f66496d6200cb253e2f50759d5 |
|
19-Mar-2015 |
Raph Levien <raph@google.com> |
Add hyphenation to line breaking This patch adds hyphenation using the Liang hyphenation algorithm, similar to TeX. It also improves the optimized line breaker so that it works correctly and efficiently even when the line width is not constant (there is a specialization for constant width, which is probably worthwhile, but performance TODOs remain). Still to be done: * hyphenator has many shortcuts, only tested with English * interaction between punctuation and hyphenation is problematic Change-Id: I2d94a1668ebc536398b7c43fcf486333eeb7c6aa
/frameworks/minikin/libs/minikin/Android.mk
|
01f526614431e3a0a6e1a48039e00b8a9b7d6fbf |
|
14-Mar-2015 |
Raph Levien <raph@google.com> |
Add LineBreaker to Minikin 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
/frameworks/minikin/libs/minikin/Android.mk
|
5870d4f0d46f185568a2d2ea45afe48ae999b223 |
|
05-Jan-2015 |
Narayan Kamath <narayan@google.com> |
Remove hardcoded ICU include paths. ICU exports them using LOCAL_EXPORT_C_INCLUDE_DIRS. bug: 18581021 Change-Id: Ia57b3b4d231966203274b0e7e7b850beb1bd11c0
/frameworks/minikin/libs/minikin/Android.mk
|
69d4fba2f2b7bb2c248cc0e78cf277a6e44665f8 |
|
12-Nov-2014 |
Dan Albert <danalbert@google.com> |
Move frameworks/minikin over to libc++. Bug: 15193147 Change-Id: I5e15c95415c39515340e2663acd5fd26666db720
/frameworks/minikin/libs/minikin/Android.mk
|
c924dd126db5d029af407ae6dd1a41c3652a6a64 |
|
29-Jul-2014 |
Behdad Esfahbod <behdad@google.com> |
Remove CSS string doLayout entrypoint and supporting code All usage is ported to the new doLayout() API now. Bug: 16651112 Change-Id: I2c959138a69853b5e30098889d771fe5f4cfaa66
/frameworks/minikin/libs/minikin/Android.mk
|
fbe7ebf529b3d429ae9f153b7df3529554bfc64d |
|
10-Jul-2014 |
Elliott Hughes <enh@google.com> |
Switch minikin to the new icu. Change-Id: I29a59edfe6102257c9f308aac1b4348ef7a18db7
/frameworks/minikin/libs/minikin/Android.mk
|
3d28a3fcebfed4744d1ef0307a8bdc8fc01e364c |
|
16-Jun-2014 |
Raph Levien <raph@google.com> |
Implement grapheme cluster breaking This patch includes an implementation of grapheme cluster breaking, which is especially useful for repositioning the cursor for left and right arrow key presses. The implementation is closely based on Unicode TR29, and uses the ICU grapheme cluster break property, but is tailored to more closely match the existing implementation and expected behavior. Part of a fix for b/15653110 Improve behavior of arrow keys in EditText Change-Id: I8eb742f77039c9ab7b2838285018cf8a8fc88343
/frameworks/minikin/libs/minikin/Android.mk
|
4d4e6bc8118d15542f1f2a9218f0f7a91a29474f |
|
21-May-2014 |
Raph Levien <raph@google.com> |
Caching for layouts and harfbuzz faces 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
/frameworks/minikin/libs/minikin/Android.mk
|
86fa46c5ebb0d2c3319e08f4fbf487d8c2abbbfc |
|
19-May-2014 |
Raph Levien <raph@google.com> |
Do BiDi algorithm for text layout This is a fix for bug 15130102 "Language name for Hebrew displayed the wrong way around on keyboard". This patch extends the previous BiDi support (when the direction for the entire string was given by the caller) to run the BiDi algorithm (provided by ICU) over the string to break it into BiDi runs. Thus, it handles mixed LTR and RTL strings in a single layout, and also respects heuristics for inferring the paragraph direction from the string. Change-Id: Ia4b869de3c139c5a7d16b8ce7766870b98a815ea (cherry picked from commit 4b3a941128454e55893d65433a835e78a9e9781d)
/frameworks/minikin/libs/minikin/Android.mk
|
b80c1f19c58b927820a8a24bf2218e5645724608 |
|
06-May-2014 |
Raph Levien <raph@google.com> |
Better refcounting and locking 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
/frameworks/minikin/libs/minikin/Android.mk
|
ecc2d34ac23a497988f21e5f415b53c007b9d8c5 |
|
15-Jul-2013 |
Raph Levien <raph@google.com> |
A basket of features: itemization, bounds, refcount 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
/frameworks/minikin/libs/minikin/Android.mk
|
1686c1d7a2562360bfcca52e9c53ebbcd1bed00c |
|
28-Jun-2013 |
Victoria Lease <violets@google.com> |
Use shared ft2 lib, deal with libpng/zlib deps Bug: 9603326 Change-Id: I7df1f68fa3a44b37b1b279387f4ddfe942928bb0
/frameworks/minikin/libs/minikin/Android.mk
|
bcc3dc5a2591a95a57e379e27cbad69c18e91e67 |
|
23-May-2013 |
Raph Levien <raph@google.com> |
Introduce MinikinFont abstraction 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
/frameworks/minikin/libs/minikin/Android.mk
|
9cc9bbe1461f359f0b27c5e7645c17dda001ab1d |
|
24-Apr-2013 |
Raph Levien <raph@google.com> |
Initial commit of Minikin library 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
/frameworks/minikin/libs/minikin/Android.mk
|