Commit Graph

305 Commits

Author SHA1 Message Date
Jeff Muizelaar
69909eb9c0 Bug 1272778. Use IntRects for clip rects instead of Rects. r=mstange
Previously, we took an IntRect converted to Rect and then later wanted
ints in the backend. This avoids all of that.
2016-05-13 19:58:43 -04:00
Wes Kocher
4e66096f2c Backed out changeset b15136f926ca (bug 1272778) for build bustage 2016-05-13 16:05:12 -07:00
Jeff Muizelaar
1e05ef0499 Bug 1272778. Use IntRects for clip rects instead of Rects. r=mstange
Previously, we took an IntRect converted to Rect and then later wanted
ints in the backend. This avoids all of that.
2016-05-13 18:51:09 -04:00
Kevin Wern
4d07bc92ea Bug 1227231: Use generic tree traversal algorithms for loops over Layer trees. r=botond
Create an Iterator type with classes ForwardIterator and ReverseIterator,
having GetFirstChild/GetNextSibling and GetLastChild/GetPrevSibling
methods, respectively. Specify the iterator type for each call to
ForEachNode. With this, we can support trees with forward and reverse
sibling structures.

Additionally, apply these algorithms to all Layer recursive traversals,
where applicable. Update tests to ensure both directions yield expected
results.

MozReview-Commit-ID: iYpX22XHTa
2016-03-10 01:20:40 -08:00
Gregor Wagner
806dcf8b7e Bug 1271749 - Followup for Remove LayerManagerComposite access to nsIWidget. r=dvander 2016-05-11 17:09:43 -07:00
Matt Woodrow
10fe7d3518 Bug 1260611 - Part 3: Hold on to TextureHosts until the following composite is done. r=sotaro 2016-05-11 10:55:17 +12:00
Thomas Zimmermann
926082980f Bug 1269422: Get Gonk widget with |CompositorWidgetProxy::RealWidget|. r=dvander 2016-05-05 11:27:38 +02:00
bd339
3dd8241cb8 Bug 1249936 - Remove unnecessary const from the return type of Layer accessors that return matrices by value. r=botond
MozReview-Commit-ID: 4JKqUDtYN3P
2016-05-03 16:33:43 +02:00
David Anderson
7ece2d231a Restrict SetDispAcquireFence's nsIWidget access to Gonk. (bug 1269653 part 2, r=kats) 2016-05-03 17:37:34 -07:00
David Anderson
6763a01012 Don't use nsIWidget to check APZ in LayerManagerComposite. (bug 1269653 part 1, r=kats) 2016-05-03 17:37:34 -07:00
bd339
d013441203 Bug 1249936 - add a LayerComposite::GetShadowTransform method & simplify Layer::GetLocalTransform. r=botond
MozReview-Commit-ID: 80RNCyxAjtq
2016-05-01 12:54:26 +02:00
David Anderson
117773f3a6 Change Compositor::GetWidget to return a CompositorWidgetProxy. (bug 1264545 part 3, r=jimm) 2016-04-29 19:20:41 -04:00
Botond Ballo
0257b4cdc4 Bug 1257288 - Move IntersectMaybeRects() to gfx/2d/Rect.h. r=kats
MozReview-Commit-ID: C99GwsLN7Zg
2016-04-20 17:16:09 -04:00
Nicolas Silva
e779edc604 Bug 1258768 - Remove the remaining unsafe compositor casts. r=dvander 2016-04-14 12:38:42 +02:00
Sotaro Ikeda
0fc240ed8d Bug 1262601 - Handle video content as opaque in PostProcessLayers() r=mattwoodrow 2016-04-10 19:51:21 -07:00
Sotaro Ikeda
d9e33fb961 Bug 1259541 - Reduce clearing backbuffer in nsBaseWidget::CreateBackBufferDrawTarget() r=mattwoodrow 2016-04-04 18:25:04 -07:00
Matt Woodrow
1190a416f9 Bug 1223736 - Part 3: Remove the distinction between 2d and 3d masks since it only adds complexity. r=Bas 2016-03-22 09:10:37 +13:00
Matt Woodrow
d710bf12bc Bug 1250718 - Improve layer logging for preserve-3d layers. r=thinker 2016-03-18 09:18:10 +13:00
Botond Ballo
1a3b459d85 Bug 1248822 - In LayerManagerComposite::UpdateAndRender(), call PostProcessLayers() before LayerTreeInvalidation. r=mattwoodrow
The reason is that PostProcessLayers() can change the effective visible region,
and LayerTreeInvalidation needs the final effective visible region.

