398 Commits

Author SHA1 Message Date
Seigo Nonaka
4a4e6574c0 Fix lookup order for VS in itemization.
This is partial revert of Iced1349e3ca750821d8882c551551f65bb569794.

Due to sorting of target family vectors, the font family order from XML
settings file is broken. Making unique operation stable doesn't fix the
issue completely since some font families are appended for the fallback
which also breaks the original order.

By this change, itemization becomes 3x slower than before if variation
selector is appended.

Bug: 29585939
Change-Id: I7c1a8a57f04111a30cd41a5cd5bec25fcfb3972e
2016-09-15 16:23:40 +09:00
Chih-Hung Hsieh
ec7d9240dd Fix google-explicit-constructor warnings in minikin am: 0114c6a1cf -s ours am: 8402f2eee8 am: 593cccabe7
am: e189ad9531

Change-Id: Ie330bd0bfec81c3a8d159a13d96480dbd2774855
2016-08-16 21:20:27 +00:00
Chih-Hung Hsieh
e189ad9531 Fix google-explicit-constructor warnings in minikin am: 0114c6a1cf -s ours am: 8402f2eee8
am: 593cccabe7

Change-Id: I3623a0f372da99c5a189bc5900b3f55bc3d7b0be
2016-08-16 21:14:54 +00:00
Chih-Hung Hsieh
593cccabe7 Fix google-explicit-constructor warnings in minikin am: 0114c6a1cf -s ours
am: 8402f2eee8

Change-Id: Idf3e3882894774d917166e4eec743fb8bea0c31b
2016-08-16 21:13:13 +00:00
Chih-Hung Hsieh
8402f2eee8 Fix google-explicit-constructor warnings in minikin
am: 0114c6a1cf  -s ours

Change-Id: I51c71217e402c3cbeefd6de5ccf7252dc1687f76
2016-08-16 21:08:26 +00:00
Chih-Hung Hsieh
0114c6a1cf Fix google-explicit-constructor warnings in minikin
* Add explicit keyword to conversion constructors,
  or add NOLINT(implicit) for implicit converters.
Bug: 28341362
Test: build with WITH_TIDY=1

Change-Id: I0c7b90f9bb953a9f2e4f0fb2032fa65ac604b9ca
Merged-In: I0c7b90f9bb953a9f2e4f0fb2032fa65ac604b9ca
2016-08-16 01:48:48 +00:00
Chih-Hung Hsieh
47b905f684 Fix google-explicit-constructor warnings in minikin
* Add explicit keyword to conversion constructors,
  or add NOLINT(implicit) for implicit converters.
Bug: 28341362
Test: build with WITH_TIDY=1

Change-Id: I0c7b90f9bb953a9f2e4f0fb2032fa65ac604b9ca
2016-08-15 13:58:52 -07:00
Roozbeh Pournader
b830102259 Revert "Lookup glyph from color emoji font before and after ZWJ." am: 1aa0c40db9 am: de728a34c9
am: f83d57f7e5

Change-Id: Iebf945839891cc1ab561cf424ef917ac15e08842
2016-08-11 23:40:20 +00:00
Roozbeh Pournader
f83d57f7e5 Revert "Lookup glyph from color emoji font before and after ZWJ." am: 1aa0c40db9
am: de728a34c9

Change-Id: Id1b94e72ccd480bf5395752868f7f26e17ab7491
2016-08-11 23:36:50 +00:00
Roozbeh Pournader
de728a34c9 Revert "Lookup glyph from color emoji font before and after ZWJ."
am: 1aa0c40db9

Change-Id: Icc8b76ebd3edfdeb7622bf21a6585b191cf5b15f
2016-08-11 23:32:49 +00:00
Roozbeh Pournader
1aa0c40db9 Revert "Lookup glyph from color emoji font before and after ZWJ."
This reverts commit 9431bb96406121d2eb3fda8ca8209edc434f96a0.

Bug: 30815709
Change-Id: I057d9bcd05246e58894abb4e9633bd10f6fab211
2016-08-11 21:03:00 +00:00
Ben Wagner
e6adb66ae9 Move SkTypeface::CreateXXX to SkTypeface::MakeXXX.
Skia is moving to returning smart pointers from its factory methods.
This updates uses of SkTypeface::CreateXXX to SkTypeface::MakeXXX and
generally updates use of SkTypeface to sk_sp. This will allow for the
removal of the SK_SUPPORT_LEGACY_TYPEFACE_PTR define.

