Commit graph

188 commits

Author SHA1 Message Date
Sotaro Ikeda
252ce4f643 Bug 1255703 - Use image surfaces for basic compositor on Windows r=mattwoodrow 2016-05-12 07:23:11 -07:00
David Anderson
c7d105faf0 Use CompositorWidgetProxy in place of nsIWidget in the compositor. (bug 1264545 part 4, r=jimm) 2016-04-29 19:20:41 -04:00
David Anderson
86a0e1fbcf Hoist mWidget into the Compositor base class. (bug 1264545 part 1, r=nical) 2016-04-29 19:20:40 -04:00
Nicolas Silva
fbb16ba823 Bug 1258768 - Check compositor backends before casting. r=dvander 2016-04-14 12:38:38 +02:00
Nicolas Silva
3aa33acdb7 Bug 1215265 - Shut PCompositorBridge down properly. r=sotaro 2015-11-24 14:50:51 +13:00
Sotaro Ikeda
0dcd939cf9 Bug 1259541 - Reduce clearing backbuffer in nsBaseWidget::CreateBackBufferDrawTarget() r=mattwoodrow 2016-04-04 18:25:04 -07:00
David Anderson
82cec35be7 Block compositable updates from stale layers. (bug 1256517 part 4, r=mattwoodrow,nical)
--HG--
extra : rebase_source : a7a9bc431d528de6561a9e55a0ebbb675ce494c4
2016-03-25 01:38:55 -07:00
Sotaro Ikeda
ccef41ec11 Bug 1254897 - Recycle back buffer in BasicCompositor r=jrmuizel 2016-03-23 21:41:43 -07:00
Sebastian Hengst
cb73369e3b Backed out changeset 27a8a01abf66 (bug 1256517) 2016-03-23 18:57:22 +01:00
David Anderson
db2e8ee11d Block compositable updates from stale layers. (bug 1256517 part 4, r=mattwoodrow,nical) 2016-03-23 10:32:34 -07:00
Lee Salzman
ca8c96a592 Bug 1252324 - add DrawTarget API for 3D transforms for use in layers. r=jrmuizel 2016-03-23 01:03:10 -04:00
Matt Woodrow
1f94409ed4 Bug 1223736 - Part 2: Draw masks in the correct coordinate space when doing 3d transforms in BasicCompositor. r=lsalzman 2016-03-22 09:09:07 +13:00
Sotaro Ikeda
47242038f0 Bug 1255303 - Use SurfaceFormat::B8G8R8X8 as back buffer if possible r=jrmuizel 2016-03-16 18:30:41 -07:00
David Anderson
b7dba4cb77 Require mix-blend mode support in all compositors and layer managers. (bug 1209278 part 1, r=mstange) 2016-02-23 10:11:21 -08:00
Lee Salzman
059ca6d6f5 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
Lee Salzman
bf234f25b7 Bug 1249813 - part 1 - revise nsShmImage to allow draw targets anywhere inside its bounds. r=jrmuizel 2016-02-25 14:38:05 -05:00
Nicolas Silva
9e20942d69 Bug 1250500 - Avoid copying BufferTextureHost when possible. r=sotaro 2016-02-25 14:15:52 +01:00
Nicolas Silva
e8b70b860b Bug 1249273 - Enable BufferTextureHost to recycle a TextureSource that is not marked as owned. r=sotaro 2016-02-25 14:15:34 +01:00
Wes Kocher
a9ea5f6a56 Backed out 2 changesets (bug 1193557, bug 1209278) for build bustage
Backed out changeset 755b9088813c (bug 1193557)
Backed out changeset 21356fa4e353 (bug 1209278)

