Commit Graph

755 Commits

Author SHA1 Message Date
Jonathan Kew
5fb4a596fa bug 974575 - support color glyphs in cairo_image_surface's _composite_glyphs function. r=jrmuizel 2014-03-06 12:29:23 +00:00
Jonathan Kew
b1bced401f bug 974575 - correction for bad commit (a0f556f37fb7016aa304b7cf0e811c0d38f0b969) ported from upstream. r=jrmuizel 2014-03-06 12:29:23 +00:00
Jonathan Kew
db93ca8e58 bug 974575 - backport Behdad's patches for color bitmap glyph support from current cairo trunk. r=jrmuizel
* * *
[ft] Fix resizing of bitmap fonts
From b94a519aad3d5b50aa6de47ee16ee6a099de9791 Mon Sep 17 00:00:00 2001
Say, you were asking cairo for a font at 200px.  For bitmap-only fonts,
cairo was finding the closes strike size and using it.  If the strike
was at 20px, well, that's what you were getting.  We now scale that 20px
strike by a factor of 10 to get the correct size rendering.

Note that by itself this patch doesn't change much on the Linux desktop.
The reason is that the size you are interested in (eg. 200px) is lost by
fontconfig.  When you request a font at 200px, fontconfig returns a font
pattern that says 20px, and so the next layers thing you want a font at
20px.  To address that, one also needs a piece of fontconfig config that
puts the 200 back into the pixelsize.  Something like this:

<match target="font">
  <test name="scalable" mode="eq">
    <bool>false</bool>
  </test>
  <edit name="pixelsize" mode="assign">
    <times>
      <name>size</name>
      <name>dpi</name>
      <double>0.0138888888888</double> <!--1/72.-->
    </times>
  </edit>
</match>

I'm going to try to upstream this config so it will be enabled by
default.  The config can be a bit smarter.  For example, if
metricshinting is enabled and the size difference is small, we may as
well not scale.

The nice thing about this is that the configuration of whether and when
to scale bitmaps will be done in fontconfig, not cairo / Qt / ... code.
---
* * *
[FT] Prefer downscaling bitmap glyphs to upscaling

From a8f1b456db744e33a10b2301df03528787e5b1ca Mon Sep 17 00:00:00 2001
Say, you have bitmap strikes for sizes 50ppem and 100ppem.
To render at 60ppem, it's much better to downscale the 100ppem
bitmap than upscale 50ppem one.  Prefer downscaling.
---
* * *
[ft] I meant fabs(), not abs()

From 13bd8d09b44e50649f6fc4d58d036bc32c1d5c5b Mon Sep 17 00:00:00 2001
---
* * *
[ft] Fix memory bug in copying bitmaps

From a0f556f37fb7016aa304b7cf0e811c0d38f0b969 Mon Sep 17 00:00:00 2001
---
* * *
[ft] Fix wrong assumptions

From e738079302a968b7b1fb9101cd4d92a8887bedce Mon Sep 17 00:00:00 2001
If subpixel rendering is enabled, but FT returns a 8bit gray bitmap
(perhaps because the font has 8bit embedded bitmaps) we were hitting
the assertions because the assumptions made were wrong.  Fix up.
---
* * *
Towards support loading color glyphs from FreeType

From 2cc353c3dbe01b4d8f65d6de800f2b1d6004a1c2 Mon Sep 17 00:00:00 2001
See comments.
---
* * *
Support 2bit and 4bit embedded bitmaps

From 9444ef09ccde2735258cc1bd2f1912119a32dd88 Mon Sep 17 00:00:00 2001
---
* * *
[ft] Fix math

From 7d26341072b13a78d4b3fe58779057ac020be487 Mon Sep 17 00:00:00 2001
---
* * *
[ft] Add missing include

From 0554d76402321b25cc952180e4d19436a9038d1a Mon Sep 17 00:00:00 2001
---
* * *
[ft] Fix alignment

From 34a747e7bdeba1cfe17318f80fbe6720d47bc023 Mon Sep 17 00:00:00 2001
---
* * *
[ft] Ensure alignment of bitmaps received from FreeType