Change-Id: If3e600c6cb86080576667bc77d427da4f6560afa
2016-08-05 13:57:22 -04:00
Seigo Nonaka
a0d885bb7f Lookup glyph from color emoji font before and after ZWJ. am: 9431bb9640
am: 9480fd77f5

Change-Id: I6c77cba0290c56995bf56cfb876dd60989e50b9b
2016-07-15 00:28:05 +00:00
Seigo Nonaka
a5bf8fea53 Treat U+2695, U+2640, U+2642 as emoji characters. am: c2642f9a33
am: 249152f8e1  -s ours

Change-Id: Ib77b3862c81da7c58bd64846c0950534c12b5492
2016-07-15 00:27:35 +00:00
Seigo Nonaka
25b0f55817 Add some gender balanced components in to the sticky whitelist. am: fab99dde4b
am: b746bef0ba  -s ours

Change-Id: I3fb287e86b3ecb8a61dca114578fe3a067a4469f
2016-07-14 23:14:28 +00:00
Seigo Nonaka
9480fd77f5 Lookup glyph from color emoji font before and after ZWJ.
am: 9431bb9640

Change-Id: Ic4900b65ed16a2ba3b5431d12a093654b7921a9b
2016-07-14 22:43:47 +00:00
Seigo Nonaka
249152f8e1 Treat U+2695, U+2640, U+2642 as emoji characters.
am: c2642f9a33

Change-Id: I551ee1c4c5368dde3bf2ab7d016634991b62f212
2016-07-14 22:43:47 +00:00
Seigo Nonaka
b746bef0ba Add some gender balanced components in to the sticky whitelist.
am: fab99dde4b

Change-Id: Ieda8b25bba40f22c9d8c33aba590e96e3396f6c4
2016-07-14 22:43:46 +00:00
Seigo Nonaka
9431bb9640 Lookup glyph from color emoji font before and after ZWJ.
Unicode recommends that the zwj sequences should be emoji presentation
even if they don't have the proper U+FE0F. Thus always lookup the glyph
for the code point before and after zwj as if they have a U+FE0F
variation selector.

Bug: 30056627
Change-Id: I03958a92337eaba4a8dd9c5be824b2665aa4a103
2016-07-13 14:12:06 -07:00
Seigo Nonaka
c2642f9a33 Treat U+2695, U+2640, U+2642 as emoji characters.
Bug: 29885295
Change-Id: I1bf191a46d05e7099265d863bae0523c50817d0b
2016-07-13 14:05:02 -07:00
Seigo Nonaka
fab99dde4b Add some gender balanced components in to the sticky whitelist.
FEMALE SIGN(U+2640), MALE SIGN(U+2642), StAFF OF AESCULAPIUS(U+2695)
will be used as the ZWJ sequenced in gender balanced emoji sequence.
To be in the same run with ZWJ, mark these emoji as sticky chracters.

With this fix, Female police officer sequence will be shown correctly
regardless of VS16.

Bug: 30026374
Change-Id: I503fc061eaa943d45208bb69e885151610c430ce
2016-07-13 14:01:41 -07:00
Seigo Nonaka
98487de547 Lookup glyph from color emoji font before and after ZWJ.
Unicode recommends that the zwj sequences should be emoji presentation
even if they don't have the proper U+FE0F. Thus always lookup the glyph
for the code point before and after zwj as if they have a U+FE0F
variation selector.

Bug: 30056627
Change-Id: I03958a92337eaba4a8dd9c5be824b2665aa4a103
2016-07-12 10:07:19 +09:00
Seigo Nonaka
1946f48e84 Treat U+2695, U+2640, U+2642 as emoji characters.
Bug: 29885295
Change-Id: I1bf191a46d05e7099265d863bae0523c50817d0b
2016-07-11 15:27:05 +09:00
Seigo Nonaka
435076ff2e Add some gender balanced components in to the sticky whitelist.
FEMALE SIGN(U+2640), MALE SIGN(U+2642), StAFF OF AESCULAPIUS(U+2695)
will be used as the ZWJ sequenced in gender balanced emoji sequence.
To be in the same run with ZWJ, mark these emoji as sticky chracters.

With this fix, Female police officer sequence will be shown correctly
regardless of VS16.

Bug: 30026374
Change-Id: I503fc061eaa943d45208bb69e885151610c430ce
2016-07-08 15:49:50 +09:00
Adam Buchbinder
6a0900bf65 Merge "Fix a leaked file in HyphTool.cpp." 2016-07-07 20:51:08 +00:00
Seigo Nonaka
524369b0c6 Fix build failure of minikin_perftest
stat.st_size is off_t not size_t, so need to cast to size_t before
compare it.