--HG--
extra : commitid : 5hf8aSA5FhN
2016-02-23 10:39:08 -08:00
David Anderson
a08042eef1 Require mix-blend mode support in all compositors and layer managers. (bug 1209278 part 1, r=mstange)
--HG--
extra : rebase_source : c63182aa6b4465e22d8d4147bfd40bc1e8183b08
2016-02-23 10:11:21 -08:00
Jeremy Chen
47aa0a5855 Bug 1239564 - Post translate maskSurface to renderTarget. r=roc 2016-02-22 04:19:00 +01:00
Lee Salzman
2d3967c30f Bug 1019856 - avoid double-buffering in BasicCompositor when window allows it. r=mattwoodrow 2016-02-18 20:57:29 -05:00
Milan Sreckovic
40a9c94aaa Bug 1187464 - Part 3. Check if GetSurface returned null. r=mstange 2016-02-08 11:58:00 +01:00
Milan Sreckovic
e5d1fffa48 Bug 1187464 - Part 2. RTTI for TextureSource debug purposes. Carry r=botond 2016-02-08 11:57:00 +01:00
Milan Sreckovic
59d6d38319 Bug 1187464 - Part 1. We can get the wrong texture source type, so deal with it. Carry r=mstange 2016-02-08 11:56:00 +01:00
Carsten "Tomcat" Book
c92db23864 Backed out changeset 63e2a056311a (bug 1187464) for reftest failures
--HG--
extra : rebase_source : 8102427c109ff38e42b26b7f48dcaba67bdd7c4c
2016-02-03 15:04:37 +01:00
Carsten "Tomcat" Book
2d8c4c26f5 Backed out changeset 0cee3cdcce99 (bug 1187464)
--HG--
extra : rebase_source : 977a8167488bc1dbf71c6205a2eb4b77c1c3a0ca
2016-02-03 15:04:21 +01:00
Carsten "Tomcat" Book
d17059df02 Backed out changeset b64710d45b28 (bug 1187464)
--HG--
extra : rebase_source : 9128b958e65ba5fb289aedee4f8771180478a733
2016-02-03 15:04:19 +01:00
Milan Sreckovic
a4077255db Bug 1187464 - Part 3. Check if GetSurface returned null. r=mstange 2016-02-02 11:07:00 +01:00
Milan Sreckovic
91bbfbdf90 Bug 1187464 - Part 2. RTTI for TextureSource debug purposes. r=botond 2016-02-02 11:06:00 +01:00
Milan Sreckovic
e8a5e06fdb Bug 1187464 - Part 1. We can get the wrong texture source type, so deal with it. r=mstange 2016-02-02 11:05:00 +01:00
Nicholas Nethercote
702fb54dd6 Bug 1239864 (part 5) - Use the new rect iterators in gfx/. r=nical.
--HG--
extra : rebase_source : bed24467918b4a12837e37d6f7f15c42f20b0b6a
2016-01-18 17:20:58 -08:00
Nicholas Nethercote
6a194c8cf8 Bug 1239864 (part 1) - Add new, nicer rect-iterators for nsRegion and nsIntRegion. r=roc.
This requires renaming the existing nsIntRegion::RectIterator as
nsIntRegion::OldRectIterator to make way for the new nsIntRegion::RectIterator.
This doesn't require many knock-on changes because most existing uses of
that type use the nsIntRegionRectIterator typedef.

--HG--
extra : rebase_source : 16c79610ae20820ead6aa63cbe214e4e4b3a9fab
2016-01-14 18:36:11 -08:00
Matt Woodrow
53bd2d5de2 Bug 1242293 - Don't call EndRemoteDrawingInRegion if StartRemoteDrawingInRegion returns a null DrawTarget. r=mstange
--HG--
extra : commitid : 2hLESTDkkQt
extra : amend_source : c0ba853e135e1a4142759999fa3101173da50e04
2016-01-22 11:36:29 +13:00
Nicholas Nethercote
186d3e93ab Bug 1239537 - Remove Compositor::GetWidgetSize(), which is unused. r=mattwoodrow.
Also remove BasicCompositor::mWidgetSize because its only use can be replaced
by a temporary variable.

