Commit Graph

178 Commits

Author SHA1 Message Date
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
Sotaro Ikeda
8e434d1c10 Bug 1255320 - Create DrawTarget with DIB as similar DrawTarget r=jrmuizel 2016-03-13 19:46:23 -07:00
Nathan Froyd
da33676fbb Bug 1251716 - use UniquePtr instead of ScopedDeletePtr in DrawTargetCairo; r=jrmuizel
UniquePtr is more standard than ScopedDeletePtr; using standard
constructs whenever possible is preferable.
2016-02-26 13:34:11 -05:00
Bogdan Postelnicu
cd1f9673bd Bug 1251241 - return from DrawTargetCairo::FillGlyphs if |aFont| is nullptr. r=roc
MozReview-Commit-ID: 56RQO8Fm2AP

--HG--
extra : rebase_source : bd0a70750199a62d627c570e2b1bdbc10ebb621a
2016-02-25 16:59:34 +02:00
Milan Sreckovic
94b767a7cd Bug 1247700: Avoid crash from invalid fonts. r=bas
MozReview-Commit-ID: 9ULEBZAH9zz

--HG--
extra : rebase_source : 3eeea06396e0cca6685ac98915278a1bd768e55c
2016-02-23 09:55:44 -08:00
Bogdan Postelnicu
85e3e6dee1 Bug 1242421 - remove useless null check. r=roc@ocallahan.org
--HG--
extra : transplant_source : %0D%9E%D5%21l%FC%EF%15g%0B%16x%DD%88H%80%C3L%CB%A0
2016-01-25 14:00:29 +02:00
Bas Schouten
838779b05e Bug 1241058: Assure several operations properly operate on the current group target. r=jrmuizel
--HG--
extra : rebase_source : 095317736906a39a75c47005e12e112113bc087b
2016-01-20 17:27:36 +01:00
Lee Salzman
579717eec1 Bug 1241163 - Replace DrawTarget::CreateSourceSurfaceFromNativeSurface(CAIRO_CONTEXT) with Factory::CreateSourceSurfaceForCairoSurface. r=jrmuizel 2016-01-20 13:31:44 -05:00
Lee Salzman
466b5fb4c9 Bug 1239040 - Fix DrawTargetCairo/DrawTargetSkia LockBits and BorrowedXlibDrawable to work inside PushLayer. r=jrmuizel 2016-01-13 13:11:07 -05:00
Chris Peterson
b94d12b3b4 Bug 1236323 - Part 1: Annotate intentional switch fallthroughs to suppress -Wimplicit-fallthrough warnings in gfx/. r=nical
gfx/thebes/gfxFcPlatformFontList.cpp:706:9: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
gfx/thebes/gfxFontconfigFonts.cpp:2183:9: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
gfx/2d/DrawTargetCG.cpp:812:5: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
gfx/2d/DrawTargetCairo.cpp:636:5: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
2015-11-24 09:39:04 -08:00
Nicholas Nethercote
4b651d870f Bug 1231881 - Remove NativeSurfaceType::CAIRO_SURFACE. r=bas.
We have both NativeSurfaceType::CAIRO_CONTEXT and
NativeSurfaceType::CAIRO_SURFACE. They both refer to DrawTargets with Cairo
backends. The only reason for having both is so you can call GetNativeSurface()
and get either the |cairo_t*| or the underlying |cairo_surface_t*|.

I argue that this convenience confuses things more than it helps. This patch
removes CAIRO_SURFACE, and adds explicit cairo_get_target() calls where
necessary.