Change-Id: I6b742746fbb9f254701fc91e515c293f93f912c5
2016-06-28 09:37:17 +00:00
Seigo Nonaka
5e6bc85d69 Introduce FontCollection perftest
This CL introduces performance tests for FontCollection.

To support TTC file in /system/fonts, this CL also extends FontTestUtils

Bug:29142734
Change-Id: I9d8ad24ca55f61031b85623ab7c26234239e4f41
2016-06-28 08:52:35 +00:00
Seigo Nonaka
0ca4fb6d44 Add more native perf tests to minikin.
This CL introduces performance tests for following three modules:
- Hyphenator
- WordBreaker
- GraphemeBreak

During using UnicodeUtils, need to decouple it from gtest since
perftest doesn't have gtest dependencies.

Bug:29142734
Change-Id: I700c662fa7d0a52f19d8e93150ad1a85dc28769f
2016-06-28 16:55:42 +09:00
Seigo Nonaka
81c79d6e1e Fix test utilities
This fixes following three memory leaks in test utilities.
There is no problem in production code and this CL doesn't affect
any production behaviors.

- SkTypeface leaks due to forget calling SkSafeUnref in dtor.
- MinikinFontForTest leaks during constructing FontCollection.
- FontCollection leaks due to unnecessary AddRef.

Change-Id: I22e1e0307f1b2499296acb1aacc3ef66076a36e9
2016-06-21 16:47:25 +09:00
Seigo Nonaka
14e2d136aa Always use minikin namespace.
Here is a new policy of the namespace of minikin.
- All components should be in minikin namespace.
- All tests are also in minikin namespace and no anonymous namespace.

Bug: 29233740
Change-Id: I71a8a35049bb8d624f7a78797231e90fed1e2b8c
2016-06-11 00:11:17 +09:00
Seigo Nonaka
c970b3da26 Merge "Introduce initial minikin perftest" 2016-06-09 03:31:45 +00:00
Seigo Nonaka
c38b249ef7 Reconstruct the directory structure of minikin tests.
To add perftests and reuse some utility classes, reconstruct
test directory structure.

- Move unit tests from minikin/tests to minikin/tests/unittests
- Extract utilitiy classes to minikin/tests/utils which will be
  used by perftests eventually.

Change-Id: I5026b177934e72ae67d362ee888302037da2f808
2016-06-09 03:25:03 +00:00
Seigo Nonaka
08bfef04af Introduce initial minikin perftest
Bug: 28992567
Change-Id: Id14cc86761d6c5b408262fe8684e2b293a420a4f
2016-06-08 13:01:55 +09:00
Roozbeh Pournader
9ea660349c Do not break after Myanmar viramas am: 74b56175e5 am: 8614b0420c
am: b11b991fe7

* commit 'b11b991fe7397a083e45ff267f632d1a866bcc23':

Change-Id: I0a3d24fcffb1d0533970058b4a3498d45e794f36
2016-05-26 02:56:56 +00:00
Roozbeh Pournader
b000ca61bb Do not break after Myanmar viramas am: 74b56175e5 am: 00de2cc363
am: b4bbae3202

* commit 'b4bbae320244d949d1f7766916919cbb3a6e72f3':
  Do not break after Myanmar viramas

Change-Id: I69972aed4fe1c1b956c0b65af18e1a4f1c739bf4
2016-05-26 02:56:55 +00:00
Roozbeh Pournader
b11b991fe7 Do not break after Myanmar viramas am: 74b56175e5
am: 8614b0420c

* commit '8614b0420cef56449c0db72f5098360c31867b06':

Change-Id: I4437e1206de2a45593e69956d8bcdf85a64b0f32
2016-05-26 02:31:31 +00:00
Roozbeh Pournader
b4bbae3202 Do not break after Myanmar viramas am: 74b56175e5
am: 00de2cc363

* commit '00de2cc3631df7ee3d755956bbf4ec6812d5517f':
  Do not break after Myanmar viramas

Change-Id: I2e240fab84a49c73165056ee5ff18dbfca0faeec
2016-05-26 02:21:28 +00:00
Roozbeh Pournader
00de2cc363 Do not break after Myanmar viramas
am: 74b56175e5

* commit '74b56175e5d41c1c1dc992208842b5576973d452':
  Do not break after Myanmar viramas

