Commit Graph

42 Commits

Author SHA1 Message Date
Matt Woodrow
b2487e960c Bug 892966 - Make gfxQuartzNativeDrawing support Moz2D surfaces. r=jrmuizel 2013-07-12 17:19:29 -04:00
Matt Woodrow
eb65fc3063 Bug 892966 - Implement CreateSourceSurfaceFromNativeSurface for DrawTargetCG and use it instead of copying pixel data. r=jrmuizel 2013-07-12 17:19:28 -04:00
Matt Woodrow
86c0401d89 Bug 892966 - Setup dashing correctly in DrawTargetCG::StrokeRect. r=jrmuizel 2013-07-12 17:19:28 -04:00
Matt Woodrow
2362fcace6 Bug 892966 - Take a reference to the CGContext when constructing a DrawTargetCG from one. r=jrmuizel 2013-07-12 17:19:27 -04:00
Jeff Muizelaar
e44e34c767 Bug 892964. Rewrite DrawTargetCG::MaskSurface to avoid using FillRect(). r=mattwoodrow
With FillRect we were setting the transform twice.

The patch looks really bad because I needed to move the implementation of
MaskSurface so that it was below the helper methods.

The actual change is:

-  FillRect(Rect(aOffset.x, aOffset.y, size.width, size.height), aSource, aDrawOptions);
-
+  if (isGradient(aSource)) {
+    // we shouldn't need to clip to an additional rectangle
+    // as the cliping to the mask should be sufficient.
+    DrawGradient(cg, aSource);
+  } else {
+    SetFillFromPattern(cg, mColorSpace, aSource);
+    CGContextFillRect(cg, CGRectMake(aOffset.x, aOffset.y, size.width, size.height));
+  }

This also avoids setting up other state like alpha and the unboundness fixer twice.

--HG--
extra : rebase_source : 762f2d94ddaff129d584aab1e1f429ddfea99277
2013-07-08 17:35:56 -04:00
Jeff Muizelaar
1e6e84f8d1 Bug 891660. Add support for Azure on Mac with OMTC. r=mattwoodrow
This is not the best approach but it works for now.  We basically pull the cg
context from gfxASurface and wrap a DrawTarget around it. In the end we'll need
to plumb the DrawTarget through more.

--HG--
rename : dom/ipc/PTabContext.ipdlh => dom/ipc/PContent.ipdl
extra : rebase_source : 49eac0354864ae9f2e7434b8b1efacc37d69fc23
2013-07-09 21:02:41 -04:00
Jeff Muizelaar
63c878f816 Bug 790673. Add BorrowedCGContext. r=bas
This can be used to safely get at the underlying CGContext.
2013-07-09 18:55:02 -04:00
Jeff Muizelaar
f167521fa7 Bug 886531. Fix MaskSurface implementation on CG. r=bas
The offsets were wrong.

--HG--
extra : rebase_source : 810f88c587e4fbcef377c53c13ee59a4b59cbe66
2013-06-24 17:28:21 -04:00
Jeff Muizelaar
44d26ad07a Bug 880836. Add MaskSurface() to Azure. r=bas
This gives a substantial performance improvement over the more general Mask():

Test (MaskSurface10x10):  1.93042ms +/- 0.305028
Test (MaskSurface100x100):  2.33435ms +/- 1.00807
Test (MaskSurface500x500):  28.0472ms +/- 0.820744
Test (MaskSurface1000x1000):  107.656ms +/- 6.44615
Test (Mask10x10):  13.5237ms +/- 0.0932034
Test (Mask100x100):  14.0742ms +/- 1.21005
Test (Mask500x500):  96.5596ms +/- 1.81415
Test (Mask1000x1000):  356.891ms +/- 9.30592

--HG--
extra : rebase_source : a3031305302fb4abe93aa480df35ed0936d68cd8
2013-06-12 23:57:51 -04:00
Ryan VanderMeulen
e6eb53fb07 Backed out changeset 8dcb029b9ca5 (bug 880836) for asserts.
CLOSED TREE
2013-06-18 12:08:19 -04:00
Jeff Muizelaar
32dbe991d6 Bug 880836. Add MaskSurface() to Azure. r=bas
This gives a substantial performance improvement over the more general Mask():

