Commit Graph

148 Commits

Author SHA1 Message Date
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
David Anderson
3716363c72 Remove the static compositor backend variable. (bug 1211109 part 2, r=mattwoodrow) 2015-10-05 23:39:00 -07:00
David Anderson
1befc42825 Don't use Direct2D if CompositorD3D11::Initialize fails. (bug 1208638, r=jrmuizel) 2015-10-01 23:06:43 -07:00
Wes Kocher
eff494e681 Backed out changeset 919a831786f1 (bug 1208638) for windows build failures 2015-09-30 16:43:26 -07:00
David Anderson
b0e2473678 Don't use Direct2D if CompositorD3D11::Initialize fails. (bug 1208638, r=jrmuizel)
--HG--
extra : rebase_source : 2c0b1febd9bcc3a52f48a98243ab853f5b58848d
2015-09-30 16:16:16 -07:00
Lee Salzman
4fbc44de5a Bug 1205045 - remove GTK calls from compositor thread. r=jmuizelaar 2015-09-15 16:46:39 -04:00
David Anderson
ea934017d9 Support all blend modes in the basic compositor. (bug 1203829 part 1, r=mattwoodrow) 2015-09-15 13:07:05 -07:00
Bas Schouten
c39f9055e3 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
Kearwood (Kip) Gilbert
cbc7ba3ddb Bug 1157984 - Part 3: Correct bounding box transformations to support projections and correct clipping when transforming behind the camera,r=vlad
- Update callsites of Matrix4x4::TransformBounds to use
  Matrix4x4::TransformAndClipBounds.

--HG--
extra : rebase_source : a1aa889af56e404b7ca5c7125021171e67a0b8bf
2015-08-06 17:26:09 -07:00
Lee Salzman
f15be30759 Bug 1188462 - Fix inclusion of skia headers to use correct directory prefixes. r=jrmuizel 2015-07-29 16:31:40 -04:00
Kearwood (Kip) Gilbert
5b2ac66a0c Bug 1181240 - Part 3: Replace gfx3DMatrix with Matrix4x4 in gfx,r=vlad
- Refactored code to use Matrix4x4 instead of gfx3DMatrix.
- There is not expected to be any functional effect.
2015-07-10 17:06:35 -07:00
Birunthan Mohanathas
a8939590de 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
Nicolas Silva
1669cfdfef Bug 1180688 - Detect whether the widget will be able to present frames with BasicCompositor on Mac. r=mstange 2015-07-13 16:46:48 +02:00
Nathan Froyd
974d8120f2 Bug 1161627 - part 2 - machine-convert TemporaryRef<T> to already_AddRefed<T>; r=ehsan
This conversion was done with the script:

  find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl' | \
    egrep -v 'cairo-win32-refptr.h|RefPtr.h|TestRefPtr.cpp' | \
    xargs sed -i -e 's/mozilla::TemporaryRef</already_AddRefed</g' \
                 -e 's/TemporaryRef</already_AddRefed</g'

Manual fixups were performed in the following instances:

- We handled mfbt/RefPtr.h manually so as to not convert TemporaryRef itself
  into already_AddRefed.

- The following files had explicit Move() calls added to make up for the lack
  of a copy constructor on already_AddRefed:

  dom/base/ImageEncoder.cpp
  dom/media/MediaTaskQueue.{h,cpp}
  dom/media/webaudio/PannerNode.cpp

- A redundant overload for MediaTaskQueue::Dispatch was deleted.

- A few manual fixups were required in mfbt/tests/TestRefPtr.cpp.

- Comments, using declarations, and forward declarations relating to
  TemporaryRef in dom/canvas/ and gfx/layers/ were changed to refer to
  already_AddRefed.
2015-06-17 10:00:52 -04:00
Kearwood (Kip) Gilbert
e25ede39ea Bug 766345 - Part 1 - Implement DEAA Antialiasing for transformed layers (v5 Patch). r=vladimir, r=djg 2014-12-17 16:28:45 -08:00
Lee Salzman
e38cad0b37 Bug 1127752 - fixes for using Skia and OMTC with GTK3. r=jrmuizel 2015-05-13 11:54:17 +09:00
Thibaud Backenstrass
5e604392a5 Bug 1158122 - Remove some occurences of nsIntRect in gfx/layers/. r=nical 2015-05-07 11:07:35 +02:00
Ryan VanderMeulen
37e75ba5e6 Backed out changesets 230adc57e016 and 61bd6e2c6e72 (bug 1072898) for reftest failures.
CLOSED TREE
2015-05-06 11:27:32 -04:00
Kearwood (Kip) Gilbert
6db1d2f93f Bug 1072898: Part 1 - Correct rendering of layers that are both in front and behind the w=0 plane. r=mattwoodrow
- The BasicCompositor now transforms vertices prior to rendering in Skia, using
  a function that clips against frustum clipping planes in homogenous
  coordinate space.