From 46d9db96d460fea72f0420102e8a90c6a7231f79 Mon Sep 17 00:00:00 2001
---
2014-03-06 12:29:22 +00:00
Ehsan Akhgari
4788926251 Bug 979816 - Backout bug 977701 because of a Talos regression
Landed on a CLOSED TREE
2014-03-05 15:18:09 -05:00
Ryan VanderMeulen
7c3c52f385 Backed out changesets 23ab61f4bba1, d0f6a0106f43, and 9b656ca5ec50 (bug 974575) for Linux crashtest asserts. 2014-03-05 15:23:26 -05:00
Jonathan Kew
a9774efd8a bug 974575 - support color glyphs in cairo_image_surface's _composite_glyphs function. r=jrmuizel 2014-03-05 18:33:21 +00:00
Jonathan Kew
c74d67db15 bug 974575 - correction for bad commit (a0f556f37fb7016aa304b7cf0e811c0d38f0b969) ported from upstream. r=jrmuizel 2014-03-05 18:33:21 +00:00
Jonathan Kew
dc59002ceb bug 974575 - backport Behdad's patches for color bitmap glyph support from current cairo trunk. r=jrmuizel
* * *
[ft] Fix resizing of bitmap fonts
From b94a519aad3d5b50aa6de47ee16ee6a099de9791 Mon Sep 17 00:00:00 2001
Say, you were asking cairo for a font at 200px.  For bitmap-only fonts,
cairo was finding the closes strike size and using it.  If the strike
was at 20px, well, that's what you were getting.  We now scale that 20px
strike by a factor of 10 to get the correct size rendering.

Note that by itself this patch doesn't change much on the Linux desktop.
The reason is that the size you are interested in (eg. 200px) is lost by
fontconfig.  When you request a font at 200px, fontconfig returns a font
pattern that says 20px, and so the next layers thing you want a font at
20px.  To address that, one also needs a piece of fontconfig config that
puts the 200 back into the pixelsize.  Something like this:

<match target="font">
  <test name="scalable" mode="eq">
    <bool>false</bool>
  </test>
  <edit name="pixelsize" mode="assign">
    <times>
      <name>size</name>
      <name>dpi</name>
      <double>0.0138888888888</double> <!--1/72.-->
    </times>
  </edit>
</match>

I'm going to try to upstream this config so it will be enabled by
default.  The config can be a bit smarter.  For example, if
metricshinting is enabled and the size difference is small, we may as
well not scale.

The nice thing about this is that the configuration of whether and when
to scale bitmaps will be done in fontconfig, not cairo / Qt / ... code.
---
* * *
[FT] Prefer downscaling bitmap glyphs to upscaling

From a8f1b456db744e33a10b2301df03528787e5b1ca Mon Sep 17 00:00:00 2001
Say, you have bitmap strikes for sizes 50ppem and 100ppem.
To render at 60ppem, it's much better to downscale the 100ppem
bitmap than upscale 50ppem one.  Prefer downscaling.
---
* * *
[ft] I meant fabs(), not abs()

From 13bd8d09b44e50649f6fc4d58d036bc32c1d5c5b Mon Sep 17 00:00:00 2001
---
* * *
[ft] Fix memory bug in copying bitmaps

From a0f556f37fb7016aa304b7cf0e811c0d38f0b969 Mon Sep 17 00:00:00 2001
---
* * *
[ft] Fix wrong assumptions

From e738079302a968b7b1fb9101cd4d92a8887bedce Mon Sep 17 00:00:00 2001
If subpixel rendering is enabled, but FT returns a 8bit gray bitmap
(perhaps because the font has 8bit embedded bitmaps) we were hitting
the assertions because the assumptions made were wrong.  Fix up.
---
* * *
Towards support loading color glyphs from FreeType

From 2cc353c3dbe01b4d8f65d6de800f2b1d6004a1c2 Mon Sep 17 00:00:00 2001
See comments.
---
* * *
Support 2bit and 4bit embedded bitmaps

