Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 61e0dd7d8d87ba9591d3ca6e16da94702bdcc090
https://github.com/WebKit/WebKit/commit/61e0dd7d8d87ba9591d3ca6e16da94702bdcc090
Author: Kimmo Kinnunen <[email protected]>
Date: 2023-05-19 (Fri, 19 May 2023)
Changed paths:
M Source/WebCore/platform/graphics/ImageBuffer.cpp
M Source/WebCore/platform/graphics/ImageBufferBackend.cpp
M Source/WebCore/platform/graphics/ImageBufferBackend.h
M Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp
M Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h
M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp
M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.h
M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp
M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h
M Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h
M Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.mm
M
Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp
M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h
M
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp
M
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h
M
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.cpp
M
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.h
Log Message:
-----------
ImageBufferBackend::getPixelBuffer has redundant allocator parameter
https://bugs.webkit.org/show_bug.cgi?id=256778
rdar://109343550
Reviewed by Said Abou-Hallawa.
ImageBufferBackend::getPixelBuffer is a virtual function where
subclasses can customize the behavior. The PixelBuffer allocator
parameter is not used in polymorphic way. Instead, the caller of
ImageBufferBackend::getImageBuffer, e.g. ImageBuffer and
RemoteImageBufferProxy, can create the PixelBuffer before invoking
getPixelBuffer.
The removal simplifying the getImageBuffer API is needed so that adding
actually useful parameters does not cause overly complicated API.
Makes the rect and point arguments of
ImageBufferBackend::getPixelBuffer/putPixelBuffer be in backend
coordinate system instead of "logical size" coordinate system. The
"logical size" doesn't make sense for the backend, rather backend is
always in raw pixel coordinates.
Fixes undefined behavior wrt read before write in constructs such as:
ConstPixelBufferConversionView source {
...,
[bytesPerRow initializer],
..., x + source.bytesPerRow * y, ...
};
* Source/WebCore/platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::getPixelBuffer const):
(WebCore::ImageBuffer::putPixelBuffer):
* Source/WebCore/platform/graphics/ImageBufferBackend.cpp:
(WebCore::ImageBufferBackend::convertToLuminanceMask):
(WebCore::ImageBufferBackend::getPixelBuffer):
(WebCore::ImageBufferBackend::putPixelBuffer):
* Source/WebCore/platform/graphics/ImageBufferBackend.h:
* Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:
(WebCore::ImageBufferCairoSurfaceBackend::getPixelBuffer):
* Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h:
* Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:
(WebCore::ImageBufferCGBitmapBackend::getPixelBuffer):
* Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.h:
* Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::getPixelBuffer):
* Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
* Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h:
* Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.mm:
(WebKit::CGDisplayListImageBufferBackend::getPixelBuffer):
* Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
(WebKit::ImageBufferShareableBitmapBackend::getPixelBuffer):
* Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
*
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp:
(WebKit::ImageBufferRemoteIOSurfaceBackend::getPixelBuffer):
*
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h:
*
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.cpp:
(WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::getPixelBuffer):
*
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.h:
Canonical link: https://commits.webkit.org/264239@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes