Commit Graph

22917 Commits

Author SHA1 Message Date
Mason Chang
21793bcce5 Bug 1290323. Write alpha values for plugin surfaces when using the Skia backend. r=jrmuizel 2016-08-05 10:29:12 -07:00
Carsten "Tomcat" Book
90f6c2d3fd Backed out changeset 02d76f158f3d (bug 1259571) for talos xperf regressions
--HG--
rename : gfx/thebes/DeviceManagerDx.cpp => gfx/thebes/DeviceManagerD3D11.cpp
rename : gfx/thebes/DeviceManagerDx.h => gfx/thebes/DeviceManagerD3D11.h
2016-08-08 11:53:51 +02:00
Sotaro Ikeda
41a9daf725 Bug 1259571 - Try tearing-free drawing with GDI r=dvander,mattwoodrow
--HG--
rename : gfx/thebes/DeviceManagerD3D11.cpp => gfx/thebes/DeviceManagerDx.cpp
rename : gfx/thebes/DeviceManagerD3D11.h => gfx/thebes/DeviceManagerDx.h
2016-08-07 23:54:12 -07:00
Lee Salzman
ca87957544 Bug 1200684 - revise Skia row blits to preserve color when blended against itself. r=mchang
MozReview-Commit-ID: Enz05s8vGuI
2016-08-05 19:50:49 -04:00
Mason Chang
197188c032 Bug 1292378 - VerifyRGBXFormat has an incorrect width calculation. r=lsalzman 2016-08-05 10:26:33 -07:00
Carsten "Tomcat" Book
a826042a1d Merge mozilla-central to mozilla-inbound 2016-08-05 12:03:44 +02:00
Carsten "Tomcat" Book
cf611bec79 merge mozilla-inboudn to mozilla-central a=merge 2016-08-05 12:01:14 +02:00
Andrew Comminos
6417a88066 Bug 1292326 - Let layers.acceleration.force-enabled apply to the OPENGL_COMPOSITING feature. r=jrmuizel
MozReview-Commit-ID: 2Lx4CVOao6S

--HG--
extra : rebase_source : b7d3ff19ab2e219ac78a681d7a7785f2f6b57abe
2016-08-04 16:15:20 -04:00
David Anderson
cf5f37f7c3 Add BrowserTabsRemoteAutostart to gfxVars. (bug 1288259 part 6, r=jrmuizel)
--HG--
extra : rebase_source : 4e9dce46b658ecf7a13afaa2e9bb1ba35714c38f
2016-08-04 11:33:44 -07:00
David Anderson
27679a9d30 Move UseXRender from gfxPlatformGtk to gfxVars. (bug 1288259 part 5, r=jrmuizel)
--HG--
extra : rebase_source : e2f8337fe9063ba4bd316c5ae4cb6b475f70d36f
2016-08-04 11:33:44 -07:00
David Anderson
bf733b4fbb Add the 2D content backend to gfxVars. (bug 1288259 part 4, r=jrmuizel)
--HG--
extra : rebase_source : e805a138c71963f4f80ec218d9be05fde6544f02
2016-08-04 11:33:44 -07:00
David Anderson
456bcd0248 Move TileSize from gfxPlatform to gfxVars. (bug 1288259 part 3, r=jrmuizel)
--HG--
extra : rebase_source : 5a48bb72b10c8d9c1c5c96b8d2076a6d33cabc24
2016-08-04 11:33:43 -07:00
David Anderson
9e49bc37bb Introduce gfxVars for sharing graphics variables across processes. (bug 1288259 part 2, r=jrmuizel,billm)
--HG--
extra : rebase_source : cbac742f7165a2fbdec3e4d1179c9ed49324579f
2016-08-04 11:33:42 -07:00
Markus Stange
ebb461c874 Bug 1012752 - Snap scrolled area to layer pixels. r=tnikkel
We want the maximum scroll position to be aligned with layer pixels. That way
we don't have to re-rasterize the scrolled contents once scrolling hits the
edge of the scrollable area.

