gecko-dev/gfx/2d
Lee Salzman bc333ceb93 Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers
This implements a new DrawTarget API call, DrawShadow. This can be used to draw
the shadow of a given Path and Pattern. Unlike DrawSurfaceWithShadow, this only
draws the shadow to simplify the resulting implementation. DrawTarget provides
a default implementation that will draw a blurred shadow to a transient surface
before handing it off to DrawSurfaceWithShadow, allowing existing DrawTarget
implementations to function without having to implement the new API at all.

Within DrawTargetWebgl, DrawShadow allows direct caching of the shadow in the
existing PathCache mechanism, unlike DrawSurfaceWithShadow which would usually
be called with different transient surfaces every time, even if the input
patterns actually matched.

CanvasRenderingContext2D is modified to call DrawShadow when only a shadow
needs to be applied without any filter. AdjustedTarget is modified to wrap
the necessary DrawTarget draw calls so they can be dispatched appropriately.

Since a lot of redundant shadow parameters are shared between DrawShadow and
DrawSurfaceWithShadow, and since a lot of consumers of these functions need
to also pass around these parameters, this also bundles these into a new
ShadowOptions structure to make this easier.

Differential Revision: https://phabricator.services.mozilla.com/D142026
2022-04-01 19:03:29 +00:00
..
unittest
2D.h Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers 2022-04-01 19:03:29 +00:00
AutoHelpersWin.h
BaseCoord.h Bug 1675852 Part 1 - Mark more methods 'constexpr' in BaseCoord and nsSize. r=emilio 2020-11-06 22:22:02 +00:00
BaseMargin.h
BasePoint3D.h
BasePoint4D.h
BasePoint.h
BaseRect.h Bug 1753507 - Simplify the implementation of BaseRect::Scale(). r=gfx-reviewers,bradwerth 2022-02-03 20:34:41 +00:00
BaseSize.h
BezierUtils.cpp
BezierUtils.h Bug 1678062 - Remove unnecessary includes. r=andi 2020-11-23 16:12:02 +00:00
BigEndianInts.h
Blur.cpp
Blur.h
BlurLS3.cpp Bug 1519636 - Reformat with clang-format-11 to the Google coding style r=andi,sg,geckoview-reviewers,snorp 2020-11-18 09:05:59 +00:00
BlurNEON.cpp
BlurSSE2.cpp
BorrowedContext.h Bug 1732443 - Remove remaining XRender leftovers,r=emilio,stransky 2021-09-30 14:14:13 +00:00
BufferEdgePad.cpp
BufferEdgePad.h
BufferUnrotate.cpp
BufferUnrotate.h
ConicGradientEffectD2D1.cpp Bug 1617396 - Implement conic-gradient for Direct2D graphics backend. r=gfx-reviewers,nical 2020-10-08 19:58:15 +00:00
ConicGradientEffectD2D1.h Bug 1617396 - Implement conic-gradient for Direct2D graphics backend. r=gfx-reviewers,nical 2020-10-08 19:58:15 +00:00
ConvolutionFilter.cpp
ConvolutionFilter.h
Coord.h Bug 1726620 Part 1 - Generalize IntCoordTyped template to take a parameter as the underlying type. r=botond 2021-08-24 17:19:21 +00:00
CriticalSection.h
DataSourceSurface.cpp
DataSourceSurfaceWrapper.h
DataSurfaceHelpers.cpp
DataSurfaceHelpers.h
DrawEventRecorder.cpp Bug 1728240 - Remove DrawTargetWrapAndRecord and gfx.2d.recording pref. r=jrmuizel 2021-08-31 02:03:58 +00:00
DrawEventRecorder.h Bug 1728240 - Remove DrawTargetWrapAndRecord and gfx.2d.recording pref. r=jrmuizel 2021-08-31 02:03:58 +00:00
DrawTarget.cpp Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers 2022-04-01 19:03:29 +00:00
DrawTargetCairo.cpp Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers 2022-04-01 19:03:29 +00:00
DrawTargetCairo.h Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers 2022-04-01 19:03:29 +00:00
DrawTargetD2D1.cpp Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers 2022-04-01 19:03:29 +00:00
DrawTargetD2D1.h Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers 2022-04-01 19:03:29 +00:00
DrawTargetOffset.cpp
DrawTargetOffset.h Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers 2022-04-01 19:03:29 +00:00
DrawTargetRecording.cpp Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers 2022-04-01 19:03:29 +00:00
DrawTargetRecording.h Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers 2022-04-01 19:03:29 +00:00
DrawTargetSkia.cpp Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers 2022-04-01 19:03:29 +00:00
DrawTargetSkia.h Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers 2022-04-01 19:03:29 +00:00
dw-extra.h Bug 1519636 - First reformat with clang-format 13.0.0. r=firefox-build-system-reviewers,sylvestre,mhentges 2021-11-16 08:07:30 +00:00
DWriteSettings.cpp Bug 1698946 p2: Add DWriteSettings to be used to retrieve font settings. r=jfkthame 2021-08-05 09:13:10 +00:00
DWriteSettings.h Bug 1698946 p2: Add DWriteSettings to be used to retrieve font settings. r=jfkthame 2021-08-05 09:13:10 +00:00
ExtendInputEffectD2D1.cpp
ExtendInputEffectD2D1.h
Factory.cpp Bug 1207753 - gfx & image thread-safety annotations r=gfx-reviewers,aosmond 2022-03-21 18:05:31 +00:00
FilterNodeD2D1.cpp Bug 1728205 - Remove DrawTargetDual. r=jrmuizel 2021-08-30 22:55:32 +00:00
FilterNodeD2D1.h Bug 1679522 - Fix include directives and forward declarations. r=andi,necko-reviewers,jgilbert 2021-03-25 10:19:44 +00:00
FilterNodeSoftware.cpp Bug 1758188: Remove unneeded mutex from FilterNodeSoftware r=gfx-reviewers,mstange 2022-03-04 21:44:29 +00:00
FilterNodeSoftware.h Bug 1758188: Remove unneeded mutex from FilterNodeSoftware r=gfx-reviewers,mstange 2022-03-04 21:44:29 +00:00
FilterProcessing.cpp
FilterProcessing.h
FilterProcessingScalar.cpp
FilterProcessingSIMD-inl.h Bug 1518099 - Add support for lighter operator in feComposite r=jrmuizel,emilio 2021-01-05 20:49:00 +00:00
FilterProcessingSSE2.cpp
Filters.h Bug 1518099 - Add support for lighter operator in feComposite r=jrmuizel,emilio 2021-01-05 20:49:00 +00:00
FontVariation.h Bug 1701942 - Use bitwise equality for font variation value comparisons. r=jfkthame 2021-04-02 12:37:23 +00:00
GenericRefCounted.h Bug 1687391 - Avoid using a spinlock in ThreadSafeWeakReference, r=glandium,mccr8,Gankra,sg 2021-02-03 17:00:04 +00:00
genshaders.sh Bug 1617396 - Implement conic-gradient for Direct2D graphics backend. r=gfx-reviewers,nical 2020-10-08 19:58:15 +00:00
gfx2d.sln
gfx2d.vcxproj
GradientStopsD2D.h
Helpers.h
HelpersCairo.h
HelpersD2D.h Bug 1617396 - Implement conic-gradient for Direct2D graphics backend. r=gfx-reviewers,nical 2020-10-08 19:58:15 +00:00
HelpersSkia.h Bug 1755718 - Assert that color formats can be handled by Skia. r=aosmond 2022-02-17 20:14:01 +00:00
HelpersWinFonts.h
ImageScaling.cpp
ImageScaling.h
ImageScalingSSE2.cpp
InlineTranslator.cpp Bug 1720152 - Recurse into replay for dependencies, rather than using a temp surface. r=jrmuizel,bobowen,emilio 2021-08-09 22:07:36 +00:00
InlineTranslator.h Bug 1720152 - Recurse into replay for dependencies, rather than using a temp surface. r=jrmuizel,bobowen,emilio 2021-08-09 22:07:36 +00:00
IterableArena.h
Logging.h Bug 1754130 - Implement SourceSurfaceWebgl for faster snapshots of DrawTargetWebgl. r=aosmond 2022-02-11 19:49:55 +00:00
LoggingConstants.h
LuminanceNEON.cpp
LuminanceNEON.h
MacIOSurface.cpp Bug 1745492 Part 2: Update MacIOSurface handling to deal with 10-bit formats. r=media-playback-reviewers,gfx-reviewers,lsalzman,alwu 2022-03-05 17:31:18 +00:00
MacIOSurface.h Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
Matrix.cpp
Matrix.h Bug 1745556 - Add support for stroked paths to path cache. r=gfx-reviewers,aosmond 2022-01-14 17:30:22 +00:00
MatrixFwd.h
MMIHelpers.h
moz.build Bug 1738401 - Remove -Wno-shadow warning suppressions. r=firefox-build-system-reviewers,glandium 2021-12-01 06:40:04 +00:00
NativeFontResource.cpp
NativeFontResourceDWrite.cpp Bug 1207753 - Add MOZ_UNANNOTATED to all Mutexes/Monitors r=nika,kershaw 2022-03-16 18:47:08 +00:00
NativeFontResourceDWrite.h
NativeFontResourceFreeType.cpp
NativeFontResourceFreeType.h
NativeFontResourceGDI.cpp
NativeFontResourceGDI.h
NativeFontResourceMac.cpp Bug 1694161 - some fixes for the MacOS non unified environment. r=sg 2021-02-27 08:05:46 +00:00
NativeFontResourceMac.h Bug 1674175 - Add a memory reporter for memory allocated in NativeFontResourceMac::Create. r=mstange 2020-10-30 00:29:55 +00:00
NumericTools.h
Path.cpp Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers 2022-04-01 19:03:29 +00:00
PathAnalysis.h
PathCairo.cpp
PathCairo.h
PathD2D.cpp Bug 1663703 - only allow PathD2D::ContainsPoint to proceed if transform is invertible. r=bobowen 2020-12-09 12:03:11 +00:00
PathD2D.h
PathHelpers.cpp
PathHelpers.h
PathRecording.cpp
PathRecording.h
PathSkia.cpp Bug 1745556 - Add support for stroked paths to path cache. r=gfx-reviewers,aosmond 2022-01-14 17:30:22 +00:00
PathSkia.h Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers 2022-04-01 19:03:29 +00:00
PatternHelpers.h Bug 1697344 p3: Don't hold the GradientStops object on CanvasGradient. r=jrmuizel 2021-03-29 12:12:21 +00:00
Point.h Bug 1519636 - Reformat recent changes to the Google coding style. r=emilio 2021-05-24 15:08:47 +00:00
Polygon.h
QuartzSupport.h
QuartzSupport.mm Bug 1685183 Part 1: Make MacIOSurface always use 1.0 scale, and update callsites. r=jgilbert 2021-04-08 16:42:06 +00:00
Quaternion.cpp
Quaternion.h
RadialGradientEffectD2D1.cpp
RadialGradientEffectD2D1.h
RecordedEvent.cpp Bug 1720152 - Recurse into replay for dependencies, rather than using a temp surface. r=jrmuizel,bobowen,emilio 2021-08-09 22:07:36 +00:00
RecordedEvent.h Bug 1393362 - Make more RecordedEvent implementations fallible. r=bobowen 2021-11-01 19:33:28 +00:00
RecordedEventImpl.h Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers 2022-04-01 19:03:29 +00:00
RecordingTypes.h
Rect.h Bug 1679208 - Improve non-native theme with fractional scaling. r=heycam 2020-11-30 04:48:07 +00:00
RectAbsolute.h Bug 1742006 - Fix documents of rect types' Union and SaturatingUnion, and add a test. r=gfx-reviewers,mstange 2021-11-22 03:26:19 +00:00
Scale.cpp Bug 1722454 - Remove USE_SKIA. r=gfx-reviewers,jrmuizel 2021-07-29 23:29:44 +00:00
Scale.h
ScaledFontBase.cpp Bug 1722454 - Remove USE_SKIA. r=gfx-reviewers,jrmuizel 2021-07-29 23:29:44 +00:00
ScaledFontBase.h Bug 1722454 - Remove USE_SKIA. r=gfx-reviewers,jrmuizel 2021-07-29 23:29:44 +00:00
ScaledFontDWrite.cpp Bug 1587094 - Create a pref to control whether we use DirectWrite's bold simulation or multi-strike synthetic bold; default to multi-strike for webfonts. r=lsalzman 2022-02-09 12:07:05 +00:00
ScaledFontDWrite.h Bug 1587094 - Create a pref to control whether we use DirectWrite's bold simulation or multi-strike synthetic bold; default to multi-strike for webfonts. r=lsalzman 2022-02-09 12:07:05 +00:00
ScaledFontFontconfig.cpp Bug 1454152 - Allow bitmaps from emoji fonts that have no outlines with Fontconfig. r=jfkthame 2021-12-09 22:12:18 +00:00
ScaledFontFontconfig.h Bug 1722454 - Remove USE_SKIA. r=gfx-reviewers,jrmuizel 2021-07-29 23:29:44 +00:00
ScaledFontFreeType.cpp Bug 1722454 - Remove USE_SKIA. r=gfx-reviewers,jrmuizel 2021-07-29 23:29:44 +00:00
ScaledFontFreeType.h Bug 1722454 - Remove USE_SKIA. r=gfx-reviewers,jrmuizel 2021-07-29 23:29:44 +00:00
ScaledFontMac.cpp Backed out changeset 12f866a5b267 (bug 1587094) for wrench bustages on synthetic-bold.yaml . CLOSED TREE 2022-02-03 22:23:07 +02:00
ScaledFontMac.h Bug 1738589 - Let Gecko decide if WR Mac font has color glyphs. r=jfkthame 2021-11-10 22:16:13 +00:00
ScaledFontWin.cpp Bug 1722454 - Remove USE_SKIA. r=gfx-reviewers,jrmuizel 2021-07-29 23:29:44 +00:00
ScaledFontWin.h Bug 1722454 - Remove USE_SKIA. r=gfx-reviewers,jrmuizel 2021-07-29 23:29:44 +00:00
ScaleFactor.h
ScaleFactors2D.h Bug 1732423. Backout https://hg.mozilla.org/mozilla-central/rev/743007ddfecc from bug 1731929 because we don't need it anymore. r=botond 2021-09-30 05:55:36 +00:00
SFNTData.cpp
SFNTData.h
ShadersD2D1.h Bug 1617396 - Fix more linting opt failures. CLOSED TREE DONTBUILD 2020-10-09 04:44:56 +03:00
ShadersD2D1.hlsl Bug 1617396 - Implement conic-gradient for Direct2D graphics backend. r=gfx-reviewers,nical 2020-10-08 19:58:15 +00:00
ShadersD2D.fx Bug 1617396 - Implement conic-gradient for Direct2D graphics backend. r=gfx-reviewers,nical 2020-10-08 19:58:15 +00:00
ShadersD2D.h Bug 1617396 - Fix more linting opt failures. CLOSED TREE DONTBUILD 2020-10-09 04:44:56 +03:00
SIMD.h
SourceSurfaceCairo.cpp
SourceSurfaceCairo.h
SourceSurfaceD2D1.cpp Bug 1732208 - Silence the unused-but-set-variable warning in gfx. r=gfx-reviewers,nical 2021-09-28 00:02:45 +00:00
SourceSurfaceD2D1.h Bug 1699352 - Fix DrawTargetD2D1::mVRAMUsageSS handling r=jrmuizel 2021-03-23 01:17:19 +00:00
SourceSurfaceRawData.cpp Bug 1728113 - Remove DrawTargetCapture and related code. r=jrmuizel 2021-08-30 16:35:50 +00:00
SourceSurfaceRawData.h Bug 1728113 - Remove DrawTargetCapture and related code. r=jrmuizel 2021-08-30 16:35:50 +00:00
SourceSurfaceSkia.cpp Bug 1207753 - gfx thread-safety annotations r=gfx-reviewers,lsalzman 2022-03-21 16:28:47 +00:00
SourceSurfaceSkia.h Bug 1207753 - Add MOZ_UNANNOTATED to all Mutexes/Monitors r=nika,kershaw 2022-03-16 18:47:08 +00:00
SSEHelpers.h
ssse3-scaler.c
ssse3-scaler.h Bug 1679522 - Fix include directives and forward declarations. r=andi,necko-reviewers,jgilbert 2021-03-25 10:19:44 +00:00
StackArray.h
SVGTurbulenceRenderer-inl.h
Swizzle.cpp Bug 1751205 - Part 1. Add Swizzle/PremultiplyYFlipData helper methods. r=gfx-reviewers,lsalzman,jgilbert 2022-02-01 13:20:49 +00:00
Swizzle.h Bug 1751205 - Part 1. Add Swizzle/PremultiplyYFlipData helper methods. r=gfx-reviewers,lsalzman,jgilbert 2022-02-01 13:20:49 +00:00
SwizzleAVX2.cpp
SwizzleNEON.cpp
SwizzleSSE2.cpp
SwizzleSSSE3.cpp
Tools.h
Triangle.h
Types.cpp Bug 1749390 - Add debug support for mozilla::Side. r=gfx-reviewers,lsalzman 2022-01-11 08:47:23 +00:00
Types.h Bug 1757067 - Explicitly specify chroma subsampling scheme for YCbCr data. r=jgilbert,jrmuizel 2022-03-10 09:24:15 +00:00
UnscaledFontDWrite.h
UnscaledFontFreeType.cpp
UnscaledFontFreeType.h Bug 1454152 - Allow bitmaps from emoji fonts that have no outlines with Fontconfig. r=jfkthame 2021-12-09 22:12:18 +00:00
UnscaledFontGDI.h
UnscaledFontMac.h Bug 1732629 - [gfx/2d] Get non-localized variation axis names from CoreGraphics in ScaledFontMac, so that we set up the CGFont correctly with variation values. r=jrmuizel 2021-10-27 14:15:12 +00:00
UserData.h