Commit Graph

72 Commits

Author SHA1 Message Date
Milan Sreckovic
11a60fca68 Bug 1130195: Don't immediately crash if we can't allocate image. Carry r=bas 2015-08-11 14:07:49 -07:00
Milan Sreckovic
476936f180 Bug 1182209 - Additional info with some critical errors. r=mchang
CLOSED TREE
2015-07-14 15:22:29 -04:00
Nicolas Silva
ea57f8fbc3 Bug 1178816 - Fix a crash when DrawTargetD2D1 fails to initialize. r=milan 2015-07-06 17:57:03 +02:00
Kyle
4341325aaf Bug 1168189 - Force D2D1 CopySurface to use DrawBitmap like D2D. r=bas 2015-06-19 16:05:51 -04:00
Nathan Froyd
92a8124fef 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
Kyle Fung
f4bae9dcfb Bug 1160070 - Used BitmapBrush instead of ImageBrush when no sampling bounds. r=bas 2015-06-12 17:28:25 -04:00
Andreas Pehrson
4ff090a008 Bug 1162357 - Convert some usage of DataSourceSurface::GetData() to Map(). r=bas 2015-06-10 19:01:00 +08:00
Kyle
9922c2d2b8 Bug 1169039 - Check for NULL in every function that uses CreateEffect(). r=mstange 2015-05-28 15:46:16 -04:00
Bas Schouten
851d634aaa Bug 1153609: Push layers for cleartype when trying to draw cleartype glyphs to a transparent layer. r=jrmuizel
This patch lets us repush all layers with their backgrounds copied when drawing subpixel AA'ed text to a transparent surface. This can be wasteful since the last layer that was pushed could already have had its pixels where the glyphs will be drawn made opaque, however we have no way of knowing this so we have to always repush the layers.
2015-05-29 14:49:19 +02:00
Nathan Froyd
43cddcfc0d 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
3c715f85db 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
Andrew Comminos
4afdb48d17 Bug 1161642 - Utilize primitive blends where available for faster blending on D2D 1.1. r=bas 2015-05-11 08:47:00 -04:00
Bas Schouten
2babc30c02 Bug 1161815: Use a single ID2D1SolidColorBrush per DrawTarget. r=jrmuizel 2015-05-07 02:38:10 +02:00
Bas Schouten
4c27e7445a Bug 1151821: Make globalCompositeOperator work correctly when a complex clip is pushed. r=jrmuizel 2015-04-10 07:09:31 +02:00
Nicolas Silva
d9ba24fb00 Bug 1155626 - Don't assume that Factory::GetD2D1Device returns a non-null device and add some gfxCriticalLog. r=Bas 2015-04-22 12:02:01 +02:00
Carsten "Tomcat" Book
d56096ffc2 Backed out changeset 1610ee9ba5d8 (bug 1151821) for m1 test failures 2015-04-10 11:12:51 +02:00
Bas Schouten
7f722a52e6 Bug 1151821: Make globalCompositeOperator work correctly when a complex clip is pushed. r=jrmuizel 2015-04-10 07:09:31 +02:00
Milan Sreckovic
6fd32c896b Bug 1130195: Report the failed bitmap creation, but still crash. r=bschouten 2015-02-25 17:44:56 -05:00
Bas Schouten
9c5511b6ae Bug 1083245: Pop all clips before copying to the destination blending surface. r=jrmuizel
We need to pop the clips from the decide context before flushing and copying to the destination blending surface, otherwise drawing commands executed on a pushed layer for clipping will not be realized on the destination surface for blending.

