Commit Graph

37 Commits

Author SHA1 Message Date
Julia Lavrova
db10b0e802 Float error and positioning
(Hiding the fix from Flutter for now because we need to test it in
Google3 first)

Bug: skia:11100
Change-Id: I51fa37ee16a48de6a636dc857d5ae8650327922f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/391197
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-04-05 19:00:46 +00:00
Julia Lavrova
141b0aec13 Ignore \n metrics so it does not affect the layout
Bug: skia:11370
Change-Id: I17bf1304750be2c98f037bb8aebd65c525d836de
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388445
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-04-01 16:25:33 +00:00
Julia Lavrova
2381c0b420 Handle the case when one grapheme includes more than one run.
Bug: skia:11743
Change-Id: Id53350845254905be1c5fcb0c2b1f757f5b6319f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/389930
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-03-30 19:58:16 +00:00
Julia Lavrova
5625ef5043 Too long placeholder should start from a new line
Bug: skia:11783
Change-Id: Ide5f0976bc20ababb483ddd10d2f081ad3d13a86
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388138
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-03-23 14:53:28 +00:00
Julia Lavrova
583a343d9a Line height in case of a single placeholder
Bug: skia:11773
Change-Id: I6f5ff4afa5600d76c973669b35c182f385b6cf7a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387818
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-03-22 19:21:48 +00:00
Julia Lavrova
6147424288 Correct the line height
Bug: skia:11370
Change-Id: I72b4a53924d310a907d1851a56f3137dbca1cf6d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/386859
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-03-19 18:26:12 +00:00
Julia Lavrova
98a76eb6ea Add nbsp info to the cache
Change-Id: I9d4cd6f3d7c2871c1279c3a7190187bbfee1b56b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/383856
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-03-19 15:40:31 +00:00
Julia Lavrova
c70f8c331d Using non-breaking spaces as a hint to break too long words
Change-Id: Ic88e961ea3fb08e61340895115f514c6f5dec163
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/379798
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-03-08 04:31:04 +00:00
Julia Lavrova
b7b9a23281 Treat control codepoints as resolved
The correct solution will be implemented to fix bug 11380.
https://bugs.chromium.org/p/skia/issues/detail?id=11380

Bug: skia:11370
Change-Id: I15a84e2e785d73a298558e5ef0dedcc69f7b6eef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/376936
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-03-02 20:38:48 +00:00
Julia Lavrova
8d5ccce163 Glyph positioning in RTL empty lines
Bug: skia:11258
Change-Id: Icbb34e571ba53e893b2887c963a46677b16b43e0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368754
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-02-10 22:27:18 +00:00
Julia Lavrova
f756979dbf Fixing a crash in Flutter Text Editor
Change-Id: I01b92f7c5f6030afae164ba2999e3aa8168597b0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368417
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-02-09 22:10:55 +00:00
Julia Lavrova
efae4d56e1 Glyph positions in empty lines (few places had to be fixed)
Bug: skia:11259
Change-Id: I6aa24f9f1f95698d39dbc2ae0e6836f404fd0b24
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/365491
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-02-03 23:05:38 +00:00
Julia Lavrova
045f87d27f Reasonable results for not styled text in findAllBlocks.
Bug: skia:11256
Change-Id: Ice964f722c3c9f15cf3feab3c74b1c7235bbea7f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364636
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-02-03 14:40:09 +00:00
Julia Lavrova
d20a1097e8 Round unresolved font blocks to grapheme edges
I had to stage the change with SK_PARAGRAPH_GRAPHEME_EDGES because of
some google3 tests.
Bug: skia:11196

Change-Id: Ic45e43e6c69f649c6bc0fedcc6f303891139b85e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/359566
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-01-27 15:39:09 +00:00
Julia Lavrova
b42686ad01 Painting styled text blocks in RTL
Bug: skia:11017
Change-Id: I13bd210a0d38614bab4a5a98c4507150043224cc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/340317
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-12-03 21:51:40 +00:00
Julia Lavrova
c90084a9a3 Revert "Some testing images in Google3 look slightly different with this change. Need to change them, too."
This reverts commit b776a105e5.

Reason for revert: This will be the first step of a staged change.

Original change's description:
> Some testing images in Google3 look slightly different with this change. Need to change them, too.
>
> Revert "Roll back #10487 fix (so now spaces always resolved in the main font)"
>
> This reverts commit ff5d8700b3.
>
> Reason for revert: <INSERT REASONING HERE>
>
> Original change's description:
> > Roll back #10487 fix (so now spaces always resolved in the main font)
> >
> > Bug: skia:10715
> > Change-Id: I06bb881998d00228c79a218967eda6468cbc5bed
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/334053
> > Reviewed-by: Ben Wagner <bungeman@google.com>
> > Commit-Queue: Julia Lavrova <jlavrova@google.com>
>
> TBR=bungeman@google.com,jlavrova@google.com
>
> Change-Id: Icc1f262f60fa2ec9b4425ce3088b5eaac9313374
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:10715
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/334158
> Reviewed-by: Julia Lavrova <jlavrova@google.com>
> Commit-Queue: Julia Lavrova <jlavrova@google.com>