Here's how we determine the maximum scroll position: We get the scroll port
rect, snapped to layer pixels. Then we get the scrolled rect and also snap
that to layer pixels. The maximum scroll position is set to the difference
between right/bottom edges of these rectangles.
Now the scrollable area is computed by adding this maximum scroll position
to the unsnapped scroll port size.
The underlying idea here is: Pretend we have overflow:visible so that the
scrolled contents start at (0, 0) relative to the scroll port and spill over
the scroll port edges. When these contents are rendered, their rendering is
snapped to layer pixels. We want those exact pixels to be accessible by
scrolling.

This way of computing the snapped scrollable area ensures that, if you scroll
to the maximum scroll position, the right/bottom edges of the rendered
scrolled contents line up exactly with the right/bottom edges of the scroll
port. The scrolled contents are neither cut off nor are they moved too far.
(This is something that no other browser engine gets completely right, see the
testcase in bug 1012752.)

There are also a few disadvantages to this solution. We snap to layer pixels,
and the size of a layer pixel can depend on the zoom level, the document
resolution, the current screen's scale factor, and CSS transforms. The snap
origin is the position of the reference frame. So a change to any of these
things can influence the scrollable area and the maximum scroll position.
This patch does not make us adjust the current scroll position in the event
that the maximum scroll position changes such that the current scroll position
would be out of range, unless there's a reflow of the scrolled contents. This
means that we can sometimes render a slightly inconsistent state where the
current scroll position exceeds the maximum scroll position. We can fix this
once it turns out to be a problem; I doubt that it will be a problem because
none of the other browsers seems to prevent this problem either.

The size of the scrollable area is exposed through the DOM properties
scrollWidth and scrollHeight. At the moment, these are integer properties, so
their value is rounded to the nearest CSS pixel. Before this patch, the
returned value would always be within 0.5 CSS pixels of the value that layout
computed for the content's scrollable overflow based on the CSS styles of the
contents.
Now that scrollWidth and scrollHeight also depend on pixel snapping, their
values can deviate by up to one layer pixel from what the page might expect
based on the styles of the contents. This change requires a few changes to
existing tests.
The fact that scrollWidth and scrollHeight can change based on the position of
the scrollable element and the zoom level / resolution may surprise some web
pages. However, this also seems to happen in Edge. Edge seems to always round
scrollWidth and scrollHeight upwards, possibly to their equivalent of layout
device pixels.

MozReview-Commit-ID: 3LFV7Lio4tG

--HG--
extra : rebase_source : 3e4e0b60493397e61283aa1d7fd93d7c197dec29
extra : source : d43c2d5e87f31ff47d7f3ada66c3f5f27cef84a9
2016-08-04 23:51:58 -04:00
Sotaro Ikeda
0ca92913eb Bug 1275441 - Use libyuv for scaling YUV color conversion r=jrmuizel 2016-08-04 19:30:01 -07:00
Miko Mynttinen
9ea7cd8eb6 Bug 1291490 - File gfx/qcms/transform_util.h is missing a header. r=bgirard
Include the missing math.h header.

MozReview-Commit-ID: BozHU59BGkF