From 9444ef09ccde2735258cc1bd2f1912119a32dd88 Mon Sep 17 00:00:00 2001
---
* * *
[ft] Fix math

From 7d26341072b13a78d4b3fe58779057ac020be487 Mon Sep 17 00:00:00 2001
---
* * *
[ft] Add missing include

From 0554d76402321b25cc952180e4d19436a9038d1a Mon Sep 17 00:00:00 2001
---
* * *
[ft] Fix alignment

From 34a747e7bdeba1cfe17318f80fbe6720d47bc023 Mon Sep 17 00:00:00 2001
---
* * *
[ft] Ensure alignment of bitmaps received from FreeType

From 46d9db96d460fea72f0420102e8a90c6a7231f79 Mon Sep 17 00:00:00 2001
---
2014-03-05 18:33:21 +00:00
Ehsan Akhgari
f5dd4e8ef8 Bug 978594 - Part 3: Port some of the per-source flags to moz.build; r=glandium
--HG--
extra : rebase_source : fe4cd059eddda221af420e1517250772816d7ee8
2014-03-02 15:41:32 -05:00
Phil Ringnalda
2e6a1fd51c Back out bbd7b1da5d36:b0d1c4456b73 (bug 974575) and 6e8140ae4961 (bug 969814) for ASan bustage 2014-03-03 22:40:07 -08:00
Jonathan Kew
ebd14f5c7a bug 974575 - support color glyphs in cairo_image_surface's _composite_glyphs function. r=jrmuizel 2014-03-04 05:37:40 +00:00
Jonathan Kew
fe145a977c bug 974575 - backport Behdad's patches for color bitmap glyph support from current cairo trunk. r=jrmuizel
* * *
[ft] Fix resizing of bitmap fonts
From b94a519aad3d5b50aa6de47ee16ee6a099de9791 Mon Sep 17 00:00:00 2001
Say, you were asking cairo for a font at 200px.  For bitmap-only fonts,
cairo was finding the closes strike size and using it.  If the strike
was at 20px, well, that's what you were getting.  We now scale that 20px
strike by a factor of 10 to get the correct size rendering.

Note that by itself this patch doesn't change much on the Linux desktop.
The reason is that the size you are interested in (eg. 200px) is lost by
fontconfig.  When you request a font at 200px, fontconfig returns a font
pattern that says 20px, and so the next layers thing you want a font at
20px.  To address that, one also needs a piece of fontconfig config that
puts the 200 back into the pixelsize.  Something like this:

<match target="font">
  <test name="scalable" mode="eq">
    <bool>false</bool>
  </test>
  <edit name="pixelsize" mode="assign">
    <times>
      <name>size</name>
      <name>dpi</name>
      <double>0.0138888888888</double> <!--1/72.-->
    </times>
  </edit>
</match>

I'm going to try to upstream this config so it will be enabled by
default.  The config can be a bit smarter.  For example, if
metricshinting is enabled and the size difference is small, we may as
well not scale.

The nice thing about this is that the configuration of whether and when
to scale bitmaps will be done in fontconfig, not cairo / Qt / ... code.
---
* * *
[FT] Prefer downscaling bitmap glyphs to upscaling

From a8f1b456db744e33a10b2301df03528787e5b1ca Mon Sep 17 00:00:00 2001
Say, you have bitmap strikes for sizes 50ppem and 100ppem.
To render at 60ppem, it's much better to downscale the 100ppem
bitmap than upscale 50ppem one.  Prefer downscaling.
---
* * *
[ft] I meant fabs(), not abs()

From 13bd8d09b44e50649f6fc4d58d036bc32c1d5c5b Mon Sep 17 00:00:00 2001
---
* * *
[ft] Fix memory bug in copying bitmaps

From a0f556f37fb7016aa304b7cf0e811c0d38f0b969 Mon Sep 17 00:00:00 2001
---
* * *
[ft] Fix wrong assumptions

