Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2b7e3e7edde7e861866efb5796cdcf6bedb513c1
https://github.com/WebKit/WebKit/commit/2b7e3e7edde7e861866efb5796cdcf6bedb513c1
Author: Said Abou-Hallawa <[email protected]>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
A LayoutTests/fast/canvas/canvas-layer-alpha-drawing-expected.html
A LayoutTests/fast/canvas/canvas-layer-alpha-drawing.html
A LayoutTests/fast/canvas/canvas-layer-composite-drawing-expected.html
A LayoutTests/fast/canvas/canvas-layer-composite-drawing.html
A LayoutTests/fast/canvas/canvas-layer-drawing-expected.html
A LayoutTests/fast/canvas/canvas-layer-drawing.html
A LayoutTests/fast/canvas/canvas-layer-filter-drawing-expected.html
A LayoutTests/fast/canvas/canvas-layer-filter-drawing.html
A LayoutTests/fast/canvas/canvas-multiple-layer-filter-drawing-expected.html
A LayoutTests/fast/canvas/canvas-multiple-layer-filter-drawing.html
A
LayoutTests/fast/canvas/canvas-multiple-nested-layer-filter-drawing-expected.html
A LayoutTests/fast/canvas/canvas-multiple-nested-layer-filter-drawing.html
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/CMakeLists.txt
M Source/WebCore/DerivedSources-input.xcfilelist
M Source/WebCore/DerivedSources-output.xcfilelist
M Source/WebCore/DerivedSources.make
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
A Source/WebCore/html/canvas/CanvasFilterContextSwitcher.cpp
A Source/WebCore/html/canvas/CanvasFilterContextSwitcher.h
R Source/WebCore/html/canvas/CanvasFilterTargetSwitcher.cpp
R Source/WebCore/html/canvas/CanvasFilterTargetSwitcher.h
A Source/WebCore/html/canvas/CanvasLayerContextSwitcher.cpp
A Source/WebCore/html/canvas/CanvasLayerContextSwitcher.h
A Source/WebCore/html/canvas/CanvasLayers.idl
M Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
M Source/WebCore/html/canvas/CanvasRenderingContext2D.h
M Source/WebCore/html/canvas/CanvasRenderingContext2D.idl
M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp
M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h
M Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.idl
A Source/WebCore/platform/graphics/GraphicsContextSwitcher.cpp
A Source/WebCore/platform/graphics/GraphicsContextSwitcher.h
M Source/WebCore/platform/graphics/ImageBuffer.cpp
A Source/WebCore/platform/graphics/ImageBufferContextSwitcher.cpp
A Source/WebCore/platform/graphics/ImageBufferContextSwitcher.h
A Source/WebCore/platform/graphics/TransparencyLayerContextSwitcher.cpp
A Source/WebCore/platform/graphics/TransparencyLayerContextSwitcher.h
R Source/WebCore/platform/graphics/filters/FilterImageTargetSwitcher.cpp
R Source/WebCore/platform/graphics/filters/FilterImageTargetSwitcher.h
R Source/WebCore/platform/graphics/filters/FilterStyleTargetSwitcher.cpp
R Source/WebCore/platform/graphics/filters/FilterStyleTargetSwitcher.h
R Source/WebCore/platform/graphics/filters/FilterTargetSwitcher.cpp
R Source/WebCore/platform/graphics/filters/FilterTargetSwitcher.h
M Source/WebCore/rendering/RenderLayerFilters.cpp
M Source/WebCore/rendering/RenderLayerFilters.h
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilter.cpp
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilter.h
Log Message:
-----------
Support CanvasRenderingContext2D layers
https://bugs.webkit.org/show_bug.cgi?id=273923
rdar://127789082
Reviewed by Kimmo Kinnunen.
This is a draft patch for the canvas layers API. The discussion of this API is
in https://github.com/whatwg/html/pull/9537.
Unlike what is stated in the discussion above, this PR adds the filter to the
layer rendering states. This means like other members in layer rendering state,
the filter will be cleared out from the context state once beginLayer() is
called.
It will restored to the context state once endLayer() is called. Then the
restored
filter will be applied to the layer before compositing it to the canvas context.
* LayoutTests/fast/canvas/canvas-layer-alpha-drawing-expected.html: Added.
* LayoutTests/fast/canvas/canvas-layer-alpha-drawing.html: Added.
* LayoutTests/fast/canvas/canvas-layer-composite-drawing-expected.html: Added.
* LayoutTests/fast/canvas/canvas-layer-composite-drawing.html: Added.
* LayoutTests/fast/canvas/canvas-layer-drawing-expected.html: Added.
* LayoutTests/fast/canvas/canvas-layer-drawing.html: Added.
* LayoutTests/fast/canvas/canvas-layer-filter-drawing-expected.html: Added.
* LayoutTests/fast/canvas/canvas-layer-filter-drawing.html: Added.
* LayoutTests/fast/canvas/canvas-multiple-layer-filter-drawing-expected.html:
Added.
* LayoutTests/fast/canvas/canvas-multiple-layer-filter-drawing.html: Added.
*
LayoutTests/fast/canvas/canvas-multiple-nested-layer-filter-drawing-expected.html:
Added.
* LayoutTests/fast/canvas/canvas-multiple-nested-layer-filter-drawing.html:
Added.
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/CMakeLists.txt:
* Source/WebCore/DerivedSources-input.xcfilelist:
* Source/WebCore/DerivedSources-output.xcfilelist:
* Source/WebCore/DerivedSources.make:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/html/canvas/CanvasFilterContextSwitcher.cpp: Copied from
Source/WebCore/html/canvas/CanvasFilterTargetSwitcher.h.
(WebCore::CanvasFilterContextSwitcher::create):
(WebCore::CanvasFilterContextSwitcher::CanvasFilterContextSwitcher):
(WebCore::CanvasFilterContextSwitcher::~CanvasFilterContextSwitcher):
(WebCore::CanvasFilterContextSwitcher::expandedBounds const):
* Source/WebCore/html/canvas/CanvasFilterContextSwitcher.h: Copied from
Source/WebCore/html/canvas/CanvasFilterTargetSwitcher.h.
* Source/WebCore/html/canvas/CanvasLayerContextSwitcher.cpp: Renamed from
Source/WebCore/html/canvas/CanvasFilterTargetSwitcher.cpp.
(WebCore::CanvasLayerContextSwitcher::create):
(WebCore::CanvasLayerContextSwitcher::CanvasLayerContextSwitcher):
(WebCore::CanvasLayerContextSwitcher::~CanvasLayerContextSwitcher):
(WebCore::CanvasLayerContextSwitcher::drawingContext const):
(WebCore::CanvasLayerContextSwitcher::outsets const):
* Source/WebCore/html/canvas/CanvasLayerContextSwitcher.h: Renamed from
Source/WebCore/html/canvas/CanvasFilterTargetSwitcher.h.
* Source/WebCore/html/canvas/CanvasLayers.idl: Added.
* Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::createFilter const):
* Source/WebCore/html/canvas/CanvasRenderingContext2D.h:
* Source/WebCore/html/canvas/CanvasRenderingContext2D.idl:
* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::beginLayer):
(WebCore::CanvasRenderingContext2DBase::endLayer):
(WebCore::CanvasRenderingContext2DBase::fillInternal):
(WebCore::CanvasRenderingContext2DBase::strokeInternal):
(WebCore::CanvasRenderingContext2DBase::fillRect):
(WebCore::CanvasRenderingContext2DBase::strokeRect):
(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::CanvasRenderingContext2DBase::drawingContext const):
(WebCore::CanvasRenderingContext2DBase::effectiveDrawingContext const):
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):
* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h:
(WebCore::CanvasRenderingContext2DBase::createFilter const):
(WebCore::CanvasRenderingContext2DBase::setFilterTargetSwitcher): Deleted.
* Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.idl:
* Source/WebCore/platform/graphics/GraphicsContextSwitcher.cpp: Renamed from
Source/WebCore/platform/graphics/filters/FilterTargetSwitcher.cpp.
(WebCore::GraphicsContextSwitcher::create):
(WebCore::GraphicsContextSwitcher::GraphicsContextSwitcher):
* Source/WebCore/platform/graphics/GraphicsContextSwitcher.h: Renamed from
Source/WebCore/platform/graphics/filters/FilterTargetSwitcher.h.
* Source/WebCore/platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::filteredNativeImage):
* Source/WebCore/platform/graphics/ImageBufferContextSwitcher.cpp: Renamed from
Source/WebCore/platform/graphics/filters/FilterImageTargetSwitcher.cpp.
(WebCore::ImageBufferContextSwitcher::ImageBufferContextSwitcher):
(WebCore::ImageBufferContextSwitcher::drawingContext const):
(WebCore::ImageBufferContextSwitcher::beginClipAndDrawSourceImage):
(WebCore::ImageBufferContextSwitcher::endClipAndDrawSourceImage):
(WebCore::ImageBufferContextSwitcher::endDrawSourceImage):
* Source/WebCore/platform/graphics/ImageBufferContextSwitcher.h: Renamed from
Source/WebCore/platform/graphics/filters/FilterImageTargetSwitcher.h.
* Source/WebCore/platform/graphics/TransparencyLayerContextSwitcher.cpp:
Renamed from
Source/WebCore/platform/graphics/filters/FilterStyleTargetSwitcher.cpp.
(WebCore::TransparencyLayerContextSwitcher::TransparencyLayerContextSwitcher):
(WebCore::TransparencyLayerContextSwitcher::beginClipAndDrawSourceImage):
(WebCore::TransparencyLayerContextSwitcher::beginDrawSourceImage):
(WebCore::TransparencyLayerContextSwitcher::endDrawSourceImage):
* Source/WebCore/platform/graphics/TransparencyLayerContextSwitcher.h: Renamed
from Source/WebCore/platform/graphics/filters/FilterStyleTargetSwitcher.h.
* Source/WebCore/rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::beginFilterEffect):
* Source/WebCore/rendering/RenderLayerFilters.h:
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilter.cpp:
(WebCore::LegacyRenderSVGResourceFilter::applyResource):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilter.h:
Canonical link: https://commits.webkit.org/280148@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes