Commit Graph

63 Commits

Author SHA1 Message Date
cku
1d2f5b0218 Bug 1330286 - Part 1. Replace CAIRO draw target by platfrom specific target. r=mstange
MozReview-Commit-ID: LPOCgUxIONb

--HG--
extra : rebase_source : 89326ea1cb5e65bc36993696c1c2feaecfc36dc5
2017-01-11 18:14:16 +08:00
Iris Hsiao
0d0bc16680 Backed out changeset e54b0201b200 (bug 1330286) 2017-01-16 16:28:43 +08:00
cku
133f456101 Bug 1330286 - Part 1. Replace CAIRO draw target by platfrom specific target. r=mstange
MozReview-Commit-ID: LPOCgUxIONb

--HG--
extra : rebase_source : 595ddd92a259bbfb737f0c6fd92a9e376db536c2
2017-01-11 18:14:16 +08:00
cku
d476a5e983 Bug 1325865 - Part 1. Remove double transform. r=longsonr+218550
For an SVG container element(such as g/svg etc) used in mask, we apply
transform of it twice:
1. The first time is in nsSVGMaskFrame::GetMaskForMaskedFrame. We apply
   transform by eAllTransforms(= eUserSpaceToParent + eChildToUserSpace)
2. The second time is in nsSVGDisplayContainerFrame::PaintSVG. We apply
   transform by eChildToUserSpace

So, totally we apply 1 * eUserSpaceToParent + 2 * eChildToUserSpace. This
patch is trying to remove this one extra eChildToUserSpace.

MozReview-Commit-ID: 2pQCsrCIPNA

--HG--
extra : rebase_source : 27fe1648eb80d9c4d5111bbaec7ec38d80a0a8ac
2017-01-13 17:02:09 +08:00
cku
03916132bb Bug 1314536 - Part 3. Correct comment and add a test case for it. r=mstange
At the caller side of nsSVGMaskFrame::GetMaskForMaskedFrame(nsSVGIntegrationUtils
& nsSVGUtils), we do skip masked frame painting when this function return value
other then DrawResult::SUCCESS. So there is no need to return an empty surface
anymore.

And add a test case to verify it.

MozReview-Commit-ID: DHl6krJ1ABF

--HG--
extra : rebase_source : 46d653d4e35833e3e816d252ce3f08d2d8190602
2016-11-18 22:06:51 +08:00
cku
f1ae46cbdd Bug 1314536 - Part 1. Implement/use nsSVGMaskFrame::MaskParams and add a test case for nested mask-mode usage in SVG mask. r=mstange
MozReview-Commit-ID: SkU6F5fJ9b

--HG--
extra : rebase_source : d25e8ab2bc0bc3efad78a04705c9aef40119f91f
2016-11-16 12:59:52 +08:00
Phil Ringnalda
7ab6adac90 Backed out 3 changesets (bug 1314536) for Android "'Pair' does not name a type" build bustage
Backed out changeset 16632b726b19 (bug 1314536)
Backed out changeset 2effc920decf (bug 1314536)
Backed out changeset b0aa89236bb2 (bug 1314536)
2016-11-18 18:48:49 -08:00
cku
5eb153c021 Bug 1314536 - Part 3. Correct comment and add a test case for it. r=mstange
At the caller side of nsSVGMaskFrame::GetMaskForMaskedFrame(nsSVGIntegrationUtils
& nsSVGUtils), we do skip masked frame painting when this function return value
other then DrawResult::SUCCESS. So there is no need to return an empty surface
anymore.

And add a test case to verify it.

MozReview-Commit-ID: DHl6krJ1ABF

--HG--
extra : rebase_source : a4e23896a84c5dd1b5df9c6e8505a2b32ee17b84
2016-11-18 22:06:51 +08:00
cku
eee760be28 Bug 1314536 - Part 1. Implement/use nsSVGMaskFrame::MaskParams and add a test case for nested mask-mode usage in SVG mask. r=mstange
MozReview-Commit-ID: SkU6F5fJ9b