From e738079302a968b7b1fb9101cd4d92a8887bedce Mon Sep 17 00:00:00 2001
If subpixel rendering is enabled, but FT returns a 8bit gray bitmap
(perhaps because the font has 8bit embedded bitmaps) we were hitting
the assertions because the assumptions made were wrong.  Fix up.
---
* * *
Towards support loading color glyphs from FreeType

From 2cc353c3dbe01b4d8f65d6de800f2b1d6004a1c2 Mon Sep 17 00:00:00 2001
See comments.
---
* * *
Support 2bit and 4bit embedded bitmaps

From 9444ef09ccde2735258cc1bd2f1912119a32dd88 Mon Sep 17 00:00:00 2001
---
* * *
[ft] Fix math

From 7d26341072b13a78d4b3fe58779057ac020be487 Mon Sep 17 00:00:00 2001
---
* * *
[ft] Add missing include

From 0554d76402321b25cc952180e4d19436a9038d1a Mon Sep 17 00:00:00 2001
---
* * *
[ft] Fix alignment

From 34a747e7bdeba1cfe17318f80fbe6720d47bc023 Mon Sep 17 00:00:00 2001
---
* * *
[ft] Ensure alignment of bitmaps received from FreeType

From 46d9db96d460fea72f0420102e8a90c6a7231f79 Mon Sep 17 00:00:00 2001
---
2014-03-04 05:37:40 +00:00
Ehsan Akhgari
baaa63a87b Bug 978594 - Part 1: Remove the old code to support MSVC 2005 and 2008 from gfx/cairo/libpixman/src/Makefile.in; r=glandium 2014-03-03 22:47:56 -05:00
Ehsan Akhgari
83a695ee85 Bug 977701 - Move skia, cairo and pixman to libxul; r=jrmuizel 2014-02-27 21:14:54 -05:00
Oleg Romashin
79dd3f3972 Bug 974335 - Refactor Qt Widget Backend implementation. Qt Only changes NPDB. r=romaxa
--HG--
rename : dom/system/unix/Makefile.in => dom/system/qt/Makefile.in
rename : dom/system/unix/QTMLocationProvider.cpp => dom/system/qt/QTMLocationProvider.cpp
rename : dom/system/unix/QTMLocationProvider.h => dom/system/qt/QTMLocationProvider.h
rename : dom/system/unix/nsHapticFeedback.cpp => dom/system/qt/QtHapticFeedback.cpp
rename : dom/system/unix/nsHapticFeedback.h => dom/system/qt/QtHapticFeedback.h
rename : dom/system/unix/moz.build => dom/system/qt/moz.build
2014-02-20 18:09:02 -08:00
Ehsan Akhgari
fa370e4e9f Bug 973143 - Move some variables to moz.build; r=glandium
--HG--
extra : rebase_source : b767d6cb044efa50844129df80864b9e802b51bd
2014-02-18 02:02:00 -05:00
Ehsan Akhgari
f6787f583a Backed out changeset 5ecd0339a087 (bug 973143) because of a possible Talos regression 2014-02-18 14:27:51 -05:00
Ehsan Akhgari
5d49ab766c Bug 973143 - Move some variables to moz.build; r=glandium 2014-02-18 02:02:00 -05:00
Ehsan Akhgari
82ebdc883f Bug 969757 - Remove the dead code in our tree which pretends to support OS/2; r=roc,mcmanus,gps,jorendorf,bsmedberg sr=bsmedberg 2014-02-10 17:57:01 -05:00
Jonathan Kew
da1ccefc45 bug 966021 - fix load_truetype_table in the cairo dwrite font backend. r=bas 2014-02-01 09:24:58 +00:00
Karl Tomlinson
239287c0b9 b=929451 don't use subpixel aa for ft fonts on surfaces that don't support it r=roc
Also:
* Prefer subpixel order provided by the surface over that from the font face.
* Allow font face options to turn off subpixel aa.