Note that this fixes most situation, but in the case of doing custom blending to an area of a surface which is not opaque while having a complex clip pushed this will still lead to some artifacts. I haven't seen this be a problem in practice though.
2015-02-04 22:03:21 +01:00
Bas Schouten
beca655bcf Bug 1089454: Prevent usage of incompatible graphics objects after device reset. r=jrmuizel 2015-01-28 00:54:19 +00:00
David Major
b49dfdfade Bug 1122367: Null check the result of D2DFactory(). r=Bas 2015-01-20 10:56:59 +13:00
Bas Schouten
f3ff0976ff Bug 1114398 - Part 1: Make Direct2D paths specifically typed to a backend type. r=jrmuizel 2015-01-08 00:10:48 +00:00
Milan Sreckovic
ce1206013b 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
Carsten "Tomcat" Book
5fcc79867a Backed out changeset 8b751f12a3ad (bug 1101685) for windows 7 debug crashtest/reftest crashes 2014-12-17 12:56:04 +01:00
Milan Sreckovic
9346512b14 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
Nicolas Silva
c795dbdc87 Bug 1086670 - Add more gfxCriticalError logging in the D2D backend. r=jrmuizel 2014-11-26 21:05:01 +01:00
Bas Schouten
bca8eb3828 Bug 1101248: Properly check return values of creation functions in DrawTargetD2D1::Init. r=BenWa 2014-11-24 19:44:48 +00:00
Bas Schouten
70cf10c6f8 Bug 892910: Deal with newSize becoming empty in CreatePartialBitmapForSurface. r=BenWa
This patch deals with the situation where newSize becomes empty and causes a division by 0 in the current code. It also ensures all the callers will abort any potential drawing when CreatePartialBitmapForSurface returns a nullptr.
2014-11-20 20:48:01 +00:00
Bas Schouten
ba60e77bb7 Bug 1101130: Make Direct2D 1.1 clean up its resources on shutdown. r=jrmuizel 2014-11-20 00:16:48 +00:00
Bas Schouten
4ff86ffcca Bug 1097293: Do not draw radial gradients when centers and radii are identical. r=jrmuizel
When Cinner and Couter are equal, as well as Rinner and Router, the algorithm described in the canvas specification will hit a division by 0. As described in section 7 of the Canvas2D specification nothing should be drawn in this situation.
2014-11-12 15:05:13 +00:00
Bas Schouten
f854664766 Bug 1088235: Use DrawBitmap when we can. r=jrmuizel 2014-11-11 22:09:31 +00:00
Bas Schouten
43a88d7569 Bug 1085187: Properly deal with sampling restriction when using DataSourceSurfaces. r=jrmuizel 2014-10-29 23:40:38 +01:00
Bas Schouten
6489752e16 Bug 1075615: Pretranslate the pattern matrix when the pattern specifies a sampling rect. r=jrmuizel 2014-10-01 19:50:24 +02:00
Markus Stange
6981f047ca Bug 983574 - When setting a SourceSurface input on a FilterNodeD2D1, delay the conversion to ID2D1Image until the actual DrawFilter call. r=Bas 2014-09-25 15:18:29 -04:00
Nicolas Silva
e8498a1bd9 Bug 1070018 - Log HRESULT error codes as hexadecimal values rather than signed integers. r=Bas 2014-09-23 11:35:39 -04:00
Bas Schouten
6a4ccee063 Bug 1068613 - Addendum 2: Fix bustage due to stray character. r=bustage on a CLOSED TREE 2014-09-18 00:35:48 +02:00
Nicolas Silva
4c21a9712e Bug 1068613 - Part 3: Log failures in D2D, D2D 1.1 and the D3D11 TextureClient. r=bas 2014-09-17 23:23:09 +02:00
Bas Schouten
70492a2d6c Bug 1066465: Fixup DrawTargetD2D1::DrawFilter to respect the AA mode and Finalize properly. r=jrmuizel 2014-09-14 23:52:47 +02:00
Bas Schouten
9fdc185d92 Bug 1066463: Have DrawTargetD2D1::DrawSurface take the transform into account when doing a partial upload. r=jrmuizel 2014-09-14 23:52:46 +02:00
Bas Schouten
c06664f2e5 Bug 1066676: Make DrawTargetD2D1::DrawSurface respect the interpolation mode. r=jrmuizel 2014-09-14 23:51:35 +02:00
Bas Schouten
c87bf4551e Bug 1066673: Change DrawTargetD2D1::DrawSurfaceWithShadow to operate as per Canvas spec. r=jrmuizel 2014-09-14 23:51:35 +02:00
Bas Schouten
e67ecee9e8 Bug 1066670: Deal with a failed brush creation by drawing transparent black. r=jrmuizel 2014-09-14 23:51:34 +02:00
Bas Schouten
cba15ac923 Bug 1066254: Make the temporary surface used in DrawTargetD2D1 always be transparent. r=jrmuizel 2014-09-14 23:51:33 +02:00
Bas Schouten
7c18b48737 Bug 1066153: Fail to create DrawTargetD2D1 over the maximum size. r=jrmuizel 2014-09-14 23:51:33 +02:00
Bas Schouten
da623fbe3e Bug 1066147: Clear new DrawTargets upon creation in D2D 1.1 backend. r=jrmuizel 2014-09-14 23:51:33 +02:00
Bas Schouten
649525dd6e Bug 1066142: Respect AntiAlias mode in Direct2D 1.1 backend. r=jrmuizel 2014-09-14 23:51:32 +02:00
Bas Schouten
15d1b60240 Bug 1062412: Support blending composition operations in D2D 1.1. r=jrmuizel 2014-09-14 23:51:31 +02:00
Bas Schouten
16cb23d8de Bug 1066138: Disable using TextureClientD3D11 for A8 surfaces and fix various TextureClientD3D11 A8 bugs. r=jrmuizel 2014-09-14 23:51:31 +02:00
Bas Schouten
509ba21605 Bug 1060963: Correctly deal with adjusted Source rectangle in DrawTargetD2D1::DrawSurface. r=jrmuizel 2014-09-14 23:51:30 +02:00
Bas Schouten
2e48dbcabb Bug 1060960: Fix D2D 1.1 backend's ClearRect to deal with transforms and complex clips. r=jrmuizel 2014-09-14 23:51:29 +02:00