MozReview-Commit-ID: 1wLROyOTcIB
2016-02-08 19:01:45 -05:00
David Anderson
e796d454cf Handle device resets by recreating the compositor, rather than the compositor IPDL stack. (bug 1245765 part 7, r=mattwoodrow) 2016-02-29 01:53:15 -05:00
David Anderson
d479876d10 Factor compositor initialization out of LayerManagerComposite. (bug 1245765 part 6, r=mattwoodrow) 2016-02-29 01:53:14 -05:00
Lee Salzman
a1983144f8 Bug 1249813 - part 3 - tell the compositor if the root layer has opaque content so it can skip clears. r=mattwoodrow 2016-02-25 14:38:05 -05:00
Milan Sreckovic
8b1c6899f4 Bug 1249312: UseAcceleratedCanvas on Mac should really be UseAcceleratedSkiaCanvas. r=mchang 2016-02-18 14:00:53 -05:00
Thinker K.F. Li
6f73aa3f88 Bug 1244943 - Make PostProcessLayers aware of preserve-3d. r=mattwoodrow 2016-02-18 17:12:40 -08:00
Michelangelo De Simone
3c44cb010c Bug 1247445 - Rename Layer::GetEffectiveVisibleRegion GetLocalVisibleRegion. r=botond 2016-02-13 16:50:51 -08:00
Botond Ballo
0f57ffa346 Bug 1237827 - Be sure to clear LayerComposite::mLayerComposited between each composite. r=mattwoodrow 2016-02-08 20:26:54 -05:00
Matt Woodrow
5f57f1aaf4 Bug 1229317 - Allow preserve-3d and opacity to be combined on the root element of a preserve-3d chain. r=roc 2016-02-07 23:51:11 +13:00
Phil Ringnalda
b42e5c6dd4 Back out e751d638ab4b (bug 1229317) for reftest "Assertion failure: oldState < kReadMax" and crashes
CLOSED TREE
2016-02-05 22:42:55 -08:00
Matt Woodrow
5ed8180d76 Bug 1229317 - Allow preserve-3d and opacity to be combined on the root element of a preserve-3d chain. r=roc 2016-02-06 17:57:34 +13:00
Nicholas Nethercote
cd54d824b6 Bug 1239864 (part 6) - Use the new rect iterators in gfx/. r=nical. 2016-01-18 17:20:58 -08:00
Sotaro Ikeda
2e0421527a Bug 1049296 - Handle Sideband stream compositing in HwcComposer2D r=mwu,nical 2016-01-18 20:52:32 -08:00
Matt Woodrow
20d16b245a Bug 1231564 - Don't trigger new composites just to repaint debug overlays. r=BenWa 2016-01-11 15:12:05 +13:00
Matt Woodrow
5cd3499add Bug 1231564 - Don't take the compositor side layer-tree snapshot until after compositing. r=dvander 2016-01-11 15:11:14 +13:00
Markus Stange
d0d996e53a Bug 1187322 - Fix bustage. 2015-12-29 12:13:24 +01:00
Botond Ballo
cd4a0ce37c Bug 1069417 - Fix an error introduced when rebasing across bug 1021845 to reopen a CLOSED TREE. r=bustage 2015-12-03 02:20:35 -05:00
Botond Ballo
6d77a56654 Bug 1069417 - Remove the explicit template argument of TransformTo() and related functions. r=kats
In this process, TransformTo() and UntransformTo() are renamed TransformedBy()
and UntransformBy() so calls to them continue to read sensibly.
2015-11-30 20:06:45 -05:00
Botond Ballo
85af71a0e4 Bug 1069417 - Modify TransformTo() and related functions to use typed matrices. r=kats
Call sites (all in APZ and related code) were modified accordingly. Some of
these modifications involved changing some matrices stored in APZ to be typed.
2015-11-30 20:14:31 -05:00
Nicholas Nethercote
72c03344bc Bug 1229237 (part 2) - Make nsIWidget::DrawWindowUnderlay() take a LayoutDeviceIntRect. r=botond. 2015-11-16 20:34:00 -08:00
Markus Stange
8f38bc372d Bug 1021845 - Before compositing, clip the visible region of a layer to the layer's clip rect. r=mattwoodrow 2015-12-02 22:54:03 +01:00
Sunny Sidhu
2ba69faae0 Bug 1220873 - Make Layer::mVisibleRegion a LayerIntRegion. r=botond 2015-11-29 02:07:55 -05:00
Botond Ballo
45329ab4ea Bug 1208829 - Recompute visible regions during composition. r=mstange 2015-11-23 14:45:53 -05:00
Botond Ballo
253f689c20 Bug 1208829 - Rename LayerManagerComposite::ApplyOcclusionCulling to PostProcessLayers, and clean it up a bit. r=mstange 2015-11-09 20:43:54 -05:00
Nicholas Nethercote
ce94aae3ae Bug 1225007 (part 1, attempt 3) - Use LayoutDevicePixel more in Cocoa widget code. r=kats. 2015-11-19 14:10:38 +11:00
Phil Ringnalda
040c117af2 Backed out 2 changesets (bug 1225007) for frequent OS X "Shouldn't return empty rect" assertion failures, a=backout
Backed out changeset c5b352c74b35 (bug 1225007)
Backed out changeset 8a513c70ce7c (bug 1225007)
2015-11-19 20:55:26 -08:00
Nicholas Nethercote
5db293bd80 Bug 1225007 (part 1, attempt 2) - Use LayoutDevicePixel more in Cocoa widget code. r=kats. 2015-11-19 14:10:38 +11:00
Nicholas Nethercote
117b39c2e9 Backout 52ba24123046 and 66768d6a50fa (bug 1225007) for causing lots of test assertions on Mac. CLOSED TREE 2015-11-17 17:02:39 -08:00
Nicholas Nethercote
0a8fdd9562 Bug 1225007 (part 1) - Use LayoutDevicePixel more in Cocoa widget code. r=kats. 2015-11-15 21:37:52 -08:00
Nicholas Nethercote
b557cdc655 Bug 1224403 (part 10) - Make nsScreenGonk::GetNaturalBoundsUntyped() typed. r=kats. 2015-11-12 05:44:43 -08:00
Nicholas Nethercote
3f2b2ab546 Bug 1223690 - Remove implicit Rect conversions. r=jrmuizel.
gfxRect can be implicitly constructed from IntRect, which hides a number of
implicit conversion points, makes Moz2Dification harder, and has some
surprising effects.

