Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0c6288be7ffe1f75fcd39a6bd2aa10ee6afa993f
      
https://github.com/WebKit/WebKit/commit/0c6288be7ffe1f75fcd39a6bd2aa10ee6afa993f
  Author: Said Abou-Hallawa <[email protected]>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp
    M Source/WebCore/platform/graphics/BitmapImage.cpp
    M Source/WebCore/platform/graphics/BitmapImage.h
    M Source/WebCore/platform/graphics/ImagePaintingOptions.h
    M Source/WebCore/platform/graphics/ImageTypes.h
    M Source/WebCore/rendering/BackgroundPainter.cpp
    M Source/WebCore/rendering/RenderBoxModelObject.cpp
    M Source/WebCore/rendering/RenderImage.cpp
    M Source/WebCore/rendering/svg/RenderSVGImage.cpp
    M Source/WebCore/testing/Internals.cpp

  Log Message:
  -----------
  Remove BitmapImage::updateFromSettings()
https://bugs.webkit.org/show_bug.cgi?id=267607
rdar://121077174

Reviewed by Cameron McCormack.

Calculate all the image painting options before calling BitmapImage::draw().
Remove all the calls to BitmapImage::updateFromSettings() and pass the 
calculated
AllowImageSubsampling and ShowDebugBackground through ImagePaintingOptions.

The first frame of an animated image had to be decoded synchronously. In fact
this restriction is not needed. The rules to decode the static image and the
first frame of an animated image should be the same.

Late decoded frames of an animated images was showing a yellow rectangle if
showDebugBackground is enabled. This is not really needed since the animation
does not advance until the next frame is fully decoded.

* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::drawImage):
* Source/WebCore/platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::shouldUseAsyncDecodingForAnimatedImages const):
(WebCore::BitmapImage::subsamplingLevelForScaleFactor):
(WebCore::BitmapImage::internalStartAnimation):
(WebCore::BitmapImage::advanceAnimation):
(WebCore::BitmapImage::decode):
(WebCore::BitmapImage::updateFromSettings): Deleted.
* Source/WebCore/platform/graphics/BitmapImage.h:
* Source/WebCore/platform/graphics/ImagePaintingOptions.h:
(WebCore::ImagePaintingOptions::allowImageSubsampling const):
(WebCore::ImagePaintingOptions::showDebugBackground const):
(WebCore::ImagePaintingOptions::setOption):
* Source/WebCore/platform/graphics/ImageTypes.h:
* Source/WebCore/rendering/BackgroundPainter.cpp:
(WebCore::BackgroundPainter::paintFillLayer):
* Source/WebCore/rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::decodingModeForImageDraw const):
* Source/WebCore/rendering/RenderImage.cpp:
(WebCore::RenderImage::paintIntoRect):
* Source/WebCore/rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::paintIntoRect):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::imageFrameIndex):

Canonical link: https://commits.webkit.org/273528@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to