--HG--
extra : rebase_source : 6f1701a8131d854c7f623272182029847876754e
2016-01-05 14:24:08 -08:00
Bas Schouten
6b108bc5cb Bug 1220629 - Part 3: Implement PushLayer/PopLayer API in cairo. r=jrmuizel
--HG--
extra : rebase_source : 058ed10659456f59761535f7538ced6df5425aec
2016-01-06 00:04:38 +01:00
Bas Schouten
ad65c68987 Bug 1107792: Don't ask for similar if the surface has an error, and more data in crash reports. r=milan
--HG--
extra : commitid : 2BXoALYvMhT
2015-12-24 12:55:36 -05:00
Milan Sreckovic
9ac3b8bc44 Bug 1230740 - wallpaper patch for a missing nullptr scenario. r=bas 2015-12-14 13:11:00 +01:00
Milan Sreckovic
bf9a6ffcc5 Bug 1219494 - Part 2. gfx/2d and gfxCrash. r=milan
* * *
Bug 1219494: Part 3. gfx/thebes, gfx/src and gfxCrash
2015-11-26 08:38:00 +01:00
Milan Sreckovic
b216c58347 Bug 1200021 - Part 3: Add DrawTarget::IsValid and don't let Cairo version snapshot invalid surface. r=bas 2015-12-04 13:43:00 -05:00
Robert O'Callahan
ef0cbe97ce Bug 1224976. Recover from singular-matrix cairo errors. r=mattwoodrow
--HG--
extra : commitid : GIbNC6bzIJp
extra : rebase_source : 15643f58ae0f360a5b91c146c686b0a9a0c19a8a
2015-11-16 17:35:23 +13:00
Bas Schouten
b8dfcb93d1 Bug 1210560 - Part 5: Convert BasicLayers usecases to PushGroupForBlendBack and temporary surfaces. r=jrmuizel 2015-11-11 16:15:39 +01:00
Jeff Muizelaar
d267b10514 Bug 1209812 (part 5) - Add endian-neutral variants to SurfaceFormat. r=nical,Bas.
--HG--
extra : rebase_source : 9726a7a1e70dc2a8341415b69f4b7322e4274fee
2015-10-18 21:53:40 -07:00
Nicholas Nethercote
a34d272e2b Bug 1209812 (part 3) - Rename SurfaceFormat::R5G6B5 as R5G6B5_UINT16. r=Bas.
--HG--
extra : rebase_source : 1efcfb2522e823e55b5c7b77531a9d2c42c49c8b
2015-10-22 23:01:31 -07:00
Ted Mielczarek
fc136257e3 bug 1170987 - Fix gfx/2d to build on iOS. r=jrmuizel 2015-10-28 14:10:24 -05:00
Milan Sreckovic
dd6aa8383f Bug 1217192 - Use gfxCriticalNote where we're already using the non-default construction parameter. r=mchang 2015-10-21 14:34:00 +02: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
Lee Salzman
df37acf297 Bug 1185636 - Remove hard stop workaround for Cairo due to regressions. r=jrmuizel 2015-07-20 14:51:50 -04:00
Milan Sreckovic
2ef858355b Bug 1182209 - Additional info with some critical errors. r=mchang
CLOSED TREE
2015-07-14 15:22:29 -04: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
Lee Salzman
6f442f976d Bug 1170390 - Detect 16bpp cairo xlib surface format. r=jrmuizel 2015-07-06 20:19:56 -04:00
Lee Salzman
97d3a0fc71 Bug 1180246 - Part 1 - remove dependencies on gfxD2DSurface. r=bas
--HG--
extra : rebase_source : 199520a80f8d904f2034fa39d9640d271078a6ac
2015-07-02 08:02:51 -04: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
Andrew Comminos
8f3a42c617 Bug 1177807 - Mark cairo surface dirty in ReleaseBits. r=jrmuizel 2015-06-26 11:34:00 +02:00
Lee Salzman
3fe9408260 Bug 1033375 - Nudge simple linear gradients with hard stops to half-pixel gradient. r=nical 2015-06-23 20:50:36 -04:00
Andrew Comminos
bc95798c00 Bug 1169370 - Mark tree Cairo surface dirty after borrow. r=jrmuizel
--HG--
extra : rebase_source : 3e9d5349a0218a60ff2178aeec42741028427824
2015-06-10 12:16:00 -04:00
Lee Salzman
cb8cec408b Bug 1171454 - Workaround for Cairo's source operator with alpha handling. r=jrmuizel
--HG--
extra : rebase_source : 12d68416660935bf2072a898c903f29b80c39107
2015-06-05 15:30:13 -04:00
Nathan Froyd
db188ea282 Bug 1160485 - remove implicit conversion from RefPtr<T> to TemporaryRef<T>; r=ehsan
Having this implicit conversion means that we can silently do extra
refcounting when it's completely unnecessary.  It's also an obstacle to
making RefPtr more nsRefPtr-like, so let's get rid of it.
2015-05-01 09:14:16 -04:00
Nathan Froyd
c24f5f4e7c Bug 1116905 - part 3 - remove dependence on implicit conversion from T* to TemporaryRef<T>, gfx changes; r=jrmuizel 2015-04-30 15:20:30 -04:00
Lee Salzman
e38cad0b37 Bug 1127752 - fixes for using Skia and OMTC with GTK3. r=jrmuizel 2015-05-13 11:54:17 +09:00
Nicolas Silva
08a5fef1fc Bug 1144147 - Warning fix in DrawTargetCairo.cpp. r=jrmuizel 2015-03-17 16:53:46 +01:00
Nicolas Silva
0863d3f6fa Bug 1123080 - Use cairo's image backend as canvas fallback on windows. r=Bas 2015-03-12 19:40:06 +01:00
Milan Sreckovic
60347c0d1e Bug 1133119 - ::Map should fail if the data is null, and add more null pointer checks. r=mattwoodrow 2015-03-03 11:17:55 -05:00
Ehsan Akhgari
a41280816e Bug 1116622 - Give TemporaryRef a take() method semantically equivalent to already_AddRefed::take(); r=froydnj
This is in preparation of removing TemporaryRef.  It should help make
already_AddRefed a drop-in replacement for it.
2015-01-05 11:32:37 -05:00
Milan Sreckovic
3c6462cb13 Bug 1095510 - See if ClearRect has weird data. r=jmuizelaar 2014-12-19 16:06:15 -05:00
Nicholas Nethercote
dee00140c0 Bug 1113037 - Use stack allocation in DrawTargetCairo::FillGlyphs() in the common case. r=mattwoodrow.
--HG--
extra : rebase_source : f6270322664121cec3c82a7448c80963df6b0e5f
2014-12-18 21:23:28 -08:00
Milan Sreckovic
8445ba0749 Bug 1101685 - Optionally assert in loggers, default to true on gfxCriticalError. Clean up the calls where large texture sizes were triggering the asserts in tests. r=nical 2014-12-17 17:54:04 -05:00
James Willcox
18fac679db Bug 1049138 - Use the cairo surface format to determine gfx format when able r=jmuizelaar
--HG--
extra : histedit_source : 9027bee76ab792d29a920bffb6443f40e6a35e13
2014-12-17 15:49:57 -06:00
Carsten "Tomcat" Book
f901cbe58a Backed out changeset 8b751f12a3ad (bug 1101685) for windows 7 debug crashtest/reftest crashes 2014-12-17 12:56:04 +01:00
Milan Sreckovic
0b0239db58 Bug 1101685 - Optionally assert in loggers, default to true on gfxCriticalError. Clean up the calls where large texture sizes were triggering the asserts in tests. r=nical 2014-12-16 13:22:26 -05:00
Milan Sreckovic
8aa1b59e6c Bug 1095925: Propagate the error up the chain. r=jmuizelaar 2014-11-14 16:11:02 -05:00
Jonathan Watt
307ac4cb7f Bug 1083755 - Port the CAIRO_COORD_MAX code in nsRenderingContext::FillRect to DrawTargetCairo::FillRect. r=Bas, a=kwierso 2014-11-06 22:07:36 +00:00
Jeff Muizelaar
1ba41a49b3 Bug 1072847 - Initialize mSurface. r=BenWa
--HG--
extra : rebase_source : abd536b8cd2e91c28ea0cd09e21a12da1e8dcee1
2014-10-28 10:08:25 -04:00