This patch removes the implicit constructor and replaces it with an explicit
conversion function:

  gfxRect ThebesRect(const IntRect&)

This is the obvious outcome of removing the constructor.

But there is also a second, less obvious outcome: currently we do a number of
IntRect-to-Rect conversions using ToRect(), which (surprisingly) works because
it turns into an implicit IntRect-to-gfxRect conversion (via the implicit
constructor) combined with an explicit gfxRect-to-Rect conversion (via
ToRect()). I.e. we do two conversions, going from a Moz2D type to a Thebes
type and back to a Moz2D type!

So this patch also changes these conversion. It moves this existing function:

  Rect ToRect(const IntRect&)

from gfx2DGlue.h -- where it doesn't really belong because it doesn't involve
any Thebes types -- to gfx/2d/Rect.h, templatifying and renaming it as
IntRectToRect() in the process.

The rest of the patch deals with fall-out from these changes. The call sites
change as follows:

- IntRect-to-gfxRect conversions:
  - old: implicit
  - new: ThebesRect()

- IntRect-to-Rect conversions:
  - old: ToRect()
  - new: IntRectToRect()
2015-11-11 14:23:14 -08:00
Botond Ballo
60a5318264 Bug 1222661 - Replace FromUntyped(obj) calls with FromUnknown*(obj). r=nical 2015-11-09 18:22:25 -05:00