--HG--
extra : transplant_source : %02%95%3F-k%FF%BA_%C7%1CU%CBU%29c%D7%82%9F%04J
2016-08-02 15:41:56 -07:00
Ethan Lin
41b10604fb Bug 1290628 - Change the assertion rule to prevent assert with large number. r=lsalzman 2016-08-02 19:47:00 +02:00
James Willcox
0fbdac5122 Bug 1255628 - Remove AndroidNativeWindow, as we can use the NDK functions directly now r=rbarker 2016-08-04 09:23:34 -05:00
Carsten "Tomcat" Book
389a3e0817 merge mozilla-inbound to mozilla-central a=merge
--HG--
rename : mobile/android/base/java/org/mozilla/gecko/GeckoAppShell.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java
rename : mobile/android/base/java/org/mozilla/gecko/gfx/GeckoLayerClient.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
rename : mobile/android/base/java/org/mozilla/gecko/gfx/LayerRenderer.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/LayerRenderer.java
rename : mobile/android/base/java/org/mozilla/gecko/gfx/PanningPerfAPI.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/PanningPerfAPI.java
2016-08-04 15:55:50 +02:00
Carsten "Tomcat" Book
03f2893f26 Backed out changeset 5b940f1bf535 (bug 1289829) for reftest failures 2016-08-04 09:58:10 +02:00
Sotaro Ikeda
4bf4a29dce Bug 1289829 - Change mask SurfaceSize calculation r=mattwoodrow 2016-08-03 19:00:19 -07:00
Lee Salzman
658901461a Bug 1291856 - push clip before drawing GTK3 widgets. r=acomminos
MozReview-Commit-ID: 84Y8sBg7NzF
2016-08-03 20:24:39 -04:00
Emilio Cobos Álvarez
e1e6b574d9 Bug 1288938: layout: Move the GlyphObserver to the text run instead of the frame. r=jfkthame
MozReview-Commit-ID: KphTCkcZeid
2016-08-03 10:53:37 -07:00
Andrew Comminos
b8d09bb817 Bug 1291845 - Use the compositor X display on the GLX VSync thread. r=lsalzman
MozReview-Commit-ID: ZC5MJd0BUJ

--HG--
extra : rebase_source : a8c035a02355c2dfa24a28ba125ddb4b13304e3a
2016-08-03 15:59:15 -04:00
Alexandre Lissy
0af5b943b6 Bug 1284674 - Remove NUWA r=cyu
MozReview-Commit-ID: GyMRNzOBKw6

--HG--
extra : rebase_source : 293af1cd55f2035ce6a99f4ebf144059c32a2b8f
2016-08-02 14:54:00 +02:00
Nathan Froyd
e53dd1c5f7 Bug 1290160 - followup to fix static analysis bustage on a CLOSED TREE; r=me 2016-08-03 17:17:22 -04:00
Nathan Froyd
6a26598a10 Bug 1290160 - reduce codesize required by gfxPrefs; r=milan
Every gfxPrefs::PrefTemplate template declares its own virtual function
overrides for functions declared in gfxPrefs::Pref.  The compiler must
therefore create separate copies of each of these virtual functions when
it instantiates PrefTemplate.  Since several of these virtual functions
only depend on the template parameter T, the type of the pref, many
instantiations of the functions are identical.  The duplicate functions
would normally be merged by identical code folding performed in the
linker, but since these are virtual functions and therefore have their
addresses taken (to be stored in the class's vtable), the linker (at
least for the settings we use for identical code folding) cannot fold
duplicated functions together.