Test (MaskSurface10x10):  1.93042ms +/- 0.305028
Test (MaskSurface100x100):  2.33435ms +/- 1.00807
Test (MaskSurface500x500):  28.0472ms +/- 0.820744
Test (MaskSurface1000x1000):  107.656ms +/- 6.44615
Test (Mask10x10):  13.5237ms +/- 0.0932034
Test (Mask100x100):  14.0742ms +/- 1.21005
Test (Mask500x500):  96.5596ms +/- 1.81415
Test (Mask1000x1000):  356.891ms +/- 9.30592

--HG--
rename : layout/reftests/svg/text/dynamic-non-scaling-stroke-ref.svg => layout/reftests/svg/non-scaling-stroke-03-ref.svg
rename : layout/reftests/svg/text/dynamic-non-scaling-stroke.svg => layout/reftests/svg/non-scaling-stroke-03.svg
extra : rebase_source : a1218b8bc5cdcec7d4dd94561d841fb6e2a8ce5d
2013-06-12 23:57:51 -04:00
Jonathan Kew
1e56f2c480 bug 866747 - stroke glyphs individually instead of making a single path for the entire text run. r=bas 2013-04-30 19:26:28 +01:00
Daniel Holbert
5f1e502515 Bug 839384: Fix build warnings for DrawTargetCG. r=jrmuizel 2013-02-12 20:00:54 -08:00
Milan Sreckovic
94700f7920 Bug 818241 - Initialize mCg to nullptr. r=jmuizelaar 2013-01-29 10:22:52 -05:00
Rik Cabanier
e415179e91 Bug 748433: Adds support for blending to the canvas globalCompositeOperator. r=jrmuizel 2012-12-12 21:28:17 +01:00
Jeff Muizelaar
8c9b653c40 Bug 811919. Include the pattern transform when painting patterns in DrawTargetCG. r=benwa
This fixes a lot of azure content bugs.

--HG--
extra : rebase_source : be84084aa7753862920ddd7b04fbfb0bd0b54ded
2012-11-14 16:52:02 -08:00
Jonathan Kew
6fc36fa6e9 bug 715798 pt 3 - support Color Emoji font in the gfx/2d quartz backend. r=jrmuizel 2012-10-23 10:07:14 +01:00
Joe Drew
f034089eec Bug 782416 - Switch from NULL to nullptr in gfx::2d. r=Bas
--HG--
extra : rebase_source : cfa9fc8ae592880e22e1f14cee42539b4f911668
2012-08-14 14:06:12 -04:00
Joe Drew
0a6f454a9d Back out 98d2c24ce932 for failing to build r=moron 2012-08-15 12:51:33 -04:00
Joe Drew
bd561fcfea Bug 782416 - Switch from NULL to nullptr in gfx::2d. r=Bas
--HG--
extra : rebase_source : 9b12a2af4c55f4dc383e8075b400e7a1fbe1ac23
2012-08-14 14:06:12 -04:00
Benoit Girard
1f69b9e7d3 Bug 724666 - Part 2: Add CGIOSurfaceContext to azure. r=jmuizelaar 2012-07-31 11:17:43 -04:00
Nicolas Silva
98c9dc075e Bug 775226 - Support CreateDrawTargetForData with Azure's CoreGraphics backend, r=jrmuizel 2012-07-26 14:06:23 -04:00
Jeff Muizelaar
1d94e6d617 Bug 764594. Remove some unneeded calls in the Azure CG backend. r=bgirard
Some old code that was copy-n-pasted but never used.
2012-06-12 21:15:32 -07:00
Jeff Muizelaar
e845b8fe0a Bug 752341. Avoid using CGContextSetTextMatrix. r=bgirard
CGContextSetTextMatrix has behaviour that depends on the text
drawing mode. We want consistency so avoid CGContextSetTextMatrix.

--HG--
extra : rebase_source : c6e46252823586d947ec1dd19db7df980dee23f8
2012-05-21 10:22:11 -04:00
Gervase Markham
82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Jeff Muizelaar
a99a32ae57 Bug 743499. Handle negative sizes in CG backend. r=bas, a=akeybl
I didn't realize Sizes could be negative when originally writing this code.
2012-04-23 17:09:57 -04:00
Bas Schouten
3f984e9d0e Bug 736134 - Part 1: Add GlyphRenderingOptions API to Azure. r=jrmuizel 2012-03-19 19:20:17 +00:00
Jeff Muizelaar
ba00f463ee Bug 731117. Bound the size of CG surfaces to match cairo. r=bas
This fixes crashes that can happen when we try to create
an image surface from a quartz surface larger than the maximum
size supported by image surfaces.

