Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 876cd0f5d2135fb3b17077390274658f1b586c1c
      
https://github.com/WebKit/WebKit/commit/876cd0f5d2135fb3b17077390274658f1b586c1c
  Author: Matt Woodrow <[email protected]>
  Date:   2023-03-09 (Thu, 09 Mar 2023)

  Changed paths:
    M Source/WebCore/html/HTMLCanvasElement.cpp
    M Source/WebCore/html/HTMLCanvasElement.h
    M Source/WebCore/platform/graphics/GraphicsLayer.cpp
    M Source/WebCore/platform/graphics/GraphicsLayer.h
    M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
    M Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h
    M Source/WebCore/rendering/RenderHTMLCanvas.cpp
    M Source/WebCore/rendering/RenderLayer.cpp
    M Source/WebCore/rendering/RenderLayer.h
    M Source/WebCore/rendering/RenderLayerBacking.cpp
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm

  Log Message:
  -----------
  Use the Copy CompositeOperator when copying canvas into its layer.
https://bugs.webkit.org/show_bug.cgi?id=253614

Reviewed by Simon Fraser.

When the canvas buffer is the only draw into the layer, we should be able to 
just directly copy the pixels instead of blending.
This also means we can skip clearing the back buffer.

* Source/WebCore/html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::paint):
* Source/WebCore/html/HTMLCanvasElement.h:
* Source/WebCore/platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
* Source/WebCore/platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::paintUsingCompositeCopy const):
(WebCore::GraphicsLayer::setPaintUsingCompositeCopy):
(WebCore::GraphicsLayer::canCopy const): Deleted.
(WebCore::GraphicsLayer::setCanCopy): Deleted.
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h:
* Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h:
(WebCore::PlatformCALayerClient::platformCALayerPaintUsingCompositeCopy const):
(WebCore::PlatformCALayerClient::platformCALayerCanCopy const): Deleted.
* Source/WebCore/rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::paintReplaced):
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
* Source/WebCore/rendering/RenderLayer.h:
(WebCore::RenderLayer::paintUsingCompositeCopy const):
(WebCore::RenderLayer::setPaintUsingCompositeCopy):
(WebCore::RenderLayer::canCopy const): Deleted.
(WebCore::RenderLayer::setCanCopy): Deleted.
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateConfiguration):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::drawInContext):

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to