Commit Graph

143 Commits

Author SHA1 Message Date
Lee Salzman
dd26a2555b Bug 1495661 - reuse the default UnscaledFontDWrite for variation fonts. r=jfkthame 2018-10-11 11:19:25 -04:00
Bas Schouten
3f601ce856 Bug 1479640: Restructure cleartype parameter code to run less frequently and only in the parent process. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D4784

--HG--
extra : moz-landing-system : lando
2018-09-13 18:59:27 +00:00
Jonathan Kew
6f42f167fb Bug 1490402 - Use UTF-8 strings (in place of UTF-16) for font family/face names in the system font list, to reduce memory footprint. r=lsalzman 2018-09-12 20:34:57 +01:00
Lee Salzman
e251ecb952 Bug 1460259 - Send synthetic oblique angle to WR. r=jfkthame 2018-07-04 10:56:40 -04:00
Xidorn Quan
d9975fe508 Bug 1458159 - Use rounding instead of ceiling on max{Ascent,Descent} for DWriteFont. r=jfkthame
The ceiling was introduced in bug 549190 for improve the consistency of
underline positioning. However, removing ceiling now doesn't seem to
regress the testcases in that bug, probably thanks to improvement in
other part.

The ceiling here causes us to have different font metrics than other
browsers on Windows, and can lead to webcompat issue. We also don't do
this for other backends. So it's probably better removing it in favor
of rounding.

There are several test changes:

* min-intrinsic-with-percents-across-elements.html changes result due to
  height of wrapping div in reference page depends on line height, so a
  fixed line height is set to work around the issue.

* 368020-1.html changes result because a slightly different line-height
  triggers bug 1462514. It is changed to use fixed line-height to work
  around the issue.

* 456147.xul is disabled because it compares XUL against HTML page, but
  XUL has different approach to position text in its elements than HTML.
  Specifically, XUL elements don't seem to respect line height while
  HTML elements do. The original line height in the file was probably
  chosen to make the HTML match XUL, so it seems to be non-trivial to
  fix it in a platform-independent way.

* sizing-orthog-{vlr,vrl}-in-htb-{008,020}.xht fails due to text in <p>
  after the testing block shifts 1px up for unknown reason.

MozReview-Commit-ID: 2WJG1AigWl1

--HG--
extra : source : 653c6b7480997c4e1dbead5f0441bc06a0605b7a
2018-05-22 11:43:30 +10:00
Noemi Erli
e380c579e9 Backed out changeset 1be70a3d127f (bug 1458159) for reftest failures in sizing-orthog-vlr-in-htb-008.xht on a CLOSED TREE 2018-05-22 04:23:47 +03:00
Xidorn Quan
98bfde7521 Bug 1458159 - Use rounding instead of ceiling on max{Ascent,Descent} for DWriteFont. r=jfkthame
The ceiling was introduced in bug 549190 for improve the consistency of
underline positioning. However, removing ceiling now doesn't seem to
regress the testcases in that bug, probably thanks to improvement in
other part.

The ceiling here causes us to have different font metrics than other
browsers on Windows, and can lead to webcompat issue. We also don't do
this for other backends. So it's probably better removing it in favor
of rounding.

There are several test changes:

* min-intrinsic-with-percents-across-elements.html changes result due to
  height of wrapping div in reference page depends on line height, so a
  fixed line height is set to work around the issue.

* 368020-1.html changes result because a slightly different line-height
  triggers bug 1462514. It is changed to use fixed line-height to work
  around the issue.

* 456147.xul is disabled because it compares XUL against HTML page, but
  XUL has different approach to position text in its elements than HTML.
  Specifically, XUL elements don't seem to respect line height while
  HTML elements do. The original line height in the file was probably
  chosen to make the HTML match XUL, so it seems to be non-trivial to
  fix it in a platform-independent way.

* sizing-orthog-{vlr,vrl}-in-htb-{008,020}.xht fails due to text in <p>
  after the testing block shifts 1px up for unknown reason.

MozReview-Commit-ID: 2WJG1AigWl1

--HG--
extra : rebase_source : 540e68ffff618a6dc3c14b3702b2c042988061a3
2018-05-01 15:18:55 +10:00
Andreea Pavel
5298f758aa Backed out changeset 5352d48512f7 (bug 1458159) for failing reftest min-intrinsic-with-percents-across-elements.html == min-intrinsic-with-percents-across-elements-ref.html on a CLOSED TREE 2018-05-21 13:00:19 +03:00
Xidorn Quan
d8a44ee949 Bug 1458159 - Use rounding instead of ceiling on max{Ascent,Descent} for DWriteFont. r=jfkthame
The ceiling was introduced in bug 549190 for improve the consistency of
underline positioning. However, removing ceiling now doesn't seem to
regress the testcases in that bug, probably thanks to improvement in
other part.