Change-Id: I13297120c3c3789c03b860c9e72b3a04922ab9fa
2016-05-26 01:44:33 +00:00
Roozbeh Pournader
8614b0420c Do not break after Myanmar viramas
am: 74b56175e5

* commit '74b56175e5d41c1c1dc992208842b5576973d452':
  Do not break after Myanmar viramas

Change-Id: Idb9303889ac87853a730cdb25fba7faaaf352b93
2016-05-26 01:44:33 +00:00
Roozbeh Pournader
74b56175e5 Do not break after Myanmar viramas
This is to work around a bug in ICU's line breaker, which thinks
there is a valid line break between a Myanmar kinzi and a consonant.
See http://bugs.icu-project.org/trac/ticket/12561 for the ICU bug.

Bug: 28964845
Change-Id: I076ac15077e5627cbccf6732900bcc60d8596dda
2016-05-25 16:46:56 -07:00
Adam Buchbinder
7739573616 Fix a leaked file in HyphTool.cpp.
This addresses the following cppcheck reports:
[frameworks/minikin/app/HyphTool.cpp:30]: (error) Resource leak: f
[frameworks/minikin/app/HyphTool.cpp:32]: (error) Resource leak: f

Change-Id: I5113e0a7268bd3a45bf1498fd023042d9dfe2b87
2016-05-23 13:16:13 -07:00
Seigo Nonaka
4c4b6220f1 Do not break before and after ZWJ. am: 77f4883 am: f9783b1
am: bf94219

* commit 'bf94219d636cb137284032a124d8286335e33060':

Change-Id: I022dd9f9f800851fc7941dcdc4ebd0a9aca0f0bf
2016-04-19 18:55:22 +00:00
Seigo Nonaka
f0beb61515 Do not break before and after ZWJ. am: 77f4883 am: 3bee494
am: 8010ad4

* commit '8010ad473b88233f2fcacd869ac22cb775e60228':
  Do not break before and after ZWJ.

Change-Id: I5cdc475d6b525aac29b8433e675d2ad2feb68722
2016-04-19 18:55:22 +00:00
Seigo Nonaka
bf94219d63 Do not break before and after ZWJ. am: 77f4883
am: f9783b1

* commit 'f9783b1322800306d83d853e8a2de3322213313a':

Change-Id: I5a637871133d3e45c47c5b6dc8407bda946dbd62
2016-04-19 18:46:15 +00:00
Seigo Nonaka
8010ad473b Do not break before and after ZWJ. am: 77f4883
am: 3bee494

* commit '3bee494eead989500c38d98f7f863986e95e25e0':
  Do not break before and after ZWJ.

Change-Id: If1fe6c6192aae09bab68a00bc94aba3e768dd445
2016-04-19 18:42:30 +00:00
Seigo Nonaka
f9783b1322 Do not break before and after ZWJ.
am: 77f4883

* commit '77f488345316fba46c271fc04bea470819ae1712':
  Do not break before and after ZWJ.

Change-Id: Ic476d9048b44b84c69fd185b76108c961d8e8545
2016-04-19 18:39:03 +00:00
Seigo Nonaka
3bee494eea Do not break before and after ZWJ.
am: 77f4883

* commit '77f488345316fba46c271fc04bea470819ae1712':
  Do not break before and after ZWJ.

Change-Id: I00a0e31c19dd5b2fbe2ffb389bec4001dec5d6c1
2016-04-19 18:38:59 +00:00
Seigo Nonaka
77f4883453 Do not break before and after ZWJ.
The emoji list is generated from external/unicode/emoji-data.txt

Bug: 28248662
Change-Id: Ie49b3782505665d62c24371ca23d317ae5e9c5f7
2016-04-19 14:09:38 +00:00
Seigo Nonaka
b2b218470f Returns hasVariationSelector true for VS15/VS16 am: 994aa84
am: 34c784e

* commit '34c784e5ef4f93ddc54d84727b3d50e186da5056':
  Returns hasVariationSelector true for VS15/VS16

Change-Id: I14b0971a3ff50572e594a0814a26e10113fe7c1c
2016-04-15 15:38:18 +00:00
Seigo Nonaka
34c784e5ef Returns hasVariationSelector true for VS15/VS16
am: 994aa84

* commit '994aa84f7b18466806fe552ea57da1852b909f24':
  Returns hasVariationSelector true for VS15/VS16

Change-Id: Iff3953948c8457e2a85e5859559411511a326f33
2016-04-15 15:31:59 +00:00