TBR=bungeman@google.com,jlavrova@google.com

Change-Id: I0f2f46fc21eec795026ea98696f68112915f7979
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10715
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/334159
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-11-12 15:32:48 +00:00
Julia Lavrova
b776a105e5 Some testing images in Google3 look slightly different with this change. Need to change them, too.
Revert "Roll back #10487 fix (so now spaces always resolved in the main font)"

This reverts commit ff5d8700b3.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Roll back #10487 fix (so now spaces always resolved in the main font)
>
> Bug: skia:10715
> Change-Id: I06bb881998d00228c79a218967eda6468cbc5bed
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/334053
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Julia Lavrova <jlavrova@google.com>

TBR=bungeman@google.com,jlavrova@google.com

Change-Id: Icc1f262f60fa2ec9b4425ce3088b5eaac9313374
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10715
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/334158
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-11-11 20:47:16 +00:00
Julia Lavrova
ff5d8700b3 Roll back #10487 fix (so now spaces always resolved in the main font)
Bug: skia:10715
Change-Id: I06bb881998d00228c79a218967eda6468cbc5bed
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/334053
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-11-11 18:11:25 +00:00
Julia Lavrova
1d1c5c1a18 Yet another workaround Thai \n problem (same as txtlib)
Bug: skia:10881

Change-Id: If451b662646e66e5d699ca0cca3795f5e078b84e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332257
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-11-06 19:33:39 +00:00
Julia Lavrova
f857a87d64 Underline decorations with gaps and no text
Bug: Skia:10822
Change-Id: I5ab2f743fe2837070065954bc6f5ba930292f0c8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328596
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-10-21 19:43:33 +00:00
Julia Lavrova
1b44330169 Placeholder at the end of the text right before \n.
Bug: skia:10838
Change-Id: I0f6ebe442d67ba4c91cbef4fcaec6dea02739d34
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/327339
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-10-15 19:15:16 +00:00
Julia Lavrova
69f3cab837 Changing the way we select a grapheme
Selecting only graphemes that are fully inside the
[start:end) range. Hopefully, it's a temporary
solution to simplify SkParagraph vs TxtLib comparison.

Change-Id: Iebc74fb4ae20c232bfae762a04e45f0979cf6236
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/322438
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-10-08 19:02:12 +00:00
Julia Lavrova
b6b7fffc35 Reland "Removing ICU dependencies from skparagraph BUILD.gn file"
This reverts commit 05ce2817f2.

Reason for revert: Fixing the build

Original change's description:
> Revert "Removing ICU dependencies from skparagraph BUILD.gn file"
>
> This reverts commit f1711adb1a.
>
> Reason for revert: Build break
>
> Original change's description:
> > Removing ICU dependencies from skparagraph BUILD.gn file
> >
> > (and from the sources, too)
> >
> > Change-Id: I9d8ff51c91aad4b770b1f183c04734d31252b851
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/313148
> > Commit-Queue: Julia Lavrova <jlavrova@google.com>
> > Reviewed-by: Ben Wagner <bungeman@google.com>
>
> TBR=bungeman@google.com,jlavrova@google.com
>
> Change-Id: I1fce2436855e3e2a4cb7d1d7204b3ae49fd530e8
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314540
> Reviewed-by: Julia Lavrova <jlavrova@google.com>
> Commit-Queue: Julia Lavrova <jlavrova@google.com>

TBR=bungeman@google.com,jlavrova@google.com

Change-Id: I13d78d75698df47930adc2514d1328abc556a209
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316444
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-09-11 18:31:24 +00:00
Julia Lavrova
0f64e0dfd8 An attempt to make font resolution more predictable.
In case the default font family is not there.
Bug: skia:10701

Change-Id: Ie1155d820bfcc25870bedcd0310b0e779d55e942
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316087
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-09-10 20:35:11 +00:00
Julia Lavrova
9bfe92a39d Fixing a bug (reusing wrong formatting state)
Bug: skia:10702
Change-Id: I2b7814917bb1f2a729f231db6df6f010a7ec1abb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315654
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-09-08 20:17:06 +00:00
Julia Lavrova
c0d3495e1e Return to save/translate/restore for drawing via SkPicture
Can't really cache (x, y) in the picture - it's coming from the paint