The ceiling here causes us to have different font metrics than other
browsers on Windows, and can lead to webcompat issue. We also don't do
this for other backends. So it's probably better removing it in favor
of rounding.

There are several test changes:

* min-intrinsic-with-percents-across-elements.html changes result due to
  height of wrapping div in reference page depends on line height, so a
  fixed line height is set to work around the issue.

* 368020-1.html changes result because a slightly different line-height
  triggers bug 1462514. It is changed to use fixed line-height to work
  around the issue.

* 456147.xul is disabled because it compares XUL against HTML page, but
  XUL has different approach to position text in its elements than HTML.
  Specifically, XUL elements don't seem to respect line height while
  HTML elements do. The original line height in the file was probably
  chosen to make the HTML match XUL, so it seems to be non-trivial to
  fix it in a platform-independent way.

* sizing-orthog-{vlr,vrl}-in-htb-{008,020}.xht fails due to text in <p>
  after the testing block shifts 1px up for unknown reason.

MozReview-Commit-ID: 2WJG1AigWl1

--HG--
extra : rebase_source : 6c61fa95a3b01e7b439be46a2498b4f893d8b84b
2018-05-01 15:18:55 +10:00
Jonathan Kew
e92b9e44cf Bug 1449605 - part 1 - Rearrange thebes font code so that the decision whether to apply synthetic-bold is deferred until actually instantiating a font, not made during the font-matching process. r=jwatt
This rearranges how synthetic-bold use is determined in the font selection
& rendering code. Previously, we would decide during the font-selection
algorithm whether we need to apply synthetic-bold to the chosen face, and
then pass that decision through the fontgroup (storing it in the FamilyFace
entries of the mFonts array there) down to the actual rendering code that
instantiates fonts from the faces (font entries) we've selected.

That became a problem for variation fonts because in the case of a user
font, we may not have downloaded the resource yet, so we just have a "user
font container" entry, which carries the descriptors from the @font-face
rule and will fetch the actual resource when needed. But in the case of a
@font-face rule without a weight descriptor, we don't actually know at
font-selection time whether the face will support "true" bold (via a
variation axis) or not, so we can't reliably make the right decision about
applying synthetic bold.

So we now defer that decision until we actually instantiate a platform font
object to shape/measure/draw text. At that point, we have the requested
style and we also have the real font resource, so we can easily determine
whether fake-bold is required.

(This patch should not result in any visible behavior change; that will
come in a second patch now that the architecture supports it.)
2018-05-01 10:30:50 +01:00
Jonathan Kew
9872150acc Bug 1454598 - part 2 - Allow variation fonts to record a weight range in gfxFontEntry, and update font-matching to handle ranges. r=jwatt 2018-04-25 07:18:23 +01:00
Jonathan Kew
7e27ba83c3 Backed out 4 changesets from bug 1454598 (26e036b1c703, bc910e36a7d7, bac001216577, 5af215d265b6) due to macOS 10.12 font issues. 2018-04-25 10:18:07 +01:00
Jonathan Kew
6ca182d055 Bug 1454598 - part 2 - Allow variation fonts to record a weight range in gfxFontEntry, and update font-matching to handle ranges. r=jwatt 2018-04-25 07:18:23 +01:00
Cosmin Sabou
dcacfcfc71 Backed out 2 changesets (bug 1454598) as requested by Mossop in developers channel. a=backout
Backed out changeset b673e87d6134 (bug 1454598)
Backed out changeset 072dc1504ce6 (bug 1454598)
2018-04-20 06:45:39 +03:00
Jonathan Kew
6f1e2a29b3 Bug 1454598 - part 2 - Allow variation fonts to record a weight range in gfxFontEntry, and update font-matching to handle ranges. r=jwatt 2018-04-19 13:28:13 +01:00
Jonathan Watt
1e7f76576a Bug 1436048 part 1 - Use a user defined type for font weight everywhere. r=jfkthame,emilio
--HG--
extra : rebase_source : 2e267ff99de6f52484e34ac15c39e5ca8b473394
2018-04-13 20:34:37 +01:00
Jonathan Kew
aaa8afd3af Bug 1435472 - Discard and re-create mAzureScaledFont if it was created with the wrong sUseClearType setting. r=bas 2018-03-20 13:46:40 +00:00
Jonathan Kew
483d8a0507 Bug 1430632 - Support OpenType variation fonts in the DirectWrite font back-end (on Win10 Fall Creators Update). r=lsalzman 2018-01-18 17:45:24 +00:00
Lee Salzman
1a23b6eab1 Bug 1400384 - support text writing modes with WebRender. r=gankro 2018-01-17 07:51:20 -05:00
Lee Salzman
7755d675bb Bug 1394568 - plumb synthetic italics flag through thebes and Moz2D into WebRender. r=gankro 2018-01-09 10:37:49 -05:00
Milan Sreckovic
099cfc4242 Bug 1423570: Use BaseRect access methods instead of member variables in gfx/ r=bas.schouten
MozReview-Commit-ID: ZGySgc9oP3

