[webkit-changes] [WebKit/WebKit] dbef4c: Transparent, composited canvas is rendered black w...
Kimmo Kinnunen
noreply at github.com
Fri Jul 7 05:08:25 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: dbef4cf540cf8c439d4ff62c949da5f3d225636f
https://github.com/WebKit/WebKit/commit/dbef4cf540cf8c439d4ff62c949da5f3d225636f
Author: Kimmo Kinnunen <kkinnunen at apple.com>
Date: 2023-07-07 (Fri, 07 Jul 2023)
Changed paths:
M Source/WebCore/html/HTMLCanvasElement.cpp
M Source/WebCore/html/HTMLCanvasElement.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/WebCore/rendering/RenderLayerBacking.h
M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h
Log Message:
-----------
Transparent, composited canvas is rendered black when layer is changed to render layer backing sharing
https://bugs.webkit.org/show_bug.cgi?id=258927
rdar://110088034
Reviewed by Simon Fraser.
Explicitly composited canvas element might switch to being
composited to other RenderLayerBacking. This left the
RenderLayer::m_shouldPaintUsingCompositeCopy unreset.
Instead, store the flag to RenderLayerBacking.
* Source/WebCore/html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::paint):
* Source/WebCore/html/HTMLCanvasElement.h:
* Source/WebCore/rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::paintReplaced):
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
* Source/WebCore/rendering/RenderLayer.h:
(WebCore::RenderLayer::shouldPaintUsingCompositeCopy const): Deleted.
(WebCore::RenderLayer::setShouldPaintUsingCompositeCopy): Deleted.
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::paintIntoLayer):
* Source/WebCore/rendering/RenderLayerBacking.h:
Canonical link: https://commits.webkit.org/265837@main
More information about the webkit-changes
mailing list