[webkit-changes] [WebKit/WebKit] 91212e: BifurcatedGraphicsContext fails to apply image mas...

Tim Horton noreply at github.com
Mon Mar 6 11:25:12 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 91212e766452b51daeb83f508b642d72c99040b5
      https://github.com/WebKit/WebKit/commit/91212e766452b51daeb83f508b642d72c99040b5
  Author: Tim Horton <thorton at apple.com>
  Date:   2023-03-06 (Mon, 06 Mar 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/BifurcatedGraphicsContext.cpp
    M Source/WebCore/platform/graphics/BifurcatedGraphicsContext.h
    M Source/WebCore/platform/graphics/GraphicsContext.cpp
    M Source/WebCore/platform/graphics/GraphicsContext.h
    M Source/WebCore/platform/graphics/ImageBuffer.cpp
    M Source/WebCore/platform/graphics/ImageBuffer.h
    M Source/WebCore/platform/graphics/ImageBufferBackend.h
    M Source/WebCore/platform/graphics/cairo/ImageBufferCairoBackend.cpp
    M Source/WebCore/platform/graphics/cairo/ImageBufferCairoBackend.h
    M Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp
    M Source/WebCore/platform/graphics/cg/GraphicsContextCG.h
    M Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp
    M Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.h
    M Tools/TestWebKitAPI/Tests/WebCore/cg/BifurcatedGraphicsContextTestsCG.cpp

  Log Message:
  -----------
  BifurcatedGraphicsContext fails to apply image masks to the secondary context
https://bugs.webkit.org/show_bug.cgi?id=253340
rdar://104488384

Reviewed by Said Abou-Hallawa.

* Source/WebCore/platform/graphics/BifurcatedGraphicsContext.cpp:
(WebCore::BifurcatedGraphicsContext::clipToImageBuffer):
* Source/WebCore/platform/graphics/BifurcatedGraphicsContext.h:
Add a BifurcatedGraphicsContext implementation of clipToImageBuffer.

* Source/WebCore/platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::clipToImageBuffer): Deleted.
* Source/WebCore/platform/graphics/GraphicsContext.h:
Make clipToImageBuffer pure virtual instead of bouncing through ImageBuffer,
so that it is clear that it is implemented by the platform contexts (and not
in terms of other GraphicsContext commands), and thus must be overriden by
any GraphicsContext implementation.

* Source/WebCore/platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::clipToMask): Deleted.
* Source/WebCore/platform/graphics/ImageBuffer.h:
* Source/WebCore/platform/graphics/ImageBufferBackend.h:
(WebCore::ImageBufferBackend::clipToMask): Deleted.
* Source/WebCore/platform/graphics/cairo/ImageBufferCairoBackend.cpp:
(WebCore::ImageBufferCairoBackend::clipToMask): Deleted.
* Source/WebCore/platform/graphics/cairo/ImageBufferCairoBackend.h:
* Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContextCG::clipToImageBuffer):
* Source/WebCore/platform/graphics/cg/GraphicsContextCG.h:
* Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp:
(WebCore::ImageBufferCGBackend::clipToMask): Deleted.
* Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.h:
Move ImageBufferBackend::clipToMask into the platform GraphicsContext implementations.

* Tools/TestWebKitAPI/Tests/WebCore/cg/BifurcatedGraphicsContextTestsCG.cpp:
(TestWebKitAPI::TEST):
Add a test.

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




More information about the webkit-changes mailing list