Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4067adafd0c995efd469d79f7ad8fc4fc2160ced
https://github.com/WebKit/WebKit/commit/4067adafd0c995efd469d79f7ad8fc4fc2160ced
Author: Gerald Squelart <[email protected]>
Date: 2026-08-14 (Fri, 14 Aug 2026)
Changed paths:
A
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-display-p3-expected.txt
A
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-display-p3.html
A
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-expected.txt
A
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-no-gpu-process-expected.txt
A
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-no-gpu-process.html
A
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated.html
A
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-unaccelerated-expected.txt
A
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-unaccelerated-no-gpu-process-expected.txt
A
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-unaccelerated-no-gpu-process.html
A
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-unaccelerated.html
A LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas.js
M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp
M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h
M Source/WebCore/platform/graphics/GraphicsContext.cpp
M Source/WebCore/platform/graphics/GraphicsContext.h
M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp
Log Message:
-----------
Complete HDR CanvasRenderingContext2DBase::drawImage from 2d canvas
https://bugs.webkit.org/show_bug.cgi?id=321625
rdar://184755917
Reviewed by Mike Wyrzykowski.
The only missing parts were to ensure that we create an ImageBuffer with
the same pixel format as the current context, so that HDR data is not
clamped.
And ImageBuffer now supports the RGBA16F pixel format.
Add tests for all combinations of SDR/HDR canvas to SDR/HDR canvas,
different composition operations, with/without GPU process, and with
accelerated or unaccelerated rendering.
*
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-display-p3-expected.txt:
Added.
*
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-display-p3.html:
Added.
*
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-expected.txt:
Added.
*
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-no-gpu-process-expected.txt:
Added.
*
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-no-gpu-process.html:
Added.
* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated.html:
Added.
*
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-unaccelerated-expected.txt:
Added.
*
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-unaccelerated-no-gpu-process-expected.txt:
Added.
*
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-unaccelerated-no-gpu-process.html:
Added.
*
LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-unaccelerated.html:
Added.
* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas.js: Added.
(toleranceFor):
(createContext):
(fill):
(verifyPixel):
(expectedRed):
(testCrossCanvas):
(testSelfDraw):
* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::CanvasRenderingContext2DBase::fullCanvasCompositedDrawImage):
(WebCore::CanvasRenderingContext2DBase::createCompatibleImageBuffer const):
* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h:
* Source/WebCore/platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::createImageBuffer const):
* Source/WebCore/platform/graphics/GraphicsContext.h:
* Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:
(WebCore::bitmapInfoForPixelFormat):
(WebCore::ImageBufferCGBitmapBackend::create):
(WebCore::ImageBufferCGBitmapBackend::createNativeImageReference):
Canonical link: https://commits.webkit.org/319201@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications