Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 035c61acf6267e692884387c014892fda04f6bfd
      
https://github.com/WebKit/WebKit/commit/035c61acf6267e692884387c014892fda04f6bfd
  Author: Kimmo Kinnunen <[email protected]>
  Date:   2024-06-18 (Tue, 18 Jun 2024)

  Changed paths:
    M Source/WebCore/Headers.cmake
    M 
Source/WebCore/SmartPointerExpectations/UncountedCallArgsCheckerExpectations
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/html/HTMLCanvasElement.cpp
    M Source/WebCore/html/HTMLCanvasElement.h
    M Source/WebCore/html/OffscreenCanvas.cpp
    M Source/WebCore/html/OffscreenCanvas.h
    M Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp
    M Source/WebCore/html/canvas/PlaceholderRenderingContext.h
    M Source/WebCore/platform/SourcesNicosia.txt
    R Source/WebCore/platform/graphics/ImageBufferPipe.cpp
    R Source/WebCore/platform/graphics/ImageBufferPipe.h
    R Source/WebCore/platform/graphics/nicosia/NicosiaImageBufferPipe.cpp
    R Source/WebCore/platform/graphics/nicosia/NicosiaImageBufferPipe.h
    A 
Source/WebCore/platform/graphics/nicosia/NicosiaPlaceholderRenderingContextSource.cpp
    M Source/WebCore/platform/network/DNS.cpp

  Log Message:
  -----------
  OffscreenCanvas uses CanvasBase::buffer() directly
https://bugs.webkit.org/show_bug.cgi?id=275563
rdar://problem/129989623

Reviewed by Matt Woodrow.

OffscreenCanvas would use CanvasBase::buffer() to transfer the
offscreen canvas rendering to placeholder canvas.
The transfer is a draw operation from offscreen canvas and it changes
conceptually the placeholder *context*, not the placeholder canvas.

Implement this by adding PlaceholderRenderingContext::setPlaceholderBuffer().

Remove redundant ImageBufferPipe and OffscreenCanvasPlaceholderData
classes. PlaceholderRenderingContextSource is the thread-safe refcounted
interface to submit the placeholder buffer.

This is work towards making the rendering contexts be able to manage the
drawing and display buffers, by eventually removing the buffers from
CanvasBase.

* 
Source/WebCore/platform/graphics/nicosia/NicosiaPlaceholderRenderingContextSource.cpp:
 Renamed from 
Source/WebCore/platform/graphics/nicosia/NicosiaImageBufferPipe.cpp.
(Nicosia::NicosiaPlaceholderRenderingContextSource::NicosiaPlaceholderRenderingContextSource):
(Nicosia::NicosiaPlaceholderRenderingContextSource::~NicosiaPlaceholderRenderingContextSource):
(Nicosia::NicosiaPlaceholderRenderingContextSource::setPlaceholderBuffer):
(Nicosia::NicosiaPlaceholderRenderingContextSource::swapBuffersIfNeeded):
(Nicosia::NicosiaPlaceholderRenderingContextSource::setContentsToLayer):
(WebCore::PlaceholderRenderingContextSource::create):
* Source/WebCore/Headers.cmake:
* Source/WebCore/SmartPointerExpectations/UncountedCallArgsCheckerExpectations:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::transferControlToOffscreen):
* Source/WebCore/html/HTMLCanvasElement.h:
* Source/WebCore/html/OffscreenCanvas.cpp:
(WebCore::DetachedOffscreenCanvas::DetachedOffscreenCanvas):
(WebCore::DetachedOffscreenCanvas::takePlaceholderSource):
(WebCore::OffscreenCanvas::create):
(WebCore::OffscreenCanvas::OffscreenCanvas):
(WebCore::OffscreenCanvas::detach):
(WebCore::OffscreenCanvas::commitToPlaceholderCanvas):
(WebCore::OffscreenCanvas::scheduleCommitToPlaceholderCanvas):
(WebCore::OffscreenCanvasPlaceholderData::create): Deleted.
(WebCore::OffscreenCanvasPlaceholderData::placeholder const): Deleted.
(WebCore::OffscreenCanvasPlaceholderData::pipeSource const): Deleted.
(WebCore::OffscreenCanvasPlaceholderData::OffscreenCanvasPlaceholderData): 
Deleted.
(WebCore::DetachedOffscreenCanvas::takePlaceholderData): Deleted.
* Source/WebCore/html/OffscreenCanvas.h:
* Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp:
(WebCore::PlaceholderRenderingContextSource::create):
(WebCore::PlaceholderRenderingContextSource::PlaceholderRenderingContextSource):
(WebCore::PlaceholderRenderingContextSource::setPlaceholderBuffer):
(WebCore::PlaceholderRenderingContext::create):
(WebCore::PlaceholderRenderingContext::PlaceholderRenderingContext):
(WebCore::PlaceholderRenderingContext::canvas const):
(WebCore::PlaceholderRenderingContext::size const):
(WebCore::PlaceholderRenderingContext::setContentsToLayer):
(WebCore::PlaceholderRenderingContext::setPlaceholderBuffer):
* Source/WebCore/html/canvas/PlaceholderRenderingContext.h:
* Source/WebCore/platform/SourcesNicosia.txt:
* Source/WebCore/platform/graphics/ImageBufferPipe.cpp: Removed.
* Source/WebCore/platform/graphics/ImageBufferPipe.h: Removed.
* Source/WebCore/platform/graphics/nicosia/NicosiaImageBufferPipe.h: Removed.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to