-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ImageBufferBackend::getPixelBuffer has redundant allocator parameter #13870
Merged
webkit-commit-queue
merged 1 commit into
WebKit:main
from
kkinnunen-apple:imagebuffer-context-did-draw-to-imagebuffer-1
May 19, 2023
Merged
ImageBufferBackend::getPixelBuffer has redundant allocator parameter #13870
webkit-commit-queue
merged 1 commit into
WebKit:main
from
kkinnunen-apple:imagebuffer-context-did-draw-to-imagebuffer-1
May 19, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Contributor
kkinnunen-apple
requested review from
magomez,
zdobersek and
cdumez
as code owners
May 15, 2023 08:59
EWS run on previous version of this PR (hash 7afb92a) |
shallawa
approved these changes
May 16, 2023
kkinnunen-apple
force-pushed
the
imagebuffer-context-did-draw-to-imagebuffer-1
branch
from
May 17, 2023 08:01
7afb92a
to
ab3403e
Compare
EWS run on current version of this PR (hash ab3403e) |
webkit-ews-buildbot
added
the
merging-blocked
Applied to prevent a change from being merged
label
May 17, 2023
kkinnunen-apple
added
merge-queue
Applied to send a pull request to merge-queue
and removed
merging-blocked
Applied to prevent a change from being merged
labels
May 19, 2023
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-commit-queue
force-pushed
the
imagebuffer-context-did-draw-to-imagebuffer-1
branch
from
May 19, 2023 08:35
ab3403e
to
61e0dd7
Compare
Committed 264239@main (61e0dd7): https://commits.webkit.org/264239@main Reviewed commits have been landed. Closing PR #13870 and removing active labels. |
webkit-commit-queue
removed
the
merge-queue
Applied to send a pull request to merge-queue
label
May 19, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
61e0dd7
ab3403e