--HG--
extra : rebase_source : 129dc2d6abf5911ba42b459db20cfb54b83dfc0c
2016-11-16 12:59:52 +08:00
vincentliu
4addf0c4b3 Bug 1301459 - In nsSVGMaskFrame::GetMaskForMaskedFrame, create surface by Factory::CreateDataSourceSurface. r=mstange
---
 layout/svg/nsSVGMaskFrame.cpp | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)
2016-10-04 09:33:43 +08:00
cku
658b898375 Bug 1301353 - Map surface by WRITE type. r=mstange
MozReview-Commit-ID: 6vPaJh5EVCf

--HG--
extra : rebase_source : 56b46eadccc6f92f9adbbe4091a6b58ec2245cac
2016-09-07 16:39:43 +08:00
cku
99414ab73f Bug 1258510 - Part 2. Use the return value of nsLayoutUtils::DrawSingleImage & DrawSingleUnscaledImage. r=mstange
MozReview-Commit-ID: Eo8FzwOFAOT

--HG--
extra : rebase_source : 7da0ec5d1066067d5c1b22f0bc69b01cfd1131c5
2016-07-14 12:47:06 +08:00
cku
3777b5cc5b Bug 1272859: Part 1. Reduce mask surface's size r=mstange
MozReview-Commit-ID: GkADCkiElKy

--HG--
extra : rebase_source : 168bf0014fb0db453547ea77f13c555d8b4c376b
extra : source : c5d9e342b6a2b2ae7547f36e1f00b54b8bd12439
2016-06-18 00:24:26 +01:00
Nicholas Nethercote
a02611e830 Bug 1276824 (part 1) - Rename gfxContext::ForDrawTarget{,WithTransform}(). r=milan.
The new names Create{,PreservingTransform}OrNull() better communicate that
these functions (a) do object creation, and (b) are fallible.

--HG--
extra : rebase_source : a36bd9a2bcdfae281868959403f811f2bc690ad4
2016-06-07 09:39:56 +10:00
Ting-Yu Lin
39914e42eb Bug 1264837 Part 31 - Remove nsSVGMaskFrameBase. r=dholbert
MozReview-Commit-ID: DMAj31tSGhv

--HG--
extra : rebase_source : 1c6a0619d6149f739a59aa99e79dda0b2f7fac1c
2016-04-18 15:30:09 +08:00
Milan Sreckovic
e0b2b9e425 Bug 1259513: Make gfxContext constructor private, use a utility function that can return nullptr. r=bas,lsalzman
MozReview-Commit-ID: rHhLEDZEQt

