- 09 12月, 2015 2 次提交
-
-
由 Raph Levien 提交于
am: 998293f9 * commit '998293f9': Avoid integer overflows in parsing fonts
-
由 Raph Levien 提交于
am: 6299a6ba * commit '6299a6ba': Avoid integer overflows in parsing fonts
-
- 08 12月, 2015 1 次提交
-
-
由 Raph Levien 提交于
A malformed TTF can cause size calculations to overflow. This patch checks the maximum reasonable value so that the total size fits in 32 bits. It also adds some explicit casting to avoid possible technical undefined behavior when parsing sized unsigned values. Bug: 25645298 Change-Id: Id4716132041a6f4f1fbb73ec4e445391cf7d9616 (cherry picked from commit 183c9ec2)
-
- 30 10月, 2014 1 次提交
-
-
由 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
-
- 24 10月, 2014 1 次提交
-
-
由 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
-
- 23 9月, 2014 1 次提交
-
-
由 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
-
- 04 9月, 2014 1 次提交
-
-
由 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
-
- 27 8月, 2014 1 次提交
-
-
由 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
-
- 22 8月, 2014 3 次提交
-
-
由 Behdad Esfahbod 提交于
This reduces another allocation (last one?) we were doing when fulfilling shaping requests from the cache. Bug: 17111260 Change-Id: Ieb8ae1ccfcaacedb257e1e9263777f10623aaf98
-
由 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
-
由 Behdad Esfahbod 提交于
Avoid copying the string for cache lookup. Bug: 17111260 Change-Id: Ic220bfc991fc6b3dada197304aabdf72a8941bd7
-
- 09 8月, 2014 1 次提交
-
-
由 Behdad Esfahbod 提交于
The U+20E3 COMBINING KEYCAP is used in our fonts to generate an emoji rendering of ASCII numbers and letters through GSUB. For that to work we need to choose the same (Emoji) font for the character coming *before* the COMBINING KEYCAP character. This is a special-case of a broader need to choose fonts per grapheme cluster as opposed to per character, but for now, special-case U+20E3. Bug: 7557244 Change-Id: I958e5a01068df8495bbb9bc3b9ed871cea1838b6
-
- 31 7月, 2014 1 次提交
-
-
由 Behdad Esfahbod 提交于
Bug: 15246510 Change-Id: I544915d29b2be4fb9f82f1989188a3a918c50fbc
-
- 30 7月, 2014 1 次提交
-
-
由 Behdad Esfahbod 提交于
Was broken after recent CSS removal. Change-Id: I160fbc73286b21336d6f3943ff92d7d150dff74b
-
- 28 7月, 2014 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 30 7月, 2014 3 次提交
-
-
由 Behdad Esfahbod 提交于
We are stack-allocating MinikinPaint objects in Minikin clients, and without a constructor adding new members to the struct cannot be done without updating all clients (only one right now!). Change-Id: I4170f16498bb6b07cb795495011aca58087ed0bd
-
由 Behdad Esfahbod 提交于
All usage is ported to the new doLayout() API now. Bug: 16651112 Change-Id: I2c959138a69853b5e30098889d771fe5f4cfaa66
-
由 Behdad Esfahbod 提交于
New API removes CSS string and directly takes needed objects. Bug: 16651112 Change-Id: Ie5f7c2ab05be6cbd77cae0a5fd6bb453771ada59
-
- 24 7月, 2014 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 26 7月, 2014 1 次提交
-
-
由 Behdad Esfahbod 提交于
Replaces invalid unicode with replacement character U+FFFD and always makes forward progress. Bug: 15849380 Change-Id: Ic59ef6c64b0f5c4450bcae61597adcc269d6e7c5
-
- 25 7月, 2014 2 次提交
-
-
由 Behdad Esfahbod 提交于
Extract language from FontStyle during shaping. Don't attach CSS to LayoutContext. Change-Id: Ie621d3415410178d0d15fa7b810eb8e412342ab6
-
由 Behdad Esfahbod 提交于
It has been unused outside minikin. Change-Id: Iaa2237767d81c77f90d0264e633375e601dd72f1
-
- 23 7月, 2014 1 次提交
-
-
由 Behdad Esfahbod 提交于
Bug: 15594400 Change-Id: Ied94d7674be4097b0f44c9b0770d3294dc6433c1
-
- 11 7月, 2014 4 次提交
-
-
由 Behdad Esfahbod 提交于
Bug: 15849380 Change-Id: Ib5285e57c5806bd399600fadd56e8bc809da323f
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
Change-Id: I50a112739847fa826088854f6d172a188ff4cfb3
-
由 Elliott Hughes 提交于
Change-Id: I29a59edfe6102257c9f308aac1b4348ef7a18db7
-
- 10 7月, 2014 1 次提交
-
-
由 Raph Levien 提交于
When a run has no cmap coverage in any font, use the base font. Most of the time, this will cause rendering of the .notdef glyph, which is preferable to displaying nothing. In some cases, Harfbuzz may be able to decompose the characters (not in the cmap) to ones that are, in which case we'll render those, as long as they're in the base font. Bug: 6629748 Bug: 15816880 Change-Id: Ibb1b9242c83626e0c7db363ad65ce44a967a005e
-
- 07 7月, 2014 1 次提交
-
-
由 Mike Reed 提交于
Change-Id: Iffad3ef724b565d5d8fed17722630fd74cda9234
-
- 27 6月, 2014 1 次提交
-
-
由 Raph Levien 提交于
Proper Japanese layout requires sophisticated rules for spacing punctuation, not just turning on the "palt" (proportional alternate) feature. Until we can support the whole set, roll back palt. Change-Id: If2359c529b70b1dd45dddc00e5f4aa1c91f8b0e9
-
- 26 6月, 2014 1 次提交
-
-
由 Raph Levien 提交于
Expose a method to purge caches used for TextLayout, useful for low memory conditions. Change-Id: I92f41afe987b7be4af5ca0a0c50fb51be35a2758
-
- 20 6月, 2014 2 次提交
-
-
由 Raph Levien 提交于
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
-
由 Raph Levien 提交于
Fixes b/15734816 In the text "Wi-Fi", "-Fi" appears bolder than "Wi" The problem was caused by "stickiness" in choosing fonts, where layout would prefer using a font used for preceding characters as long as it mapped the following characters in a run, in favor of the "best match" rules. This patch adds a whitelist for making the stickiness more conservative, only applying it for characters necessary for correct shaping (ZWJ and ZWNJ in particular) and basic punctuation, where it is desirable to match the style of the preceding text. Change-Id: I1cf116879f074a5a71c351846707bfdd07b0d320
-
- 13 6月, 2014 4 次提交
-
-
由 Raph Levien 提交于
* commit 'e68467e9': Tighten requirements for fake bold
-
由 Raph Levien 提交于
* commit '15651697': Support for fake bold and italics
-
由 Raph Levien 提交于
* commit 'b1eae5ea': Add baseFont method to FontCollection
-
由 Raph Levien 提交于
The simple predicate for fake bold (2 or more grades darker than requested) was applying it to thin (100 weight) when normal was requested. This patch tightens the predicate to also require that the requested weight be in the bold range. Fix for bug 15588352 "sans-serif-thin doesn't work on lockscreen" Change-Id: Id9988bd149a9c8a7c943e3b221f7fb4b37fb6ddb (cherry picked from commit 9f9f3b1e)
-
- 12 6月, 2014 1 次提交
-
-
由 Raph Levien 提交于
-
- 13 6月, 2014 1 次提交
-
-
由 Raph Levien 提交于
The simple predicate for fake bold (2 or more grades darker than requested) was applying it to thin (100 weight) when normal was requested. This patch tightens the predicate to also require that the requested weight be in the bold range. Fix for bug 15588352 "sans-serif-thin doesn't work on lockscreen" Change-Id: Id9988bd149a9c8a7c943e3b221f7fb4b37fb6ddb
-
- 12 6月, 2014 1 次提交
-
-
由 Raph Levien 提交于
Fix for bug 15570313 "Missing text on nonexistent font file" This patch makes sure that the lastChar and mInstances arrays are in sync with each other even when a FontFamily being added has no valid fonts in it. Previously, when they got out of sync, unicode coverage calculation would be wrong, resulting in missing text. Change-Id: I69c727ef69e2c61e2b2d6b81d5a28c806327f865
-