--HG--
extra : transplant_source : %02bD%22G%CE%95%C9%8D%86%8A%B9u%23_nHA%C4%11
2014-01-28 18:14:23 +13:00
Brian Smith
7afb7d46ab Bug 958906: Remove reliance on implicit conversion from enum types to integers to fix VS2013 build bustage, r=bjacob
--HG--
extra : rebase_source : 2e197e5f74cf20eae6f9b1801056d0438e527696
2014-01-11 22:26:20 -08:00
Benoit Jacob
873406e3f0 Bug 958375 - 8/9 - Make remaining Moz2D enums typed - r=Bas
Specifically:
  r=Bas for manual changes
  f=Bas for automatic changes
See attachments on the bug for the specific breakdown.
2014-01-10 14:06:17 -05:00
Jeff Muizelaar
a76d484d60 Bug 953334. Clear the clip on the surface when we get a new DC. r=BenWa
Currently we can think that we have a clip set on the DC when we actually
don't. Calling _cairo_win32_surface_set_clip_region(NULL) clears this so that
when we call it with the a region we will set it properly on the new DC that
doesn't have the clip set on it.

--HG--
extra : rebase_source : c9ca3d57bbd99aacdee5c0b3f581376792cd1893
2014-01-08 16:02:22 -05:00
Martin Stransky
f09c774110 Bug 941595 - Build with system-cairo is broken. r=glandium 2013-12-10 10:37:03 -05:00
Ms2ger
b2a48b6753 Bug 937224 - Part a: Move LOCAL_INCLUDES to moz.build in gfx/; r=mshal 2013-11-28 15:10:38 +01:00
Mike Hommey
fdd3247a81 Bug 874266 - Move all DEFINES that can be moved to moz.build. r=mshal 2013-11-27 22:55:07 +09:00
Mike Hommey
2f727b6d62 Backout changeset 3fd4b546eed4 (bug 874266) and changeset a35d2e3a872f (bug 942043) for ASAN build bustage and Windows test bustage
--HG--
extra : amend_source : f20d09aeff1c8b5cbd0f1d24c7ce04e86f3aed1d
2013-11-28 14:24:05 +09:00
Mike Hommey
b038245b8d Bug 874266 - Move all DEFINES that can be moved to moz.build. r=mshal 2013-11-28 13:08:16 +09:00
Benoit Girard
08040eea2c Bug 940178 - Build cairo in unified mode. r=ehsan
--HG--
extra : rebase_source : b24a1e1f1384c78f0d09d84c573d11e57024b43a
2013-11-19 10:55:02 -05:00
Jeff Muizelaar
6da588e57d Bug 845874. Switch to Y-X banded regions. r=roc
Previously our region code was just a simple y,x sorted list of
non-intersecting rectangles. This can cause us to have simple regions
represented in a complex unoptimizable way.

Switching to pixman regions gives us a canonical region implementation.

There are some cases when this can cause performance regressions.

For example, with the old region code we end up with this region:
http://people.mozilla.org/~jmuizelaar/region-pre.html
which is represented like this:
http://people.mozilla.org/~jmuizelaar/region-post.html
with the new code.

We call SimplifyOutward(4) on this. With old regions we can't simplify it so we
end up taking the bounds and get 1 rect. With the new regions we have only 3
rects to start and so we do nothing. The difference between 3 rects and 1 rect
cause D2D to do a PushLayer() instead of a ClipRect() and that seems to be the
causes for the regression.

--HG--
extra : rebase_source : 65e0d29d67b51a3780448eaecfde33dbcb6b99b1
2013-11-18 13:01:54 -05:00
Mike Hommey
931cb49886 Bug 939632 - Remove LIBRARY_NAME for leaf libraries. r=gps
Landing on a CLOSED TREE.
2013-11-19 11:50:54 +09:00
Mike Hommey
9ec00225de Bug 939622 - Remove LIBXUL_LIBRARY for intermediate libs that end up in gkmedias. r=gps
What LIBXUL_LIBRARY does is:
  - Imply FORCE_STATIC_LIB
  - Build with -DIMPL_LIBXUL
  - Build with -DMOZILLA_INTERNAL_API