--HG--
extra : rebase_source : 6ef9c66a91068f75ddef90a3453a7360dd91fa78
2012-02-29 21:30:11 -05:00
Jeff Muizelaar
64aa64da5f Bug 728028. CG: Avoid double transforming filled gradients. r=mwoodrow
When we fixed transformed clips it caused us to double transform gradients. We
fix this by avoiding ::PushClip when drawing gradients. This has the advantage
of saving a save and restore pair and it makes Fill() more closely match
Stroke()
2012-02-25 00:35:39 -05:00
Rafael Ávila de Espíndola
9c9009d7bf Bug 723122 - fix clang build. r=jmuizelaar. 2012-02-02 10:02:06 +01:00
Ed Morley
56c92d9d94 Merge last PGO-green changeset of mozilla-inbound to mozilla-central 2012-01-31 10:52:29 +00:00
Jeff Muizelaar
b17cef0f85 Bug 720482. Make CG snapshots work more like the other backends. r=joe,mattwoodrow,bas
This has big improvement in the performance of GetImageData() because
we make the snapshot lazily instead of using the vm_copy() method
of CGBitmapContextCreateImage()
2012-01-31 01:46:54 -05:00
Jeff Muizelaar
52ec6df53b Bug 722444. Initialize mData for 0 sized surfaces. r=bgirard
This avoids an invalid free() during destruction found with the
online canvas test suite.

--HG--
extra : rebase_source : e1aeff36e557b045fbaff38d7b46fdf91956ae49
2012-01-30 11:17:42 -05:00
Benoit Girard
203dc9e4c5 Bug 722164 - Set Azure Quartz Canvas image interpolation to low for better performance. r=jmuizelaar 2012-01-29 17:08:58 -05:00
Jeff Muizelaar
d10366daf2 Bug 720721. Properly transform the clip path in DrawTargetCG. r=mwoodrow
This is a little tricky because we can't put a save/restore pair
around the operation because then we'll loose the clip.
2012-01-24 15:14:50 -05:00
Jeff Muizelaar
6fd6cdc9c1 Bug 719429. Fix canvas data leak in DrawTargetCG. r=ajuma
I forgot to fix this before landing and refound it using
http://s3.zazub.com/games/circle_game/index.html
2012-01-19 10:33:35 -05:00
Jeff Muizelaar
3036b1473f Bug 692879. Implement CoreGraphics Azure backend. r=mwoodrow 2012-01-09 13:54:44 -05:00
Matt Brubeck
4b1bdf5b96 Back out efd165428f08 to 4a79fefefa28 (bug 580786, bug 716639, bug 692879, bug 717921) because of reftest error 2012-01-17 10:08:38 -08:00
Jeff Muizelaar
0ac4c9201a Bug 692879. Implement CoreGraphics Azure backend. r=mwoodrow
--HG--
extra : rebase_source : 94f8c205e16e961b5407396c0d0d3b41067222dc
2012-01-09 13:54:44 -05:00
Ms2ger
7535aaa04a Backout bug 580786 / bug 716639 / bug 692879 / bug 717921 / bug 692879 (2dc5909e63b0:ced751d32df6); a=philor 2012-01-17 10:48:19 +01:00
Jeff Muizelaar
ad79c1ab36 Bug 692879. Implement CoreGraphics Azure backend. r=mwoodrow 2012-01-09 13:54:44 -05:00
Bas Schouten
189472e8c9 Bug 651858 - Part 1: Add the Azure API and Direct2D backend. r=jrmuizel sr=roc
--HG--
rename : gfx/src/BaseMargin.h => gfx/2d/BaseMargin.h
rename : gfx/src/BasePoint.h => gfx/2d/BasePoint.h
rename : gfx/src/BaseRect.h => gfx/2d/BaseRect.h
rename : gfx/src/BaseSize.h => gfx/2d/BaseSize.h
2011-06-24 19:41:16 +02:00