--HG--
extra : rebase_source : 4988f3f488c19dd35a9979e96f78a5511ee8f3d2
2016-04-12 15:18:11 -04:00
Ethan Lin
f70f62c6a0 Bug 1228354 - Part1 - Support luminance mask mode. r=mstange r=bas
--HG--
extra : rebase_source : cd30463f8bfbdadbff5fa9d7ecce9ae075997223
2016-03-24 01:32:00 +01: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
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
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
Nicolas Silva
0b1f75bea0 Bug 1132854 - Remove the gfx::ToIntSize conversion helper. r=Bas 2015-04-07 16:08:57 +02:00
Andrea Marchesini
2c4f63331f Bug 1134280 - Get rid of Tag() - patch 1 - Is{HTML,XUL,MathML,SVG}Element and IsAnyOf{HTML,XUL,MathML,SVG}Elements, r=smaug 2015-03-03 11:08:59 +00:00
Jonathan Watt
295a3bb098 Bug 1127507 - Get transforms on the children of SVG <mask> working. r=dholbert
--HG--
extra : rebase_source : 1569a6e4e5f72f71fb47486cdc99f9c64d15b689
2015-01-29 23:58:42 +00:00
Ethan Lin
991db41f23 Bug 1120294 - Modify the svg luminance calculating for reducing memcpy. r=longsonr 2015-01-12 21:51:00 -05:00
Ethan Lin
0bcd6939a3 Bug 1120294 - Use A8 format svg mask and refactor svg neon code. r=longsonr 2015-01-12 07:36:00 -05:00
Ethan Lin
4138e739cb Bug 1116070 - Use neon to speed up the mask creation. r=longsonr 2015-01-06 02:44:00 -05:00
Jonathan Watt
45316ba5db Bug 1091321, part 5 - Convert nsSVGMarkerFrame::PaintMark and related code from nsRenderingContext to gfxContext. r=longsonr 2014-10-31 20:08:54 +00:00
Jonathan Watt
b04b1790b1 Bug 1091321, part 2 - Convert nsSVGIntegrationUtils::PaintFramesWithEffects and related code from nsRenderingContext to gfxContext. r=longsonr 2014-10-31 20:08:53 +00:00
Jonathan Watt
bf49eb7f25 Bug 651021 - Make nsRenderingContext a stack class. r=jrmuizel 2014-10-31 20:08:49 +00:00
Jonathan Watt
e3bd1068b9 Bug 1085167, part 2 - Get rid of nsRenderingContext's DeviceContext and any need for it to know about app-units-per-device-pixel. r=mattwoodrow
--HG--
extra : rebase_source : d8fb804f03a1cc4635d6acd7f66f5f21962de6d3
2014-10-20 10:55:49 +01:00
Matt Woodrow
5056e93044 Bug 1054838, part 2 - Remove callers of DrawTarget::Mask. r=Bas,jwatt 2014-09-12 08:20:12 +01:00
Jonathan Watt
2a0767dbda Bug 1064084, part 4 - Convert all consumers of gfxContext::IdentityMatrix() to use gfxContext::SetMatrix(). r=Bas 2014-09-11 07:57:39 +01:00
Jonathan Watt
62cd61e1b7 Bug 1065127 - Avoid Matrix().Translate()/Scale()/Rotate() multiplication in lots of places. r=Bas 2014-09-10 14:26:12 +01:00
Carsten "Tomcat" Book
31ab875e26 Backed out changeset e6b766d8a815 (bug 1065127) for bustage 2014-09-10 14:30:36 +02:00
Jonathan Watt
ee916d4351 Bug 1065127 - Avoid Matrix().Translate()/Scale()/Rotate() multiplication in lots of places. r=Bas
--HG--
extra : rebase_source : ef075258c31973c4943b9b3a9229685a9bb83917
2014-09-10 11:45:42 +01:00
Jonathan Watt
13e1e5f79d Bug 1062249 - Vastly simplify the various GetCanvasTM methods. r=longsonr
--HG--
extra : rebase_source : b0ba980a34c720bd3c3f3c95733083e92f0c0513
2014-09-08 12:28:50 +01:00
Jonathan Watt
2ec303fb9e Bug 932771, part 3 - Make PaintSVG painting work by passing transforms down, rather than walking up the tree using GetCanvasTM. r=longsonr 2014-08-29 20:42:07 +01:00
Jonathan Watt
e2bfc1e9ea Bug 1053237 - Stop unnecessarily calling nsSVGUtils::AdjustMatrixForUnits() over and over in nsSVGMaskFrame. r=longsonr 2014-08-18 10:35:26 +01:00
Jonathan Watt
91e483122f Bug 1025553, part 3 - Give gfxMatrix::Invert() the same semantics as Moz2D's Matrix::Invert(). r=Bas 2014-07-11 08:06:39 +01:00
Jonathan Watt
c97839b951 Bug 1036858 - Remove various includes of gfxImageSurface.h that are no longer necessary. r=Cwiiis 2014-07-11 08:06:38 +01:00
Jonathan Watt
d3f868f9ca Bug 987194 - Convert SVG masking to Moz2D. r=mattwoodrow 2014-06-23 05:45:31 +01:00
Mats Palmgren
399be41768 Bug 508665 - part 5, Make nsIFrame::Init require a nsContainerFrame* for the parent frame param. r=roc 2014-05-24 22:20:40 +00:00
Daniel Holbert
b0faf1eb9b Bug 991285 part 1: Consistently allocate nsRenderingContext instances on the heap. r=roc 2014-04-15 12:54:10 -07:00
Arnaud Sourioux
2d583fd28f Bug 919806: Get rid of NS_IMETHOD in nsIFrame.h and its implementations r=dholbert 2014-02-17 23:47:48 -08:00
Benoit Jacob
e5ed95579b Bug 959380 - 2/5 - Make gfxImageFormat a typed enum - r=jrmuizel
find . -type f | grep -v \./obj | grep -v \.hg | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)gfxImageFormat\(ARGB32\|RGB24\|A8\|A1\|RGB16_565\|Unknown\)\($\|[^A-Za-z0-9_]\)/\1gfxImageFormat::\2\3/g'
2014-01-23 13:26:40 -05:00
Robert Longson
9fdf63147a Bug 955854 - Remove unused colour space mapping code and move the rest to nsSVGMaskFrame. r=dholbert 2014-01-02 12:01:29 +00:00
Benoit Jacob
55d6cf1e20 Bug 913872 - Take nested enums out of gfxASurface - 1/3 : automatic changes - r=jrmuizel
Generated by these regexes:

