- 20 10月, 2015 2 次提交
-
-
由 Seigo Nonaka 提交于
-
由 Seigo Nonaka 提交于
This CL contains the following changes: - Add a variation selector argument into getFamilyForChar to be able to select fonts which support variation selector. - In case no fonts support the codepoint and variation selector pair, add a fallback rule which selects font family with ignoring variation selector. - Change FontCollection::itemize to not change the font family immediately preceding a variation selector. - Introduce unit tests for variation selectors. With this CL, TextView can render the variation selectors correctly. Bug: 11256006 Change-Id: I22ce0e9eadc941f84e3a9b23462f194e51dd7180
-
- 19 10月, 2015 1 次提交
-
-
由 Seigo Nonaka 提交于
-
- 15 10月, 2015 7 次提交
-
-
由 Roozbeh Pournader 提交于
* commit 'e8264e06': Complete half-done cherry-picking of Android.mk. DO NOT MERGE
-
由 Seigo Nonaka 提交于
MinikinFont:GetGlyph is no longer used. No behavior chnages are expected with this CL. Change-Id: I13398503841ac06f930b04815017d4b33338efa1
-
由 Roozbeh Pournader 提交于
The previous commit, 6e2cccdc, was incompletely cherry-picked. This adds the missing parts. Bug: 24570591 Change-Id: I1097c60587fb8a88cfe6b8ffed5b1689d9bdd429
-
由 Raph Levien 提交于
* commit 'e5e7aa0e': Explicitly set utf-8 encoding for hyb file verification
-
由 Raph Levien 提交于
* commit '6e2cccdc': Binary format for hyphenation patterns
-
由 Raph Levien 提交于
Not all platforms default to UTF-8 encoding, so we set it explicitly. This patch should fix build breakages resulting from failed verification of binary hyb files for hyphenation patterns. Bug: 24570591 Change-Id: I65ac4536d3436586c2633e2b57554fc6ff16d3a8 (cherry picked from commit 138b93f0)
-
由 Raph Levien 提交于
In the current state, hyphenation in all languages than Sanskrit seems to work (case-folding edge cases). Thus, we just disable Sanskrit. Packed tries are implemented, but not the finite state machine (space/speed tradeoff). This commit contains a throw-away test app, which runs on the host. I think I want to replace it with unit tests, but I'm including it in the CL because it's useful during development. Bug: 21562869 Bug: 21826930 Bug: 23317038 Bug: 23317904 Bug: 24570591 Change-Id: I7479a565a4a062fa319651c2c14c0fa18c5ceaea (cherry picked from commit f0be43de)
-
- 12 10月, 2015 1 次提交
-
-
由 Seigo Nonaka 提交于
This CL introduces new method hasVariationSelector into FontFamily but it is not used in production code. So no behavior changes are expected. This CL contains the following changes: - Introduce hasVariationSelector which returns true if the corresponding font has a glyph for a code point and variation selector pair. - Introduce purgeHbFontCache since hb_face_t won't be released by keeping hb_font_t. - Introduce unit tests with self-built font. Change-Id: I659a6d03d9ec446b409e1fba2758452abb9f44fa
-
- 02 10月, 2015 1 次提交
-
-
由 Keisuke Kuroyanagi 提交于
-
- 01 10月, 2015 4 次提交
-
-
由 Raph Levien 提交于
-
由 Raph Levien 提交于
Not all platforms default to UTF-8 encoding, so we set it explicitly. This patch should fix build breakages resulting from failed verification of binary hyb files for hyphenation patterns. Change-Id: I65ac4536d3436586c2633e2b57554fc6ff16d3a8
-
由 Raph Levien 提交于
-
由 Raph Levien 提交于
In the current state, hyphenation in all languages than Sanskrit seems to work (case-folding edge cases). Thus, we just disable Sanskrit. Packed tries are implemented, but not the finite state machine (space/speed tradeoff). This commit contains a throw-away test app, which runs on the host. I think I want to replace it with unit tests, but I'm including it in the CL because it's useful during development. Bug: 21562869 Bug: 21826930 Bug: 23317038 Bug: 23317904 Change-Id: I7479a565a4a062fa319651c2c14c0fa18c5ceaea
-
- 30 9月, 2015 3 次提交
-
-
由 Seigo Nonaka 提交于
This CL does following things: - Extract hb_face_t object cache mechanism from Layout.cpp to be able to use it from other cpp file, especially from FontFamily.cpp. To address Bug 11256006 and Bug 17759267, need to touch hb_face_t from FontFamily. - Make hb_face_t cache mechanism thread-safe. - Add unit tests for HbFaceCache test cases. Bug: 11256006 Bug: 17759267 Change-Id: Ic183634ef34326793bd9a32167236611d0af34d6
-
由 Seigo Nonaka 提交于
-
由 Keisuke Kuroyanagi 提交于
This doesn't change current behavior. It's a preparation for the following CLs. Bug: 22408712 Change-Id: Ic018422254aa3904655f499194caad74f0c0fc5d
-
- 18 9月, 2015 1 次提交
-
-
由 Seigo Nonaka 提交于
Introduced tests depend on installed font list in running device. I verified these test passed on Nexus 5(hammerhead), Nexus 6(shamu) and Nexus 9(volantis). Bug: 11256006 Bug: 17759267 Change-Id: I6f806370e17f6c6d3dad8df0cb70bb475a827873
-
- 11 9月, 2015 1 次提交
-
-
由 Seigo Nonaka 提交于
Currently codepoint to glyph ID resolution is done through MinikinFont interface. To support variation selector, use HarfBuzz API instead of calling this interface since one of its implementation Skia doesn't support variation selector. On the other hand, we don't want to get glyph horizontal advance values by HarfBuzz since HarfBuzz doesn't return correct values when the hinting is active. Thus, use ot_font as a parent font and override glyph_h_advance/glyph_h_origin functions as is. With this change, MinikinFont::GetGlyph is no longer necessary but not removing in this CL for easy reverting since removing interface requires multi-repository commit. This is a base work of b/11256006 and this patch doesn't provide any user visible changes. Bug: 11256006 Change-Id: I061172c0b674bb649ce8bc013ffecf38708bdc41
-
- 29 8月, 2015 1 次提交
-
-
由 Seigo Nonaka 提交于
This CL does: 1. Move the getNextWordBreak/getPrevWordBreak function to a separate source file. 2. Adding "ForCache" suffix for function name for making clear these function is for layout cache. 3. Introduce unit tests for them. Bug: 11256006 Change-Id: I4138751a4570915f1a0d6c8921f89700f8ec7f35
-
- 20 8月, 2015 1 次提交
-
-
由 Raph Levien 提交于
Initial unit tests for Minikin functionality. Also fixes an incorrect Hangul case (uncovered in testing), and improves handling of broken UTF-16. Change-Id: I69b441d8e3b19ed06abcc56f13271abadf3d1010
-
- 12 8月, 2015 1 次提交
-
-
由 Roozbeh Pournader 提交于
Reported externally at https://code.google.com/p/android/issues/detail?id=167715. Bug: 21498085 Change-Id: I73f22de03b0151ce31a6b3070d051a2a701b33d2
-
- 08 8月, 2015 1 次提交
-
-
由 Roozbeh Pournader 提交于
Also handle the case of weird language code that we don't understand properly better, by treating them not equal to each other. Change-Id: Iaccb251fa38d700932f6eadac254d3d1fa09b3ea
-
- 07 8月, 2015 1 次提交
-
-
由 Roozbeh Pournader 提交于
This tailors Unicode's Grapheme_Cluster_Break property to better classify characters currently with the Control property value. Also adds support for rule GB9b of UAX #29, needed since there are now characters we are tailoring to be Prepend. The rule was previously ommited in our implementation because there was no characters in the Prepend class. Bug: 15653110 Change-Id: If10da88df0980f7d676c8c0b950eda5fb8dbe741
-
- 30 7月, 2015 1 次提交
-
-
由 Raph Levien 提交于
In computing scores for which fallback font to choose, a match of a variant given explicitly in the xml config file scores higher than a family with no explicit variant. One consequence is that U+2010 HYPHEN is chosen from the Naskh Arabic font in the fallback case. This patch scores families with no variants as a match (effectively the same as if the xml file specified both variants). Thus, it will choose the first matching font (Roboto), which is a better choice. This patch also revises the list of "sticky" characters to include various hyphens, so Arabic (and potentially other scripts) text that includes hyphens can access the script-specific variants matched to the underlying text. Bug: 22824219 Change-Id: I6ec1043037f89cad50ca99ac24c473395546bcdf
-
- 22 7月, 2015 2 次提交
-
-
由 Raph Levien 提交于
-
由 Raph Levien 提交于
This reverts commit 3e0fc64d. Bug: 22589743 Bug: 22121742 Change-Id: I7b482ffb8a0ee174ddc804aa890de45bdbd758e3
-
- 21 7月, 2015 1 次提交
-
-
由 Raph Levien 提交于
It's essential not to apply a break opportunity within a replacement span, otherwise things can happen such as displaying the span twice. The old code tested this case based on zero-width characters. However, this test was both imprecise, and also in some cases read uninitialized values from the mCharWidths array, which in turn led to inconsistent line breaking of the same text. This patch applies all line break opportunities (as identified by ICU) within text (as opposed to replacement spans), and also applies break opportunities at the beginning and end of replacement spans, but avoids breaks within a replacement span. Bug: 20138621 Change-Id: I36baeb44d6808356649e1bb69ca57f093fc8c723
-
- 16 7月, 2015 2 次提交
-
-
由 Roozbeh Pournader 提交于
Previously, the standard C tolower() function was used, which didn't support any characters beyond the basic ASCII letters. Bug: 22506121 Change-Id: Ibb81121caa29be44fbb59aa98891e9faafc57592
-
由 Roozbeh Pournader 提交于
This adds various hyphen-like characters missed in the previous patch, that should disallow automatic hyphenation of words containing them. Bug: 22484266 Change-Id: Ie972cb50384dbe0aa1ab5ec50286b75f9877953a
-
- 15 7月, 2015 1 次提交
-
-
由 Roozbeh Pournader 提交于
Previously, automatic hyphenation blindly took almost every line breaking opportunity as a word break, so words like "low-budget" were treated as two separate words, "low-", and "budget", each automatically hyphenated. This patch makes sure the subwords in already-hyphenated phrases are not passed to the automatic hyphenator, while keeping the possibility of a potential line break where a hyphen already exists. Bug: 22484266 Bug: 22287425 Change-Id: Ie46dbdd70e993d64a9b9cf44b4ae93b21459dbc2
-
- 10 7月, 2015 1 次提交
-
-
由 Raph Levien 提交于
We bypass the word layout cache for "complex" cases, which includes things like OpenType features. We were counting a hyphen edit as such a case, but the problem is that we measure a _lot_ of these when doing layout with hyphenation. This patch adds plumbing for hyphen edits to the layout cache, so that word fragments with hyphens can be cached as well. Bug: 22378829 Change-Id: Idba4df4faa14f48a5faccc8a7a7955a36c19ef27
-
- 01 7月, 2015 1 次提交
-
-
由 Raph Levien 提交于
The logic in getRunAdvance() assumed that any zero-width character was part of the preceding cluster, which is valid most of the time. However, characters such as ZWNBSP (U+FEFF) renders as a zero width glyph and is also a grapheme cluster boundary. This patch adds a clause to handle that case. Bug: 22121742 Change-Id: Iad79a7d988bded1ef05f0fd7905d20669ea22051
-
- 30 6月, 2015 1 次提交
-
-
由 Raph Levien 提交于
An incorrect cluster offset calculation was causing a lot of log messages to appear. Separately, a confusion between #if and #ifdef was causing unintended logging of line breaks. This patch fixes both. Bug: 22178333 Change-Id: I2b3673ed66c784f5082fd127a8dc10bd3df6ed79
-
- 27 6月, 2015 1 次提交
-
-
由 Raph Levien 提交于
The appearance of letterspacing with scripts with cursive connections is poor, so we simply disable letterspacing for those scripts. There may be some cases where some form of letterspacing is desirable, but this gives the highest likelihood that the final result will be good without requiring additional work from clients. Bug: 21935803 Change-Id: Ie25266249ac3a2605aa89ef5132e8edbe3a06d35
-
- 25 6月, 2015 1 次提交
-
-
由 Raph Levien 提交于
A recent change added a penalty for a hyphen at the last line break, which is visually undesirable. However, the penalty was assessed to "widthScore", which broke the assumption (used for another optimization) that widthScore increases monotonically. This patch separates the penalty into a different parameter, restoring the validity of the monotonicity assumption. Bug: 22066119 Change-Id: I6a47a350ef3ceee2f00ee430d6954d0c307227f0
-
- 13 6月, 2015 2 次提交
-
-
由 Roozbeh Pournader 提交于
-
由 Roozbeh Pournader 提交于
Previously, we just assumed the font in use had a U+2010 HYPHEN character, resulting in a tofu (or an empty space) being shown when U+2010 was not supported in the font used to render the hyphenated word. Now we try to fallback to U+002D HYPHEN-MINUS, which has a very good chance of being available in at least any Latin font. We still show a tofu when neither character is supported, to intentionally alert that something is missing. Bug: 20497913 Bug: 21088552 Bug: 21570828 Change-Id: Iff69bbc38836c03495e9124502b5207c39270da2
-