--HG--
extra : rebase_source : 03b5992445687cd1ec24307da2d42f87d8cc1041
2016-01-13 15:27:34 -08:00
Nicholas Nethercote
7892cfcede Bug 1239530 (part 2) - Use LayoutDevice coordinates in {Start,End}RemoteDrawingInRegion() and related functions. r=kats.
--HG--
extra : rebase_source : b5bd2d6822904a188242efa6e46aaed9f96a15b9
2015-12-02 22:29:54 -08:00
Markus Stange
cff5b29209 Bug 1239137 - Return early from BasicCompositor::DrawQuad if transformBounds is empty. r=mattwoodrow
--HG--
extra : rebase_source : 41045234d2f2890c8178d68d37f3ceffd10402b3
2016-01-13 00:13:20 +01:00
Markus Stange
ebf52b3a75 Bug 1238753 - Don't skip the call to StartRemoteDrawing in from BasicCompositor::BeginFrame if the invalid region is empty. r=mattwoodrow
Sometimes we need a composition even if nothing has changed, for example for window resizes on Mac.
LayerManagerComposite::UpdateAndRender() already has a check that skips the call to BasicCompositor
if it's not necessary.

--HG--
extra : commitid : EFN68WKwWyp
extra : rebase_source : 00d8b063d23500b72a7f0c5fb03f5b726a3d5ac9
2016-01-12 13:27:14 +01:00
Markus Stange
c6fb172a65 Bug 1238753 - Make BasicCompositor respect changes to mInvalidRegion through StartRemoteDrawingWithRegion properly. r=mattwoodrow
--HG--
extra : commitid : 65tZtDLZZYx
extra : rebase_source : 8caf66555fee511daf0c336b9e8986da383f2704
2016-01-12 13:14:42 +01:00
Markus Stange
e69314a2fd Bug 1236282 - Clip color layer drawing in BasicCompositor so that unbounded operators don't erase stuff outside the layer. r=Bas
The same as bug 1077358, but for BasicCompositor.

--HG--
extra : commitid : 2xE66rOGdFx
extra : rebase_source : 4a81bbee35ae342add1bfca742d99b2c6dd73dcc
2016-01-12 12:47:36 +01:00
Nicolas Silva
9bc4b1d4e6 Bug 1228952 - Move texture metadata out of the BufferTextureClient/Host's buffer. r=Sotaro 2015-12-16 19:50:58 +01:00
Lee Salzman
b842645aab Bug 1082598 - Part 6: Fix layers for Skia update. r=jrmuizel 2015-12-18 13:53:25 -05:00
Wes Kocher
6ebc8a4b00 Backed out 10 changesets (bug 1082598) for 2d.path.arcTo.shape.curve1.html failures on OSX
Backed out changeset 018c2a3031f4 (bug 1082598)
Backed out changeset 8f60e42aca2e (bug 1082598)
Backed out changeset c4297c82165f (bug 1082598)
Backed out changeset c22c1bfd091a (bug 1082598)
Backed out changeset 8754fd718869 (bug 1082598)
Backed out changeset da976e4cd253 (bug 1082598)
Backed out changeset 3c8f87df8c68 (bug 1082598)
Backed out changeset 3183d30eb549 (bug 1082598)
Backed out changeset c239a7bc6cba (bug 1082598)
Backed out changeset aa3805015270 (bug 1082598)

--HG--
extra : commitid : LJSl0Bo8Hqr
2015-12-17 14:30:50 -08:00
Lee Salzman
1175a5cf53 Bug 1082598 - Part 6: Fix layers for Skia update. r=jrmuizel 2015-12-17 14:45:45 -05:00
Milan Sreckovic
06d79c4606 Bug 1219494 - Part 4. gfx/layers and gfxCrash. r=mchang 2015-12-10 13:01:00 +01:00
Nicholas Nethercote
e48ef7f5e0 Bug 1224482 (part 4) - Make GetClientSize() return a LayoutDeviceIntSize. r=kats.
--HG--
extra : rebase_source : 6364076d0924ed1cd5a952ffa1fcb0543c05c0f7
2015-11-13 01:37:02 -08:00
Nicholas Nethercote
489c83b1dd 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()

--HG--
extra : rebase_source : e4e4c2ad10b36ecad4d57d1630158f3374e403be
2015-11-11 14:23:14 -08:00
Sotaro Ikeda
963cb70aca Bug 1218617 - Invalidate whole widget area after external composition r=mattwoodrow 2015-10-27 22:56:27 -07:00
Nathan Froyd
01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Nathan Froyd
583afa0965 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00