--HG--
extra : rebase_source : 23aadc10e9885002290155684b2c495780d979ce
2017-12-19 15:48:39 -05:00
Jonathan Kew
e264fbefb1 Bug 1416795 - Implement synthetic-oblique font rendering by applying a transform at gfxFont::Draw time, rather than setting it on the cairo font matrix. r=jrmuizel 2017-11-17 10:54:21 +00:00
Jonathan Kew
5f318d222b Bug 1334761 - Update ClearType usage at startup, and flush caches and reflow everything if it changes during the session. r=bas 2017-09-14 17:26:53 +01:00
Lee Salzman
24cb8efdec Bug 1385029 - remove virtual from gfxFont::GetCairoScaledFont. r=jfkthame
MozReview-Commit-ID: FNXL9aKtlKa
2017-08-07 16:20:48 -04:00
Lee Salzman
a21ad6d19e Bug 1385029 - require implementation of gfxFont::GetScaledFont and remove unnecessary gfxPlatform::GetScaledFontForFont. r=jfkthame
MozReview-Commit-ID: GP1Aekecb0s
2017-08-07 16:20:44 -04:00
Lee Salzman
2d696d5c34 Bug 1376026 - fix plumbing of DWrite parameters for Skia fonts to not depend on gfxPlatform. r=jrmuizel
MozReview-Commit-ID: 5K9201eCSv
2017-06-30 14:09:05 -04:00
Sebastian Hengst
522fc18c93 Backed out changeset 24421d72ba08 (bug 1376026) 2017-07-07 21:42:09 +02:00
Lee Salzman
ab6885d706 Bug 1376026 - fix plumbing of DWrite parameters for Skia fonts to not depend on gfxPlatform. r=jrmuizel
MozReview-Commit-ID: 5K9201eCSv
2017-06-30 14:09:05 -04:00
Carsten "Tomcat" Book
fbc9f302f1 Backed out changeset d09fb3a5cedf (bug 1376026) 2017-07-06 08:11:48 +02:00
Lee Salzman
edc6db4195 Bug 1376026 - fix plumbing of DWrite parameters for Skia fonts to not depend on gfxPlatform. r=jrmuizel 2017-06-30 14:09:05 -04:00
Jonathan Kew
3bcb26919c Bug 1365776 - Use the IDWriteFontFace1 interface if available to get glyph advances from DirectWrite more cheaply. r=jrmuizel 2017-05-19 22:25:28 +01:00
Jonathan Kew
4b5525bbf7 Bug 1362167 - Use strongly-typed enum classes instead of generic uint16_t fields for the gfxShapedText and gfxTextRun flags. r=jrmuizel 2017-05-04 22:27:05 +01:00
Lee Salzman
a168dcdbf3 Bug 1348980 - implement UnscaledFont API for Moz2D and thebes. r=jfkthame 2017-04-06 17:41:02 -04:00
Bas Schouten
47b62ee88c Bug 1325743: Cache Moz2D ClearType usage information in a way similar to Thebes. r=mchang
This patch makes sure content processes update their cleartype settings, as well as making sure Moz2D's idea of the ClearType settings are in sync with those of Thebes. If the two differ this can cause graphical glitches.

MozReview-Commit-ID: 94arUnBWoUy

