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
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
This has big improvement in the performance of GetImageData() because
we make the snapshot lazily instead of using the vm_copy() method
of CGBitmapContextCreateImage()