find . -name '*.h' -o -name '*.cpp' -o -name '*.mm' | grep -v '\.hg' | grep -v '^\.\/obj' | xargs sed -i 's/gfx[A-Za-z0-9_]*Surface\:\:[a-z]*\(\(ImageFormat\|SurfaceType\|ContentType\|MemoryLocation\)[0-9A-Za-z_]*\)/gfx\1/g'

find . -name '*.h' -o -name '*.cpp' -o -name '*.mm' | grep -v '\.hg' | grep -v '^\.\/obj' | xargs sed -i 's/gfx[A-Za-z0-9_]*Surface\:\:[a-z]*\(\(CONTENT_\|MEMORY_\)[0-9A-Za-z_]*\)/GFX_\1/g'

find . -name '*.h' -o -name '*.cpp' -o -name '*.mm' | grep -v '\.hg' | grep -v '^\.\/obj' | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)\(CONTENT_COLOR\|CONTENT_ALPHA\|CONTENT_COLOR_ALPHA\|CONTENT_SENTINEL\|MEMORY_IN_PROCESS_HEAP\|MEMORY_IN_PROCESS_NONHEAP\|MEMORY_OUT_OF_PROCESS\)\($\|[^A-Za-z0-9_]\)/\1GFX_\2\3/g'

find . -name '*.h' -o -name '*.cpp' -o -name '*.mm' | grep -v '\.hg' | grep -v '^\.\/obj' | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)\(ImageFormatARGB32\|ImageFormatRGB24\|ImageFormatA8\|ImageFormatA1\|ImageFormatRGB16_565\|ImageFormatUnknown\|SurfaceTypeImage\|SurfaceTypePDF\|SurfaceTypePS\|SurfaceTypeXlib\|SurfaceTypeXcb\|SurfaceTypeGlitz\|SurfaceTypeQuartz\|SurfaceTypeWin32\|SurfaceTypeBeOS\|SurfaceTypeDirectFB\|SurfaceTypeSVG\|SurfaceTypeOS2\|SurfaceTypeWin32Printing\|SurfaceTypeQuartzImage\|SurfaceTypeScript\|SurfaceTypeQPainter\|SurfaceTypeRecording\|SurfaceTypeVG\|SurfaceTypeGL\|SurfaceTypeDRM\|SurfaceTypeTee\|SurfaceTypeXML\|SurfaceTypeSkia\|SurfaceTypeSubsurface\|SurfaceTypeD2D\|SurfaceTypeMax\)\($\|[^A-Za-z0-9_]\)/\1gfx\2\3/g'
2013-09-24 16:45:13 -04:00
Jonathan Kew
eb19dbaccf bug 875329 - don't ignore transforms when rendering SVG-in-OT glyphs. r=heycam 2013-09-11 08:27:45 +01:00
Jonathan Watt
527254d968 Bug 854765 - Get rid of the DidSetStyleContext overrides in SVG frame code to avoid some major perf hits. r=roc 2013-05-24 18:32:33 +01:00