--HG--
extra : rebase_source : d74b702fc63c019ce1c30bdc741ea3ed6da457cd
2017-01-04 20:26:17 +01:00
Wes Kocher
350eb06d4d Backed out changeset 84f4a96a130b (bug 1325743) for incredibly frequent Windows 7 VM reftest crashes in variable-supports-23.html a=backout
MozReview-Commit-ID: C1qQVYWpUUV
2017-01-10 13:52:23 -08:00
Carsten "Tomcat" Book
89882dc5f4 merge mozilla-inbound to mozilla-central a=merge 2017-01-10 12:11:31 +01:00
Bas Schouten
1e9ffde5c8 Bug 1325743: Cache Moz2D ClearType usage information in a way similar to Thebes. r=mchang
This patch makes sure content processes update their cleartype settings, as well as making sure Moz2D's idea of the ClearType settings are in sync with those of Thebes. If the two differ this can cause graphical glitches.

MozReview-Commit-ID: 94arUnBWoUy

--HG--
extra : rebase_source : d74b702fc63c019ce1c30bdc741ea3ed6da457cd
2017-01-04 20:26:17 +01:00
Daniel Holbert
eb14ae51cf Bug 1329670: Change gfxFont::CopyWithAntialiasOption to return UniquePtr instead of raw pointer. r=jfkthame
MozReview-Commit-ID: B5UNazyXPL2
2017-01-09 09:41:35 -08:00
Bas Schouten
1d78258aee Bug 1325199: Only read system parameters for ClearType when we receive a paint event. r=jrmuizel
MozReview-Commit-ID: EjQyCcdWXEc
2016-12-22 12:06:15 +01:00
Mason Chang
b844183f9d Bug 1309917 - Stop defaulting to system wide default fonts if no IDWriteFont exists. r=jfkthame 2016-10-12 15:53:04 -07:00
Mason Chang
4dc759d9fa Bug 1307220. Assert font file exists if using default font with skia. r=lsalzman 2016-10-10 16:43:39 -07:00
Mason Chang
196df029f8 Bug 1299903. Force GDI Classic rendering for specific fonts with skia on windows. r=lsalzman 2016-09-16 12:25:42 -07:00
Mason Chang
b4407fab22 Bug 1300025. Use embedded bitmaps in CJK fonts with skia on Windows. r=lsalzman 2016-09-08 09:34:10 -07:00
Jeremy Chen
16b102d35e Bug 1293210 - get cap height from DirectWrite backend. r=jfkthame
MozReview-Commit-ID: KC45V4pZZU1

--HG--
extra : rebase_source : 8f4716d2ddb308f37450c400cdfdd5fdf018e6e9
2016-08-18 17:43:54 +08:00
Jonathan Kew
48c59f0c3d Bug 1282248 - Declare a bunch of gfxTextRun measurement/drawing methods and related helpers as const. r=m_kato 2016-06-27 17:41:55 +01:00
Jonathan Kew
28a9e2cf14 Bug 1265452 - Remove use of nsAutoPtr from gfx/thebes. r=jrmuizel 2016-04-15 20:45:37 +01:00
Mason Chang
2e3ff601d6 Bug 842894 - Support DirectWrite using the Skia backend. r=bas 2016-01-06 11:35:04 -08:00
Bob Owen
7b7cad771e Bug 1156742 Part 2: Make gfx thebes/gl/2d work with UNICODE defined. r=bas, r=glandium 2016-01-05 10:08:56 +00:00
Nicholas Nethercote
06e901cb9f Bug 1231550 - Use DrawTarget instead of gfxContext and/or nsRenderingContext in many places in font/text code. r=jfkthame.
AutoTextRun now only needs a DrawTarget instead of an nsRenderingContext, and
similar nsRenderingContext/gfxContext-to-DrawTarget replacements can be
propagated a long way up the call graph. This patch replaces 93 occurrences of
nsRenderingContext and 135 occurrences of gfxContext with DrawTarget; that's
13% of them.

The patch is mostly plumbing changes. A couple of not-entirely-plumbing
changes:

- It adds a comment about the null check in
  gfxGlyphExtents::GetTightGlyphExtentsAppUnits().

- A couple of functions simply had an unused gfxContext or nsRenderingContext
  parameter removed, e.g. SetLineBreaks().

--HG--
extra : rebase_source : 8f56994bb4d254a86788b17ab2864ebc758a7e6b
2015-12-15 13:56:41 -08:00
Nicholas Nethercote
3493a38202 Bug 1232822 (part 6) - Move RefCairo() from gfxContext to gfxFont. r=jfkthame.
Because gfxContext will one day disappear, and gfxFont seems like a good place
to move it to.
2015-12-15 20:10:04 -08:00