mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-17 23:35:34 +00:00
fbaa72bc71
In DrawTargetRecording::CreateSimilarDrawTarget, we would originally create a new DrawTargetRecording. For resources that are shared, such as SVG patterns, we would do the same work for each blob image tile. This can get expensive if the pattern is large. Now we check a size threshold, and if passed, we create a DrawTargetSkia backed by a SourceSurfaceSharedData. When we want a snapshot, we now try to get the shared surface instead if available. The recording infrastructure already knows how to handle the lifetimes and use of external IDs for shared surfaces, so now we rasterize the pattern once for all the blob tiles. In an ideal world we would do this in the compositor process once, but that requires more changes, and this is useful as a stopgap in the meantime. Differential Revision: https://phabricator.services.mozilla.com/D63903 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
crashtests | ||
tests | ||
AutoReferenceChainGuard.h | ||
moz.build | ||
nsCSSClipPathInstance.cpp | ||
nsCSSClipPathInstance.h | ||
nsCSSFilterInstance.cpp | ||
nsCSSFilterInstance.h | ||
nsFilterInstance.cpp | ||
nsFilterInstance.h | ||
nsISVGSVGFrame.h | ||
nsSVGAFrame.cpp | ||
nsSVGClipPathFrame.cpp | ||
nsSVGClipPathFrame.h | ||
nsSVGContainerFrame.cpp | ||
nsSVGContainerFrame.h | ||
nsSVGDisplayableFrame.h | ||
nsSVGFilterFrame.cpp | ||
nsSVGFilterFrame.h | ||
nsSVGFilterInstance.cpp | ||
nsSVGFilterInstance.h | ||
nsSVGFilterPaintCallback.h | ||
nsSVGForeignObjectFrame.cpp | ||
nsSVGForeignObjectFrame.h | ||
nsSVGGenericContainerFrame.cpp | ||
nsSVGGenericContainerFrame.h | ||
nsSVGGFrame.cpp | ||
nsSVGGFrame.h | ||
nsSVGGradientFrame.cpp | ||
nsSVGGradientFrame.h | ||
nsSVGImageFrame.cpp | ||
nsSVGImageFrame.h | ||
nsSVGInnerSVGFrame.cpp | ||
nsSVGInnerSVGFrame.h | ||
nsSVGIntegrationUtils.cpp | ||
nsSVGIntegrationUtils.h | ||
nsSVGMarkerFrame.cpp | ||
nsSVGMarkerFrame.h | ||
nsSVGMaskFrame.cpp | ||
nsSVGMaskFrame.h | ||
nsSVGOuterSVGFrame.cpp | ||
nsSVGOuterSVGFrame.h | ||
nsSVGPaintServerFrame.h | ||
nsSVGPatternFrame.cpp | ||
nsSVGPatternFrame.h | ||
nsSVGStopFrame.cpp | ||
nsSVGSwitchFrame.cpp | ||
nsSVGSymbolFrame.cpp | ||
nsSVGSymbolFrame.h | ||
nsSVGUseFrame.cpp | ||
nsSVGUseFrame.h | ||
nsSVGUtils.cpp | ||
nsSVGUtils.h | ||
nsSVGViewportFrame.cpp | ||
nsSVGViewportFrame.h | ||
svg.css | ||
SVGContextPaint.cpp | ||
SVGContextPaint.h | ||
SVGFEContainerFrame.cpp | ||
SVGFEImageFrame.cpp | ||
SVGFELeafFrame.cpp | ||
SVGFEUnstyledLeafFrame.cpp | ||
SVGGeometryFrame.cpp | ||
SVGGeometryFrame.h | ||
SVGImageContext.cpp | ||
SVGImageContext.h | ||
SVGObserverUtils.cpp | ||
SVGObserverUtils.h | ||
SVGTextFrame.cpp | ||
SVGTextFrame.h | ||
SVGViewFrame.cpp |