Those intermediate libs that end up in gkmedias and have LIBXUL_LIBRARY defined
in their moz.build are all third party code (or handled like third party code).
Besides FORCE_STATIC_LIB, none of the side effects of LIBXUL_LIBRARY should be
needed.
2013-11-19 11:47:49 +09:00
Mike Hommey
f0d1cd1e10 Bug 939044 - Remove most definitions of MODULE. r=mshal 2013-11-19 11:47:39 +09:00
Mike Hommey
f81885e53b Bug 935881 - Use FINAL_LIBRARY for all (fake) libraries that end up linked in a single other library. r=gps 2013-11-19 11:47:14 +09:00
Benoit Girard
c7f1cf4137 Bug 918671 - Fix cairo clipping bug when nesting clips. r=jrmuizel 2013-11-12 19:11:50 +00:00
Mike Hommey
f255cb180f Bug 870406 part n - Move more CSRCS to moz.build. r=mshal 2013-11-01 10:30:45 +09:00
Bas Schouten
7e5d02ba0d Bug 811002 - Part 1: Properly apply CTM when executing win32 printing surface paints. r=jrmuizel 2013-10-25 14:50:29 +00:00
Mike Hommey
f1c0c07862 Bug 929905 - Consolidate sources in moz.build. r=gps 2013-10-25 08:23:05 +09:00
Mike Hommey
80c623bb6a Bug 921492 - Make StrictOrderingOnAppendList use actual alphabetical sorting. r=mshal,r=gps 2013-10-24 08:05:43 +09:00
Jacek Caban
4825375833 Bug 919479 - cairo fails to compile on mingw r=BenWa 2013-09-24 10:39:58 +02:00
Bas Schouten
22012e15a2 Bug 911393 - Do not fallback for EXTEND_PAD when not needed. r=jrmuizel 2013-09-19 17:23:30 +12:00
Wes Kocher
b03b0b7668 Backed out 5 changesets (bug 907926, bug 911393, bug 917703) due to OSX reftest bustage during an unrelated CLOSED TREE
Backed out changeset 94a6733b01dc (bug 907926)
Backed out changeset 44108fb6f7cc (bug 917703)
Backed out changeset f2dd2a27af69 (bug 911393)
Backed out changeset fdb0d1053128 (bug 907926)
Backed out changeset b3616b786e8f (bug 907926)
2013-09-19 17:56:18 -07:00
Bas Schouten
38dd10b11a Bug 911393 - Do not fallback for EXTEND_PAD when not needed. r=jrmuizel 2013-09-19 17:23:30 +12:00
Jeff Muizelaar
a86f06f097 Bug 914195. Improve type safety in cairo_win32_surface_create_with_d3dsurface9. r=benwa
This avoids a crash by writing to d3d9surface member on surfaces
that are not win32

--HG--
extra : rebase_source : 0aa7a67151c8d30f0b57e50a1f8570abd18081ca
2013-09-13 13:39:38 -04:00
Mike Hommey
05b3f24e0e Bug 912293 - Remove now redundant boilerplate from Makefile.in. r=gps 2013-09-05 09:01:46 +09:00
Benoit Girard
68543ba60b Bug 907544 - Pass the D3DSurface9 down into Cairo for LockRect. r=jrmuizel
--HG--
extra : rebase_source : 71c0f776360435d242987ffd3e2cbab8a3535c67
2013-09-04 16:53:54 -04:00
Gregory Szorc
4672bbb630 Bug 896797 - Part 2: Don't list autogenerated files in EXPORTS; r=glandium 2013-09-03 20:28:05 -07:00
Phil Ringnalda
c1c484bd50 Back out ce03cc2994aa:ae9f95fc1136 (bug 896797) for SpiderMonkey shell build bustage
CLOSED TREE
2013-09-03 23:21:30 -07:00
Gregory Szorc
fab628e981 Bug 896797 - Part 2: Don't list autogenerated files in EXPORTS; r=glandium 2013-09-03 20:28:05 -07:00