Change-Id: I4ff9abe19dcd5394b40af427dfab03e8c38fba0e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315648
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-09-08 18:35:12 +00:00
John Stiles
7571f9e490 Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'.
Mechanically updated via Xcode "Replace Regular Expression":

  typedef (.*) INHERITED;
    -->
  using INHERITED = $1;

The ClangTidy approach generated an even larger CL which would have
required a significant amount of hand-tweaking to be usable.

Change-Id: I671dc9d9efdf6d60151325c8d4d13fad7e10a15b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314999
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-03 03:41:26 +00:00
Julia Lavrova
05ce2817f2 Revert "Removing ICU dependencies from skparagraph BUILD.gn file"
This reverts commit f1711adb1a.

Reason for revert: Build break

Original change's description:
> Removing ICU dependencies from skparagraph BUILD.gn file
> 
> (and from the sources, too)
> 
> Change-Id: I9d8ff51c91aad4b770b1f183c04734d31252b851
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/313148
> Commit-Queue: Julia Lavrova <jlavrova@google.com>
> Reviewed-by: Ben Wagner <bungeman@google.com>

TBR=bungeman@google.com,jlavrova@google.com

Change-Id: I1fce2436855e3e2a4cb7d1d7204b3ae49fd530e8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314540
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-09-01 20:51:33 +00:00
Julia Lavrova
f1711adb1a Removing ICU dependencies from skparagraph BUILD.gn file
(and from the sources, too)

Change-Id: I9d8ff51c91aad4b770b1f183c04734d31252b851
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/313148
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-09-01 20:35:34 +00:00
Julia Lavrova
d279cee2f2 Fixing incorrect boundaries calculations + 3 ways of drawing a paragraph
Bug: skia:10620
Change-Id: I70086013130b23435d4e7c5ba375731760deb174
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/311447
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-08-20 18:47:42 +00:00
John Stiles
a008b0fa8b Enable ClangTidy check readability-redundant-smartptr-get.
To my surprise, this even works with homegrown smart pointers (such as
SkTLazy).

https://clang.llvm.org/extra/clang-tidy/checks/readability-redundant-smartptr-get.html

Find and remove redundant calls to smart pointer’s .get() method.

Examples:

  ptr.get()->Foo()  ==>  ptr->Foo()
  *ptr.get()  ==>  *ptr
  *ptr->get()  ==>  **ptr
  if (ptr.get() == nullptr) ... => if (ptr == nullptr) ...

Change-Id: I8ff541e0229656b4d8e875c8053a7e6138302547
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/310976
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-08-16 15:56:48 +00:00
Julia Lavrova
c4d49056b4 Cleaning codepoints/grapheme mess; it also helps with ICU API
Renamed all codepoints into utf16Index

Change-Id: Ie915395a56ac825637f6dbb25824cd1635a5b0a6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/296438
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-06-17 14:51:24 +00:00
Julia Lavrova
d470f40272 Dealing with another crash when some fonts are unresolved
Only happens when resources/fonts have certain fonts
Bugs: skia:10255

Change-Id: Ib346f8d005685290c90886c455def14bb5d49f79
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/294997
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-06-08 18:58:33 +00:00
Julia Lavrova
c48caaae49 Fixing crash when some fonts are unresolved
Bug: Skia:10255
Change-Id: I5b6569603a49977c7fa96731ce46c41bf681a6b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/293569
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-06-03 22:27:05 +00:00
Ben Wagner
b985b4b67f Remove use of ICU C++ API from SkParagraph.
This is mostly about consolidating and removing use of
icu::UnicodeString. It was used mostly as an intermediary for
conversion, and the new conversions should make one fewer copy of the
data.

Change-Id: I1d0e5f0dc21c47ed7c80f456b9129c4c9a36b09a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292718
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-05-28 22:07:40 +00:00
Ben Wagner
4ca7a812f8 Remove use of brkiter from SkParagraph.
Most of the lines here are the result of running iwyu to get the right
includes after removing all the offending includes. A few constants need
to be had from the C api instead of the C++ API to make this work. The
SkParagraphTest and SkParagraphImpl are still using C++ API with
icu::UnicodeString, which will be cleaned up later.

Change-Id: I0f7f630d55bc600eaa8700c8b48758ee6af2c3fb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292676
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-05-28 18:24:44 +00:00
Ben Wagner
ebebf6e2b5 Move SkParagraph bits into skparagraph directory.
This makes it more obvious that these files really are part of
SkParagraph and integrate with the Skia test framework and are not part
of core Skia. This is more like how Skottie is setup and helps prevent
misunderstandings about where additional files like this should go and
how the build should be structured.

Change-Id: Iaac060c97cffd2b0c29833c7b0403521d91bdb6a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292439
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-05-28 13:59:18 +00:00