Commit Graph

181 Commits

Author SHA1 Message Date
Sotaro Ikeda
2fc898f4ce Bug 1254897 - Recycle back buffer in BasicCompositor r=jrmuizel 2016-03-23 21:41:43 -07:00
Sebastian Hengst
6b56304f56 Backed out changeset 27a8a01abf66 (bug 1256517) 2016-03-23 18:57:22 +01:00
David Anderson
ce5e68d14d Block compositable updates from stale layers. (bug 1256517 part 4, r=mattwoodrow,nical) 2016-03-23 10:32:34 -07:00
Lee Salzman
4340fbb185 Bug 1252324 - add DrawTarget API for 3D transforms for use in layers. r=jrmuizel 2016-03-23 01:03:10 -04:00
Matt Woodrow
74b50eab03 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
d536f81d72 Bug 1255303 - Use SurfaceFormat::B8G8R8X8 as back buffer if possible r=jrmuizel 2016-03-16 18:30:41 -07:00
David Anderson
e1bf50b420 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
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
Lee Salzman
45ad069391 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
b32137e3d8 Bug 1250500 - Avoid copying BufferTextureHost when possible. r=sotaro 2016-02-25 14:15:52 +01:00
Nicolas Silva
b6c61dd9a5 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
9a52b34169 Backed out 2 changesets (bug 1193557, bug 1209278) for build bustage
Backed out changeset 755b9088813c (bug 1193557)
Backed out changeset 21356fa4e353 (bug 1209278)
2016-02-23 10:39:08 -08:00
David Anderson
db3003e930 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
Jeremy Chen
acb1aaf5dd Bug 1239564 - Post translate maskSurface to renderTarget. r=roc 2016-02-22 04:19:00 +01:00
Lee Salzman
1af66c764f Bug 1019856 - avoid double-buffering in BasicCompositor when window allows it. r=mattwoodrow 2016-02-18 20:57:29 -05:00
Milan Sreckovic
f322553ee0 Bug 1187464 - Part 3. Check if GetSurface returned null. r=mstange 2016-02-08 11:58:00 +01:00
Milan Sreckovic
b873f75eaf Bug 1187464 - Part 2. RTTI for TextureSource debug purposes. Carry r=botond 2016-02-08 11:57:00 +01:00
Milan Sreckovic
6adb6a6c3a 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
5e8647dde2 Backed out changeset 63e2a056311a (bug 1187464) for reftest failures 2016-02-03 15:04:37 +01:00
Carsten "Tomcat" Book
d6a39e4f80 Backed out changeset 0cee3cdcce99 (bug 1187464) 2016-02-03 15:04:21 +01:00
Carsten "Tomcat" Book
6db6ee35a0 Backed out changeset b64710d45b28 (bug 1187464) 2016-02-03 15:04:19 +01:00
Milan Sreckovic
041ed38094 Bug 1187464 - Part 3. Check if GetSurface returned null. r=mstange 2016-02-02 11:07:00 +01:00
Milan Sreckovic
18f168cc1b Bug 1187464 - Part 2. RTTI for TextureSource debug purposes. r=botond 2016-02-02 11:06:00 +01:00
Milan Sreckovic
77d8dbd2a0 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
50ca8b0ee8 Bug 1239864 (part 5) - Use the new rect iterators in gfx/. r=nical. 2016-01-18 17:20:58 -08:00
Nicholas Nethercote
06ef418546 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.
2016-01-14 18:36:11 -08:00
Matt Woodrow
7a73b28dbc Bug 1242293 - Don't call EndRemoteDrawingInRegion if StartRemoteDrawingInRegion returns a null DrawTarget. r=mstange 2016-01-22 11:36:29 +13:00
Nicholas Nethercote
cc38e48566 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.
2016-01-13 15:27:34 -08:00
Nicholas Nethercote
21fd395339 Bug 1239530 (part 2) - Use LayoutDevice coordinates in {Start,End}RemoteDrawingInRegion() and related functions. r=kats. 2015-12-02 22:29:54 -08:00
Markus Stange
fa9c9a8258 Bug 1239137 - Return early from BasicCompositor::DrawQuad if transformBounds is empty. r=mattwoodrow 2016-01-13 00:13:20 +01:00
Markus Stange
ec4fc5061b 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.
2016-01-12 13:27:14 +01:00
Markus Stange
246f6c9175 Bug 1238753 - Make BasicCompositor respect changes to mInvalidRegion through StartRemoteDrawingWithRegion properly. r=mattwoodrow 2016-01-12 13:14:42 +01:00
Markus Stange
368e80660b 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.
2016-01-12 12:47:36 +01:00
Nicolas Silva
360f6becaa Bug 1228952 - Move texture metadata out of the BufferTextureClient/Host's buffer. r=Sotaro 2015-12-16 19:50:58 +01:00
Lee Salzman
6716bfd240 Bug 1082598 - Part 6: Fix layers for Skia update. r=jrmuizel 2015-12-18 13:53:25 -05:00
Wes Kocher
1b21534f7a 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)
2015-12-17 14:30:50 -08:00
Lee Salzman
d82f9339c8 Bug 1082598 - Part 6: Fix layers for Skia update. r=jrmuizel 2015-12-17 14:45:45 -05:00
Milan Sreckovic
f9a4fe7edd Bug 1219494 - Part 4. gfx/layers and gfxCrash. r=mchang 2015-12-10 13:01:00 +01:00
Nicholas Nethercote
eaf3acd738 Bug 1224482 (part 4) - Make GetClientSize() return a LayoutDeviceIntSize. r=kats. 2015-11-13 01:37:02 -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
Sotaro Ikeda
f0b43449ae Bug 1218617 - Invalidate whole widget area after external composition r=mattwoodrow 2015-10-27 22:56:27 -07:00
Nathan Froyd
4e6d8f6705 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
2015-10-18 01:24:48 -04:00
Nathan Froyd
bf7f6dda03 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
David Anderson
89329365b2 Remove the static compositor backend variable. (bug 1211109 part 2, r=mattwoodrow) 2015-10-05 23:39:00 -07:00
David Anderson
f8eaddc178 Don't use Direct2D if CompositorD3D11::Initialize fails. (bug 1208638, r=jrmuizel) 2015-10-01 23:06:43 -07:00
Wes Kocher
5f9d42b514 Backed out changeset 919a831786f1 (bug 1208638) for windows build failures 2015-09-30 16:43:26 -07:00
David Anderson
9dbefd4a0f Don't use Direct2D if CompositorD3D11::Initialize fails. (bug 1208638, r=jrmuizel) 2015-09-30 16:16:16 -07:00
Lee Salzman
b12346a876 Bug 1205045 - remove GTK calls from compositor thread. r=jmuizelaar 2015-09-15 16:46:39 -04:00
David Anderson
1a4428bb7b Support all blend modes in the basic compositor. (bug 1203829 part 1, r=mattwoodrow) 2015-09-15 13:07:05 -07:00
Bas Schouten
ff5eb8de72 Bug 1182147: Ensure ImageHost does not attempt to call DrawQuad with an effect unsupported by the compositor. r=nical 2015-09-04 18:31:52 +00:00