Commit Graph

169 Commits

Author SHA1 Message Date
Botond Ballo
e4d1f66bd9 Bug 1166301 - Store a flag on Layer to tell fixed background layers apart from fixed position layers. r=mattwoodrow 2015-09-04 17:26:33 -04:00
Kartikaya Gupta
f5ed3a019f Bug 1180295 - Implement seamless snapping to the stable state. r=rbarker 2015-08-18 14:27:20 -04:00
Kartikaya Gupta
d6bfe53b6e Bug 1180295 - Rip out call to setContentDocumentFixedPositionMargins. r=rbarker 2015-08-18 14:27:18 -04:00
Markus Stange
e2449accad Bug 1187804 - Annotate fixed-position layers with the scroll id of the scroll frame that they are fixed with respect to. r=mattwoodrow 2015-08-17 19:44:42 -04:00
CJ Ku
c1c30c1099 Bug 1061393 - Export display list info to layer scope viewer. r=kamidphish 2015-08-03 02:11:00 -04:00
Sotaro Ikeda
e9cab90cd6 Bug 1186968 - Fix Compositor::SetScreenRotation() call r=nical 2015-07-24 07:13:59 -07:00
Botond Ballo
d61e3f0a5b Bug 1181832 - Keep gfxPrefs.h out of header files. r=kats 2015-07-13 11:53:10 -04:00
Birunthan Mohanathas
a29151dc87 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Robert O'Callahan
1bebcba55f Bug 1143575. Route ImageCompositeNotifications to ImageContainers. r=nical
For frame statistics to work properly, we have to notify an ImageContainer
when it has been composited. This requires a few changes, which have
been lumped together in this patch:
-- Create PImageContainer and ImageContainerParent/ImageContainerChild.
-- Add mFrameID and mProducerID everywhere we're passing around images.
-- Route composition notifications from the compositor back to
ImageContainerChild.
2015-07-06 15:02:26 +12:00
Robert O'Callahan
9f4cb7cc5b Bug 1143575. Store composition time in Compositor. r=nical
We'll need this later so ImageHost can select the correct image to use.

Adding a TimeStamp parameter to BeginFrame is a bit annoying since BeginFrame
is overridden by every subclass. It's a bit more convenient to just call a
separate non-virtual method just before we call BeginFrame.
2015-07-07 15:38:38 +12:00
David Anderson
2511c6ca59 Bug 1148582 - Add mask layers to FrameMetrics for ancestor scroll frame clips. r=mattwoodrow 2015-06-21 12:27:31 -04:00
Markus Stange
3000f6c8eb Back out bug 1148582 for static analysis bustage. 2015-07-01 01:20:59 -04:00
David Anderson
38a60e1411 Bug 1148582 - Add mask layers to FrameMetrics for ancestor scroll frame clips. r=mattwoodrow 2015-06-21 12:27:31 -04:00
Kartikaya Gupta
ece9249dab Bug 1163832 - Add an API to flush pending APZ repaint requests and dispatch a notification upon completion. r=botond 2015-06-19 08:25:41 -04:00
Timothy Nikkel
21804e7053 Bug 1160642. Add reftest-async-zoom to apply an async zoom before taking snapshot. r=dbaron 2015-05-24 16:48:26 -04:00
Kartikaya Gupta
5d4dd39302 Back out 2 csets for bug 1163832 for emulator crashtest failures. r=me
CLOSED TREE
2015-05-22 07:51:55 -04:00
Kartikaya Gupta
70e917728e Bug 1163832 - Add an API to flush pending APZ repaint requests and dispatch a notification upon completion. r=botond 2015-05-22 06:42:08 -04:00
Eric Rahm
24f5eb45e4 Bug 1162748 - Remove instances of #ifdef PR_LOGGING in graphics. r=froydnj
PR_LOGGING is now always defined, we can remove #ifdefs checking for it.
2015-05-08 14:37:01 -07:00
Timothy Nikkel
3a8b15b000 Bug 1157066. When reading back the OMTA transfrom of a layer don't include transforms from async panning or zooming. r=kats,birtles
Containerless scrolling means that the pan zoom controller applies it's transforms (to compensate for differences between the state of layout the last time we painted and the current state as composited to the screen) to the layers that are scrolled instead of the container layer that contains the layers that scroll.