Therefore, we have to do the de-duplication ourselves, by creating an
intermediate templated base class that only depends on the type of the
pref.  With this class, only three copies of each virtual function will
be created (one each for bools, floats, and ints).  We sneak in
GetLiveValue() into this base class for another small codesize win, even
though it's not a virtual function.
2016-08-03 17:02:33 -04:00
Kartikaya Gupta
6962e151a2 Bug 1273356 - Remove the unused and incorrect ComputeRenderIntegrity codepath for computing checkerboard. r=rbarker
MozReview-Commit-ID: 4i1rmeqrkZ1
2016-08-03 11:59:08 -04:00
Mason Chang
25944ce750 Bug 942688 - Draw Cocoa Widget without assuming DrawTargetCG. r=mstange 2016-08-03 07:53:12 -07:00
Matt Woodrow
80d8ecc1fd Bug 1284672 - Try use an exsiting D3D11 device for video rather than creating new ones. r=dvander
--HG--
extra : rebase_source : 16208d3a63ea64e824d283f57c8f53c958900de6
2016-08-02 18:46:27 +12:00
Matt Woodrow
51b6bd9f58 Bug 1289640 - Part 6: Allow access to the D3D11 content device from other threads. r=dvander
--HG--
extra : rebase_source : 63d31cb207e6d8903fb0bef268c4d1a1a24bf11f
2016-08-03 15:28:18 +12:00
Matt Woodrow
2254f8e498 Bug 1289640 - Part 5: Delete the D3D11 image bridge device since it no longer has any callers. r=dvander
--HG--
extra : rebase_source : 8ed9418b70d889f8544e23cd624925835e62e9dd
2016-08-02 17:58:17 +12:00
Matt Woodrow
2c65f7fdb0 Bug 1289640 - Part 4: Make SourceSurfaceImage::GetTextureClient use the threadsafe upload with D3D11 so that we no longer rely on having a separate device. r=nical
--HG--
extra : rebase_source : aa63efd52e1b013251392e3bd4ec29af0e1286f0
2016-08-02 17:57:41 +12:00
Matt Woodrow
cd24a38c5a Bug 1289640 - Part 3: Add a new constructor for D3D11TextureData that does threadsafe uploading. r=Bas
--HG--
extra : rebase_source : 5a57cf9addc68025cdaa13458c10ade3686bbec4
2016-08-02 17:55:44 +12:00
Matt Woodrow
7b18f355cb Bug 1289640 - Part 2: Stop using the D3D11 immediate context to upload texture data in IMFYCbCrImage and stick to threadsafe APIs so that we can use the content device. r=Bas
--HG--
extra : rebase_source : 1186b758656f07ef786f7d182a6474b050b9367e
2016-08-02 17:53:06 +12:00
Matt Woodrow
369e4deebe Bug 1289640 - Part 1: Make SharedSurfaceANGLE code use the content D3D11 device since we should only ever run on the main thread and would have used this device already. r=jgilbert
--HG--
extra : rebase_source : 9f698971f6b77161b2f7314befd889bc944aee2e
2016-08-02 17:52:29 +12:00
Jonathan Watt
db80f397f6 Bug 1058040, part 2 - Rename gfxTextContextPaint to SVGContextPaint and add some code comments. r=dholbert 2016-07-22 14:56:09 +01:00
Jonathan Watt
c5d930fd27 Bug 1058040, part 1 - Move gfxTextContextPaint to a separate file to enable use in imagelib. r=dholbert 2016-07-22 12:07:39 +01:00
David Anderson
200c842944 Fix OpenGL mix-blending when the source alpha is 0. (bug 1281593 part 2, r=mstange)
--HG--
extra : rebase_source : 78f3c5a99927d5100d93e161ab0e08574ee46f8c
2016-08-02 11:43:15 -07:00
David Anderson
334f06fca3 Fix D3D11 mix-blending when the source alpha is 0. (bug 1281593 part 1, r=mstange)
--HG--
extra : rebase_source : bec9c0b07e07200e3b770a15f0b120d5d62dbbd7
2016-08-02 11:43:15 -07:00
Jonathan Watt
0e69308cc1 Bug 1290781 - Make the propagation of context paint to SVG glyphs much more robust. r=heycam 2016-07-21 14:33:11 +01:00
Stone Shih
f226c252d4 Bug 1285070 - Real touch events will generate corresponding pointer events twice. r=kats 2016-07-07 09:53:38 +08:00
Carsten "Tomcat" Book
336c76b079 Merge mozilla-central to mozilla-inbound 2016-08-04 16:07:29 +02:00
Sotaro Ikeda
a6770561f9 Bug 1289829 - Change mask SurfaceSize calculation r=mattwoodrow 2016-08-04 06:09:25 -07:00
Stone Shih
f8f5ef1c1a Bug 1285128 - Should not generate pointer events for those synthesized events that are not dispatched to DOM. r=smaug 2016-07-07 15:28:11 +08:00
Iris Hsiao
c9e5c33bd4 Backed out changeset d303f553f817 (bug 1289640) 2016-08-02 16:51:36 +08:00
Iris Hsiao
6d48efa876 Backed out changeset d55d65c8fb73 (bug 1289640) 2016-08-02 16:51:30 +08:00
Iris Hsiao
bcf0cac2bd Backed out changeset 2e93b1e3adf0 (bug 1289640) 2016-08-02 16:51:24 +08:00
Iris Hsiao
d1330cfd9f Backed out changeset 0d4ae62cc21a (bug 1289640) 2016-08-02 16:51:20 +08:00
Iris Hsiao
3c82adc54e Backed out changeset 5ce69082c2fb (bug 1289640) 2016-08-02 16:51:16 +08:00