Support extra linespacing based on fallback fonts
* Increase the ascent and descent of individual lines in StaticLayout as needed, if any fallback fonts that end up getting used call for it. For backward compatibility, this is hidden behind a builder flag. * Document in Paint.java that the returned parameters are only for the default font, and a layout may need more space based on fallbacks used. Also update for changes in minikin API: * MinikinFont now requires a method for getting vertical extents (ascent, descent, and line gap). * minikin API now allows asking for vertical extents of laid out text. * minikin API's LineBreaker now returns ascents and descents for each line. Finally, added performances test for creating a StaticLayout. Follwing are the numbers on a marlin with a stable clock before and after this CL. For fixed text almost always hitting the cache: Before: mean=260684 median=260188 min=258532 standardDeviation=1897 After: mean=262432 median=261509 min=260429 standardDeviation=2185 For random text almost never hitting the cache: Before: mean=5971827 median=5991126 min=5886871 standardDeviation=83724 After: mean=6337093 median=6317010 min=6311222 standardDeviation=40213 Bug: 28963299 Bug: 29063863 Bug: 32057121 Bug: 37756858 Test: bit FrameworksCoreTests:android.text. Test: bit CtsTextTestCases:* Change-Id: I482a98ff8f472e8bab4f0ba9d1d7b368858038ff
Loading
Please register or sign in to comment