When running test_animations_omta.html there is a zoom of 1.306122 applied, and the page is scrolled down to 67 screen pixels (before the test starts, not sure why exactly). Gecko scrolls as close to 67 screen pixels as it can: 67/1.306122 = 51.29689 css pixels, which is 3077.813 appunits. Gecko scrolls to 3078 app units. When AsyncCompositionManager::TransformScrollableLayer runs we calculate the scroll position of gecko and the current scroll position that the pan zoom controller is using. Since there are no async pan or zoom operations taking place these should match. However when the gecko scroll position is calculated we get 3078/60*1.306122 = 67.0040586. So it applies a transform of 0.0040586 to the container layer for the transform that test_animations_omta.html is animating off main thread. When test_animations_omta.html reads the transform of this layer it fails because it's expecting 0 and 0.0040586 is outside of it's epsilon for considering it to be close enough.
2015-04-24 19:05:52 -05:00
Wes Kocher
d068b7e113 Backed out changeset 517b9b831685 (bug 1157066) for build bustage 2015-04-24 14:56:55 -07:00
Timothy Nikkel
29c16525f7 Bug 1157066. When reading back the OMTA transfrom of a layer don't include transforms from async panning or zooming. r=kats,birtles
Containerless scrolling means that the pan zoom controller applies it's transforms (to compensate for differences between the state of layout the last time we painted and the current state as composited to the screen) to the layers that are scrolled instead of the container layer that contains the layers that scroll.

When running test_animations_omta.html there is a zoom of 1.306122 applied, and the page is scrolled down to 67 screen pixels (before the test starts, not sure why exactly). Gecko scrolls as close to 67 screen pixels as it can: 67/1.306122 = 51.29689 css pixels, which is 3077.813 appunits. Gecko scrolls to 3078 app units. When AsyncCompositionManager::TransformScrollableLayer runs we calculate the scroll position of gecko and the current scroll position that the pan zoom controller is using. Since there are no async pan or zoom operations taking place these should match. However when the gecko scroll position is calculated we get 3078/60*1.306122 = 67.0040586. So it applies a transform of 0.0040586 to the container layer for the transform that test_animations_omta.html is animating off main thread. When test_animations_omta.html reads the transform of this layer it fails because it's expecting 0 and 0.0040586 is outside of it's epsilon for considering it to be close enough.
2015-04-24 16:41:56 -05:00
L. David Baron
99cf80cc3c Bug 1156456 patch 3 - Send transform origin and perspective origin to layer in device pixels rather than CSS pixels. r=birtles 2015-04-22 19:37:04 -07:00
Ethan Lin
0c6659aed6 Bug 1146214 - Rename some functions after refactoring. r=nical 2015-04-10 02:21:00 +02:00
Ethan Lin
cd0b6b66bd Bug 1146214 - Remove the unused code after refactoring. r=nical 2015-04-10 02:20:00 +02:00
Ethan Lin
a4b8f3e340 Bug 1146214 - Implement fence delivery. Combine ipc messages and remove reply fence delivery message. r=nical 2015-04-10 02:19:00 +02:00
David Anderson
10d2eaa0f9 Fix APZ target confirmations arriving before dependent layer transactions. (bug 1154130, r=kats) 2015-04-14 12:24:32 -04:00
Ying-Ruei Liang (KK)
2c219b4aaf Bug 1143522 - Convert Layer::mClipRect to ParentLayerIntRect. r=botond
Change interface of getter/setter for mClipRect,
also necessary modification for codes that use these resources.

* * *
Bundle mUseClipRect and mClipRect as Maybe<ParentLayerIntRect> mClipRect
2015-04-11 22:03:00 -04:00
David Anderson
5ae9e8b290 Scrollbar thumbs can overlap scrollbar arrows during APZ scrolling. (bug 1152469, r=botond,mstange) 2015-04-12 23:03:02 -04:00
Bob Owen
ab88ebd3af Bug 1149971 Part 2: Cet rid of kCurrentProcessId as it makes lots of static initializers. r=dvander 2015-04-01 13:59:20 +01:00
Bob Owen
7517f0b07d Bug 1119878 Part 2: Change IPC code to hold ProcessID instead of ProcessHandle. r=billm, r=dvander, r=aklotz, r=cpearce 2015-04-01 09:40:35 +01:00
Bill McCloskey
6412f793f2 Bug 1121072 - Always notify when layers cleared (r=dvander) 2015-03-27 08:38:47 -07:00
Brian Birtles
a6a6f3ca41 Bug 1113425 part 2 - Apply async properties when querying the animated transform; r=mattwoodrow
In order to test off-main thread animations, we have a method that will return
the animated transform value set on a shadow layer. This method will return null
if the transform was not set by animation.

However, in some situations we temporarily clear the animation transform. For
example, when we synchronize a composite layer with its content layer, we reset
the animation transform. Then, on the next composite, we will recalculate the
animated value.