2015-04-21 16:57:18 -07:00
dc9ccc6c1d Bug 1151749 - "Win-Only: Disabled Hardware Acceleration + CSS 3D transform on canvas -> black artefacts on hover". r=nical
--HG--
extra : rebase_source : dd951364914eb22de13bfbe4b45e5b974528c705
2015-04-07 06:33:00 +02:00
Steve Singer
4a748bd766 Bug 1141642 - Fix disable-skia builds. r=jmuizelaar
--HG--
extra : rebase_source : 6c6e1664973547b6131a5f5410bb0eec9afd750d
2015-04-18 19:44:00 +02:00
Nicolas Silva
e887c595eb Bug 1155621 - Remove no-op gfx2DGlue conversion helpers. r=Bas 2015-04-21 17:22:30 +02:00
Ehsan Akhgari
883849ee32 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Mike Hommey
7182517af9 Bug 1136958 - Reintroduce pixman code path removed in bug 1097776 for --disable-skia builds. r=jmuizelaar 2015-03-17 10:04:19 +09:00
Nicolas Silva
999b7333fe Bug 1128934 - Avoid calling GetClientBounds from BasicComposior. r=roc, karlt 2015-02-14 12:37:32 +01:00
David Anderson
6d2ea830bf Implement GetMaxTextureSize in the basic compositor. (bug 1135883, r=mattwoodrow)
--HG--
extra : rebase_source : 2185c8fd0b891d5ef296b92b3af7009b2f6fa72e
2015-02-24 13:39:01 -08:00
Benoit Girard
aa69b47387 Bug 1135857 - Remove ContentClientIncremental. r=mattwoodrow 2015-02-23 18:22:06 -05:00
Carsten "Tomcat" Book
4ae7286acb Backed out changeset d81339c7ac52 (bug 1128934) 2015-02-17 14:32:11 +01:00
Nicolas Silva
b930f4e186 Bug 1128934 - Avoid calling GetClientBounds from BasicComposior. r=roc, karlt 2015-02-14 12:37:32 +01:00
Nicholas Nethercote
b4adaf93a3 Bug 1117639 - Remove AbortFrame() because it is dead. r=bas.
--HG--
extra : rebase_source : 7df4840fb99dc025ee102d9697097caa4034fa6d
2015-01-05 15:54:51 -08:00
Markus Stange
a3d313d208 Bug 1097776 - Don't leak the SkBitmapDevice. r=jrmuizel 2014-11-18 17:22:01 -05:00
Markus Stange
d758890dc7 Bug 1097776 - Use Skia for unaccelerated rendering of 3D transforms. r=jrmuizel 2014-11-18 17:21:45 -05:00
Wes Kocher
9581b5ae7b Backed out changeset 0092a5e1467d (bug 1097776) for reftest failures and leaks 2014-11-18 11:00:08 -08:00
Markus Stange
a2063bf6a6 Bug 1097776 - Use Skia for unaccelerated rendering of 3D transforms. r=jrmuizel 2014-11-18 11:36:17 -05:00
Benoit Girard
f654866a36 Bug 1087530 - Retain container's intermediate surfaces for up to one frame. r=jmuizelaar 2014-11-03 17:27:32 -05:00
Carsten "Tomcat" Book
7f42025e12 Backed out changeset 48667a14f94d (bug 1092360) for test bustage / crashes on a CLOSED TREE 2014-11-14 08:14:22 +01:00
Benoit Girard
db4fbee6fb Bug 1092360 - Avoid redundant framebuffer switches. r=jrmuizel 2014-11-12 17:39:17 -05:00
Jonathan Watt
243d1f8a0e Bug 1074128, part 3 - Update the Mozilla code to use AutoSaveTransform's new name. r=Bas 2014-09-29 18:32:36 +01:00
Nicolas Silva
24ab6f3545 Bug 1054581 - Have all compositor backends behave consistently when creating a zero-sized intermediate render target. r=jrmuizel 2014-09-26 15:02:35 -04:00
Jeff Muizelaar
34032eed5e Bug 1064479. Redo how screen rotation is implemented on B2G/Layers. r=nical,mwoodrow
Currently we use a world transform on the LayerManager. This gets passed to the
screen render target which adjusts the gl transform to accomplish the rotation.
This causes a lot of the system to have to know about the transform.

Instead we can just bake the transform into the root layer's shadow transform.
Everything now mostly just works.

--HG--
extra : rebase_source : e0e170d191eef5887a2e6b17f71ac79037033006
2014-09-10 15:59:00 -04:00
Jonathan Watt
423fda249a Bug 1065031, part 2 - Changes to Moz2D consuming code to update callers of Moz2D Matrix's Translate, Scale and Rotate methods to use these methods' new names. r=Bas 2014-09-10 18:29:35 +01:00