Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8cc92b72254026fac7ef2f8dfe91745a43ec986d https://github.com/WebKit/WebKit/commit/8cc92b72254026fac7ef2f8dfe91745a43ec986d Author: Kimmo Kinnunen <kkinnu...@apple.com> Date: 2023-12-13 (Wed, 13 Dec 2023)
Changed paths: M Source/WebCore/Modules/WebGPU/Implementation/WebGPUImpl.cpp M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/platform/graphics/BifurcatedGraphicsContext.cpp M Source/WebCore/platform/graphics/BifurcatedGraphicsContext.h M Source/WebCore/platform/graphics/BitmapImage.cpp M Source/WebCore/platform/graphics/GraphicsContext.cpp M Source/WebCore/platform/graphics/GraphicsContext.h M Source/WebCore/platform/graphics/GraphicsContextGL.cpp M Source/WebCore/platform/graphics/NativeImage.h M Source/WebCore/platform/graphics/NullGraphicsContext.h M Source/WebCore/platform/graphics/SourceImage.cpp M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm M Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp M Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.h M Source/WebCore/platform/graphics/cairo/NativeImageCairo.cpp M Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp M Source/WebCore/platform/graphics/cg/GraphicsContextCG.h M Source/WebCore/platform/graphics/cg/NativeImageCG.cpp M Source/WebCore/platform/graphics/cocoa/IconCocoa.mm M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm M Source/WebCore/platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp M Source/WebCore/platform/graphics/cv/VideoFrameCV.mm M Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListItems.h M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h M Source/WebCore/platform/graphics/filters/software/FEImageSoftwareApplier.cpp M Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp M Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h M Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in M Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.cpp M Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.cpp M Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp M Source/WebKit/Shared/API/c/cg/WKImageCG.cpp M Source/WebKit/Shared/DisplayListArgumentCoders.serialization.in M Source/WebKit/Shared/ShareableBitmap.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp M Source/WebKit/WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp M Source/WebKit/WebProcess/cocoa/TextTrackRepresentationCocoa.mm M Tools/TestWebKitAPI/Tests/WebCore/ImageBufferTests.cpp M Tools/TestWebKitAPI/Tests/WebCore/cg/GraphicsContextCGTests.mm Log Message: ----------- GraphicsContext::drawNativeImage has redundant imageSize parameter https://bugs.webkit.org/show_bug.cgi?id=266279 rdar://119551804 Reviewed by Matt Woodrow. NativeImage knows its size. The GraphicsContext::drawNativeImage has FloatRect sourceRect parameter to define the portion of the full size to use. The IntRect imageSize is probably a legacy argument used for partial images before sourceRect was introduced. All callsites but one use the full NativeImage size as the imageSize. The only non-full image draw in BitmapImage uses the same rect as the source rect. The function can be further simplified, but to make this patch easier to review make minimal compatible changes to GraphicsContextCG::drawNativeImageInternal. * Source/WebCore/Modules/WebGPU/Implementation/WebGPUImpl.cpp: (WebCore::WebGPU::GPUImpl::paintToCanvas): * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::drawImage): * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::videoFrameToImage): * Source/WebCore/platform/graphics/BifurcatedGraphicsContext.cpp: (WebCore::BifurcatedGraphicsContext::drawNativeImageInternal): * Source/WebCore/platform/graphics/BifurcatedGraphicsContext.h: * Source/WebCore/platform/graphics/BitmapImage.cpp: (WebCore::BitmapImage::preTransformedNativeImageForCurrentFrame): (WebCore::drawNativeImage): * Source/WebCore/platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawNativeImage): (WebCore::GraphicsContext::drawImageBuffer): (WebCore::GraphicsContext::drawConsumingImageBuffer): * Source/WebCore/platform/graphics/GraphicsContext.h: (WebCore::GraphicsContext::drawNativeImage): (WebCore::GraphicsContext::drawNativeImageInternal): * Source/WebCore/platform/graphics/GraphicsContextGL.cpp: (WebCore::GraphicsContextGL::paintToCanvas): * Source/WebCore/platform/graphics/NativeImage.h: * Source/WebCore/platform/graphics/NullGraphicsContext.h: * Source/WebCore/platform/graphics/SourceImage.cpp: (WebCore::SourceImage::imageBuffer const): * Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput): * Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext): * Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext): * Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContextCairo::drawNativeImageInternal): * Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.h: * Source/WebCore/platform/graphics/cairo/NativeImageCairo.cpp: (WebCore::NativeImage::draw): * Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContextCG::drawNativeImageInternal): * Source/WebCore/platform/graphics/cg/GraphicsContextCG.h: * Source/WebCore/platform/graphics/cg/NativeImageCG.cpp: (WebCore::NativeImage::draw): * Source/WebCore/platform/graphics/cocoa/IconCocoa.mm: (WebCore::Icon::paint): * Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm: (WebCore::MediaPlayerPrivateWebM::paintCurrentFrameInContext): * Source/WebCore/platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp: (WebCore::DrawGlyphsRecorder::recordDrawImage): * Source/WebCore/platform/graphics/cv/VideoFrameCV.mm: (WebCore::VideoFrame::paintInContext): * Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp: (WebCore::DisplayList::DrawNativeImage::apply const): * Source/WebCore/platform/graphics/displaylists/DisplayListItems.h: (WebCore::DisplayList::DrawNativeImage::DrawNativeImage): (WebCore::DisplayList::DrawNativeImage::imageIdentifier const): (WebCore::DisplayList::DrawNativeImage::imageSize const): Deleted. * Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp: (WebCore::DisplayList::Recorder::drawNativeImageInternal): * Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h: * Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp: (WebCore::DisplayList::RecorderImpl::recordDrawNativeImage): * Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h: * Source/WebCore/platform/graphics/filters/software/FEImageSoftwareApplier.cpp: (WebCore::FEImageSoftwareApplier::apply const): * Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp: (Nicosia::CairoOperationRecorder::drawNativeImageInternal): * Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h: * Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp: (WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::paintCurrentFrame): * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp: (WebKit::RemoteDisplayListRecorder::drawNativeImage): * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h: * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in: * Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.cpp: (WebKit::RemoteImageBuffer::filteredNativeImage): * Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.cpp: (WebKit::RemoteImageDecoderAVFProxy::createFrameImageAtIndex): * Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: (WebKit::RemoteMediaPlayerManagerProxy::bitmapImageForCurrentTime): * Source/WebKit/Shared/API/c/cg/WKImageCG.cpp: (WKImageCreateFromCGImage): * Source/WebKit/Shared/DisplayListArgumentCoders.serialization.in: * Source/WebKit/Shared/ShareableBitmap.cpp: (WebKit::ShareableBitmap::createFromImageDraw): * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp: (WebKit::RemoteDisplayListRecorderProxy::recordDrawNativeImage): * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h: * Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::paintCurrentFrameInContext): * Source/WebKit/WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp: (WebKit::createShareableBitmap): * Source/WebKit/WebProcess/cocoa/TextTrackRepresentationCocoa.mm: (WebKit::WebTextTrackRepresentationCocoa::update): * Tools/TestWebKitAPI/Tests/WebCore/ImageBufferTests.cpp: (TestWebKitAPI::TEST_P): * Tools/TestWebKitAPI/Tests/WebCore/cg/GraphicsContextCGTests.mm: (TestWebKitAPI::TEST): Canonical link: https://commits.webkit.org/271976@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes