- 09 4月, 2016 1 次提交
-
-
由 Raph Levien 提交于
We changed the signature of the MinikinFont::GetTable method. This patch updates the sample code, and fixes the build. Change-Id: I1977be868bf7636986fc802915f3dd54c418a73a
-
- 08 4月, 2016 2 次提交
-
-
由 Raph Levien 提交于
The hb_font_t object holds on to tables of font data, acquired through the MinikinFont::GetTable interface, which is based on copying data into caller-owned buffers. Now that we're caching lots of hb_font_t's, the cost of these buffers is significant. This patch moves to a different interface, inspired by HarfBuzz's hb_reference_table API, where the font can provide a pointer to the actual font data (which will often be mmap'ed, so it doesn't even consume physical RAM). Bug: 27860101 Change-Id: Id766ab16a8d342bf7322a90e076e801271d527d4
-
由 Raph Levien 提交于
This patch eagerly purges the corresponding hb_font_t object from the HbFontCache when the underlying MinikinFont is destroyed. After that, the key will no longer be accessed, so having the entry is wastes memory. Bug: 27251075 Bug: 27860101 Change-Id: I1b98016133fe3baf6525ac37d970a65ddccadb4f
-
- 04 4月, 2016 1 次提交
-
-
由 Seigo Nonaka 提交于
Some fonts support multiple scripts, for example, some fonts for Korean supports not only "Kore" but also "Jamo". To select fonts based on their multiple languages, this CL introduces the following changes: - Compares all languages of the font family and use the maximum score for font selection. - Even if each language of the font family doesn't support the requested language, the font get score of 2 if the requested font is covered by all of the languages of the font family. For example, the font for "ko-Hang,ko-Hani" gets score of 2 for the requested language "ko-Kore". Bug: 26687969 Change-Id: I7f13b51464c9b01982bb573251d77052b9ddbd70
-
- 31 3月, 2016 1 次提交
-
-
由 Roozbeh Pournader 提交于
Indic combining marks, when combined with a common character such as a hyphen or a dotted circle, used to get rendered in a different font due to the greedy algorithm used in determining runs, which resulted in the base character and the combining mark getting rendered in separate font runs, resulting in a dotted circle appearing in phrases such as "100-ാം" (0031 0030 0030 002D 0D3E 0D02). This change makes combining marks change the font run of the base character if the base character is supported in the same font as the combining mark, similar to the support for emoji modifiers and the combining keycap. Bug: 25036888 Bug: 24535344 Change-Id: I8e2798e8ecb8efaf723a0fd02c05c6fbdef8b365
-
- 17 3月, 2016 1 次提交
-
-
由 Roozbeh Pournader 提交于
Implement the change proposed in UTC document L2/16-043R (http://www.unicode.org/L2/L2016/16043r-line-break-pr-po.txt) to make sure we do not break between letters and currency symbols. Bug: 24959657 Change-Id: Ia29d0e5625f84870bd910d0c6e19036d17206704
-
- 04 3月, 2016 1 次提交
-
-
由 Seigo Nonaka 提交于
Bug: 26808815 Change-Id: I2a5a52f2c441d27c7ef270342b4ef93c3de9e56e
-
- 03 3月, 2016 1 次提交
-
-
由 Seigo Nonaka 提交于
Bug: 23288449 Change-Id: If1419ff9e44e8e640616979bae88311f414b42a1
-
- 27 2月, 2016 2 次提交
-
-
由 Raph Levien 提交于
I computed ranges using low <= c || c <= high, should be &&. Bug: 26829153 Change-Id: Ic1002d90b6a408a0b415f2d117d0e57adcbc2fa9
-
由 Raph Levien 提交于
An emoji base with an emoji modifier renders as a single glyph and thus should not be a line break. Current (Unicode 8) logic does indicate a line break, so we override the results of the ICU line break iterator. The code references a proposal to improve Unicode behavior; when that is adopted and we upgrade ICU accordingly, the special-case code should be deleted, but the tests can remain. Bug: 27343378 Change-Id: I5de9c53e9a34c503816f9131e3d894e6f7a57d13
-
- 26 2月, 2016 1 次提交
-
-
由 Seigo Nonaka 提交于
If skin tone is specified, the base emoji should be emoji style even if it is text presentation default emoji. This patch also removes wrong test case which expects default emoji presentation but it is controlled by family order in /etc/fonts.xml and there is no special logic for default presentation in minikin. Thus the default presentation unit test should not be in minikin. Bug: 27342346 Change-Id: I74a2b2feab4d559535049e368cfd833063cce81c
-
- 25 2月, 2016 2 次提交
-
-
由 Raph Levien 提交于
-
由 Raph Levien 提交于
An emoji with a modifier should be treated as a single grapheme, i.e. it should not be possible to place the cursor between the base and modifier. This patch implements the proposed Rule GB9c from Mark Davis's proposal entitled "Fixing breaking properties for emoji", L2/16-011R3. The patch also skips over variation sequences attached the to the preceding character, for computing grapheme cluster boundaries. Bug: 26829153 Change-Id: Iff5bc2bb8e5246223a017c7cf33acfbf63817f16
-
- 23 2月, 2016 1 次提交
-
-
由 Seigo Nonaka 提交于
-
- 20 2月, 2016 1 次提交
-
-
由 Raph Levien 提交于
-
- 19 2月, 2016 3 次提交
-
-
由 Raph Levien 提交于
Due to the way emoji ZWJ sequences are defined, the ICU line breaking algorithm determines that there are valid line breaks inside the sequence. This patch suppresses these line breaks. This is an adaptation of I225ebebc0f4186e4b8f48fee399c4a62b3f0218a into the nyc-dev branch. Bug: 25433289 Change-Id: I84b50b1e6ef13d436965eab389659d02a30d100f
-
由 Keisuke Kuroyanagi 提交于
With this CL, measureText is used for getRunAdvance, getOffsetForAdvance and line breaking. Bug: 24505153 Change-Id: Ib699f6b1391b46537736fc274cdb41686586b550
-
由 Raph Levien 提交于
In cases when a word (as defined by the ICU break iterator) overlaps a style boundary, the returned wordStart can be extend before the range currently being measured for layout. When we try to hyphenate the resulting substrings, we get a negative range, which crashes. This patch disables hyphenation in this case. Bug: 27237112 Change-Id: I76d04b39dd3b4d6d267aaaf4bebc9ab361891646
-
- 18 2月, 2016 15 次提交
-
-
由 Seigo Nonaka 提交于
Hanb is a union of Han and Bopomofo. Bug: 26687969 Change-Id: Ic696bcbbc9607f3842fd0115668b8e7bd917e62b
-
由 Seigo Nonaka 提交于
-
由 Raph Levien 提交于
am: c3433aca * commit 'c3433aca': Add error logging on invalid cmap
-
由 Raph Levien 提交于
am: 4741030f * commit '4741030f': Add error logging on invalid cmap - DO NOT MERGE
-
由 Raph Levien 提交于
am: c91a77cf * commit 'c91a77cf': Add error logging on invalid cmap
-
由 Raph Levien 提交于
am: d60a48cc -s ours * commit 'd60a48cc': Add error logging on invalid cmap - DO NOT MERGE
-
由 Raph Levien 提交于
am: 734f0371 * commit '734f0371': Add error logging on invalid cmap
-
由 Raph Levien 提交于
am: 48e53074 * commit '48e53074': Add error logging on invalid cmap - DO NOT MERGE
-
由 Raph Levien 提交于
Recent changes have added special cases for line breaks within URLs and email addresses. Such breaks are undesirable when they can be avoided, but at other times are needed to avoid huge gaps, or indeed to make the line fit at all. This patch assigns a penalty for such breaks, equal to the hyphenation penalty. The mechanism is currently very simple, but would be easy to fine-tune based on more detailed information about break quality. Bug: 20126487 Bug: 20566159 Change-Id: I0d3323897737a2850f1e734fa17b96b065eabd9c
-
由 Raph Levien 提交于
This change adds accceptable line breaks according to sections 7.42 (Dividing URLs and e-mail addresses) and 14.12 (URLs or DOIs and line breaks) of the Chicago Manual of Style (16th ed.). In general, these place breaks before punctuation symbols, and suppresses them after hyphens. Bug: 20126487 Bug: 20566159 Change-Id: I2d07d516b920a506a2f718c38fb435c5eb1ee1f8
-
由 Raph Levien 提交于
Detect URLs and email addresses, and suppress both line breaking and hyphenation within them. Bug: 20126487 Bug: 20566159 Change-Id: I43629347a063dcf579e355e5b678d7195f453ad9
-
- 17 2月, 2016 2 次提交
-
-
由 Seigo Nonaka 提交于
Before this patch, the font fallback chain iterated all installed font families if a variation selector was specified. This CL narrows down the range of iteration. To decide the font family for the variation sequence, we need to search for both the variation sequence and its base code point. The new range of the iteration is a union of them. With this change, the running time of Paint.hasGlyph for the variation sequence improves 50% and the running time of Paint.measureText for the variation sequence improves 40% for the large text case on Nexus 6 userdebug. Bug: 26784699 Bug: 11750374 Change-Id: Iced1349e3ca750821d8882c551551f65bb569794
-
由 Raph Levien 提交于
Implement a WordBreaker that defines our concept of valid word boundaries, customizing the ICU behavior. Currently, we suppress line breaks at soft hyphens (these are handled specially). Also, the new WordBreaker class has methods that determine the start and end of the word (punctuation stripped) for the purpose of hyphenation. This patch, in its current form, doesn't handle email addresses and URLs specially, but the WordBreaker class is the correct place to do so. Also, special case handling of hyphens and dashes is still done in LineBreaker, but all of that should be moved to WordBreaker. Bug: 20126487 Bug: 20566159 Change-Id: I492cbad963f9b74a2915f010dad46bb91f97b2fe
-
- 13 2月, 2016 2 次提交
-
-
由 Raph Levien 提交于
This patch logs instances of fonts with invalid cmap tables. Bug: 25645298 Bug: 26413177 Change-Id: I183985e9784a97a2b4307a22e036382b1fc90e5e
-
由 Raph Levien 提交于
This patch logs instances of fonts with invalid cmap tables. Bug: 25645298 Bug: 26413177 Change-Id: I183985e9784a97a2b4307a22e036382b1fc90e5e
-
- 12 2月, 2016 1 次提交
-
-
由 Aurimas Liutikas 提交于
Removing variables in main function of sample/example.cpp as they are not used. Bug: 26936282 Change-Id: I64ae0a455b413df333ddd4810a9e090d52322041
-
- 08 2月, 2016 1 次提交
-
-
由 Keisuke Kuroyanagi 提交于
Bug: 24505153 Change-Id: If61c063c175086dec88cda187eafd9ce923e4cb1
-
- 04 2月, 2016 1 次提交
-
-
由 Seigo Nonaka 提交于
It turned out that hb_font_t creation is not a lightweight operation. Especially, Paint.hasGlyph creates hb_font_t for all existing fonts every time. To improve the performance, cache hb_font_t instead of hb_face_t. Note that to calculate horizontal advance, MinikinPaint needs to be associated with hb_font_t by calling hb_font_set_funcs. With this patch, hb_font_set_funcs may be called multiple times for the same hb_font_t object. However this is not an issue since MinikinPaint is unique during layout. Bug: 26784699 Change-Id: I516498ae9f0127d700fc9829327e9789845a1416
-