If we try to query the animated transform value in between resetting it and the
next composite we will get back null. To avoid a race condition, in
ShadowLayersUpdated after potentially clearing the animated transform, we
synchronously update the async properties on the layer transform in order
to reinstate the animated transform (so it is there when we go to query it).
However we *only* do this when the mIsTesting flag is set which is true
whenever we have the refresh driver under test control.  Furthermore, we only
do it when we already have a pending composite task to better match conditions
under regular operation.

In test_deferred_start.html, however, we specifically need to test without
putting the refresh driver under test control. As a result mIsTesting will be
false and we can encounter a race condition when querying the animated
transform.

To work around this, this patch makes us *also* update async properties
when fetching the animated transform value. The method for getting the
animated transform value is only used for testing so it should have no effect
on the regular compositing behavior.

It would seem that we could then remove the call from ShadowLayersUpdated but
doing this caused a small number of test cases to fail. In particular one test
for *opacity* in test_animations_omta.html was failing at the end of the
animation because we ended up with a stale opacity animation value on the
compositor which the synchronous update was previously removing. The test,
in this case, should be ignoring the value on the compositor but, unlike
transform, there is no flag for indicating whether or not the opacity on shadow
layers has been set by animations. As a result, this patch leaves the call that
triggers a synchronous update in test mode when updating shadow layers.
2015-03-17 18:38:12 +09:00
Sotaro Ikeda
a6782ac1fa Bug 1139935 - Re-enable RemoveTextureFromCompositableTracker r=nical 2015-03-11 06:53:43 -07:00
Bill McCloskey
159303a63d Bug 1129223 - Introduce new, more efficient mozLayerTreeReady event (r=BenWa) 2015-03-05 22:03:23 -08:00
Sotaro Ikeda
049a7c60ad Bug 1136352 - Fix RemoveTextureAsync handling r=nical 2015-03-02 13:38:45 -08:00
Kartikaya Gupta
5331311d19 Bug 1131840 - Propagate the EventRegionsOverride flag on RefLayers also. r=roc 2015-02-16 21:30:02 -05:00
Kartikaya Gupta
78e10f689b Bug 1131840 - Replace the shouldForceDispatchToContent flag with a bitset enum. r=roc,botond 2015-02-16 21:30:02 -05:00
Kartikaya Gupta
169b790506 Bug 1125422 - Add a flag on ContainerLayer to indicate when the entire subtree of layers needs to be in the dispatch-to-content region. r=roc 2015-02-10 16:28:07 -05:00
Peter Chang
db983377ad Bug 1129763 - Add pref for the threshold of frame visual warning, r=benwa 2015-02-06 14:38:16 +08:00
Jim Mathies
7e3d656f21 Bug 1095754 - Compositor plumbing for plugin configuration. r=roc 2015-01-29 13:41:55 -06:00
Kyle Huey
3f5b8810c4 Bug 1121673: Use move references in IPDL. r=bent 2015-01-16 11:58:52 -08:00
Botond Ballo
70e324a117 Bug 1076241 - Add an API for setting a resolution on a document and scaling it by that amount. r=kats,tn 2015-01-02 20:06:14 -05:00
Vladimir Vukicevic
fd5bc411b9 Bug 1036602 - add generic gfx/layers functionality for VR rendering; r=nical 2014-07-09 12:26:18 -07:00
Ehsan Akhgari
22d38b6803 Bug 1088838 - Don't export CompositorChild.h, CompositorParent.h and ShadowLayersManager.h twice; r=BenWa 2014-10-27 08:57:36 -04:00
Kartikaya Gupta
f6083d562d Bug 1013612 - Remove APZ-internal headers from being exported to non-layers code. r=botond 2014-10-16 09:23:52 -04:00
Jonathan Watt
44455cc40b Bug 1082483, part 2 - Convert Mozilla code to use the new Matrix4x4::PreTranslate/PreScale method names. r=Bas 2014-10-16 10:51:12 +01:00
Jonathan Watt
549b278c72 Bug 1082477, part 1 - Convert Matrix4x4::TranslatePost/ScalePost callers to Matrix4x4::PostTranslate/PostScale. r=Bas 2014-10-16 10:51:12 +01:00
Nicolas Silva
9174984106 Bug 966284 - Fix the shutdown sequence of PLayerTransaction and PTexture. r=sotaro 2014-10-13 10:43:59 +02:00
Sotaro Ikeda
bc36c56844 Bug 1076868 - Fix RemoveTextureFromCompositableAsync() call handling r=nical 2014-10-07 11:37:15 -07:00
Sotaro Ikeda
58627884b4 Bug 1067455 - Reduce Fence::merge() call on compositor thread r=nical 2014-10-06 15:45:03 -07:00