[webkit-changes] [WebKit/WebKit] ccb8d4: [Filters] Control applying the Filter by a new enu...

Said Abou-Hallawa noreply at github.com
Wed Nov 23 22:39:26 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ccb8d41a1adb174e09b49b63d2e91b46d2769e21
      https://github.com/WebKit/WebKit/commit/ccb8d41a1adb174e09b49b63d2e91b46d2769e21
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2022-11-23 (Wed, 23 Nov 2022)

  Changed paths:
    M Source/WebCore/Headers.cmake
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/page/Page.cpp
    M Source/WebCore/page/Page.h
    M Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp
    M Source/WebCore/platform/graphics/filters/FEColorMatrix.h
    M Source/WebCore/platform/graphics/filters/FEComponentTransfer.cpp
    M Source/WebCore/platform/graphics/filters/FEComponentTransfer.h
    M Source/WebCore/platform/graphics/filters/Filter.cpp
    M Source/WebCore/platform/graphics/filters/Filter.h
    M Source/WebCore/platform/graphics/filters/FilterEffect.cpp
    M Source/WebCore/platform/graphics/filters/FilterFunction.h
    A Source/WebCore/platform/graphics/filters/FilterRenderingMode.h
    M Source/WebCore/platform/graphics/filters/SourceGraphic.cpp
    M Source/WebCore/platform/graphics/filters/SourceGraphic.h
    M Source/WebCore/rendering/CSSFilter.cpp
    M Source/WebCore/rendering/CSSFilter.h
    M Source/WebCore/rendering/RenderLayer.cpp
    M Source/WebCore/rendering/RenderLayerFilters.cpp
    M Source/WebCore/rendering/RenderLayerFilters.h
    M Source/WebCore/rendering/style/StyleFilterImage.cpp
    M Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp
    M Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp
    M Source/WebCore/svg/graphics/filters/SVGFilter.cpp
    M Source/WebCore/svg/graphics/filters/SVGFilter.h
    M Source/WebKit/Platform/IPC/FilterReference.h

  Log Message:
  -----------
  [Filters] Control applying the Filter by a new enum named FilterRenderingMode
https://bugs.webkit.org/show_bug.cgi?id=248193
rdar://102590236

Reviewed by Cameron McCormack.

RenderingMode has been used to control whether the Filter should use accelerated
or unaccelerated ImageBuffers. To support extended CoreGraphics filters, we need
even a new way to apply the filter which does not require creating temporary
ImageBuffers.

FilterRenderingMode will be used for this purpose. FilterEffect and Filter will
now provide OptionSet<FilterRenderingMode> telling which modes they support.
The Settings will provide preferred OptionSet<FilterRenderingMode>. Filter will
decide which FilterRenderingMode to use based on the preferred and the supported
FilterRenderingModes.

* Source/WebCore/Headers.cmake:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/page/Page.cpp:
(WebCore::Page::preferredFilterRenderingModes const):
(WebCore::Page::acceleratedFiltersEnabled const): Deleted.
* Source/WebCore/page/Page.h:
* Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::supportedFilterRenderingModes const):
(WebCore::FEColorMatrix::supportsAcceleratedRendering const): Deleted.
* Source/WebCore/platform/graphics/filters/FEColorMatrix.h:
* Source/WebCore/platform/graphics/filters/FEComponentTransfer.cpp:
(WebCore::FEComponentTransfer::supportedFilterRenderingModes const):
(WebCore::FEComponentTransfer::supportsAcceleratedRendering const): Deleted.
* Source/WebCore/platform/graphics/filters/FEComponentTransfer.h:
* Source/WebCore/platform/graphics/filters/Filter.cpp:
(WebCore::Filter::Filter):
(WebCore::Filter::renderingMode const):
(WebCore::Filter::setFilterRenderingMode):
* Source/WebCore/platform/graphics/filters/Filter.h:
(WebCore::Filter::filterRenderingMode const):
(WebCore::Filter::setFilterRenderingMode):
(WebCore::Filter::Filter):
(WebCore::Filter::renderingMode const): Deleted.
(WebCore::Filter::setRenderingMode): Deleted.
* Source/WebCore/platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::createApplier const):
(WebCore::FilterEffect::apply):
* Source/WebCore/platform/graphics/filters/FilterFunction.h:
(WebCore::FilterFunction::supportedFilterRenderingModes const):
(WebCore::FilterFunction::supportsAcceleratedRendering const): Deleted.
* Source/WebCore/platform/graphics/filters/FilterRenderingMode.h: Added.
* Source/WebCore/platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::supportedFilterRenderingModes const):
(WebCore::SourceGraphic::supportsAcceleratedRendering const): Deleted.
* Source/WebCore/platform/graphics/filters/SourceGraphic.h:
* Source/WebCore/rendering/CSSFilter.cpp:
(WebCore::CSSFilter::create):
(WebCore::CSSFilter::CSSFilter):
(WebCore::createReferenceFilter):
(WebCore::CSSFilter::buildFilterFunctions):
(WebCore::CSSFilter::supportedFilterRenderingModes const):
(WebCore::CSSFilter::supportsAcceleratedRendering const): Deleted.
* Source/WebCore/rendering/CSSFilter.h:
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
* Source/WebCore/rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::beginFilterEffect):
* Source/WebCore/rendering/RenderLayerFilters.h:
* Source/WebCore/rendering/style/StyleFilterImage.cpp:
(WebCore::StyleFilterImage::image const):
* Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
* Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGResourceContainer):
* Source/WebCore/svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::create):
(WebCore::SVGFilter::SVGFilter):
(WebCore::SVGFilter::supportedFilterRenderingModes const):
(WebCore::SVGFilter::supportsAcceleratedRendering const): Deleted.
* Source/WebCore/svg/graphics/filters/SVGFilter.h:
* Source/WebKit/Platform/IPC/FilterReference.h:
(IPC::FilterReference::encodeFilter):
(IPC::FilterReference::decodeFilter):

Canonical link: https://commits.webkit.org/256985@main




More information about the webkit-changes mailing list