-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OffscreenCanvas uses CanvasBase::buffer() directly #29894
OffscreenCanvas uses CanvasBase::buffer() directly #29894
Conversation
EWS run on previous version of this PR (hash 7db031b) |
7db031b
to
5864af2
Compare
EWS run on previous version of this PR (hash 5864af2) |
5864af2
to
e05ebcd
Compare
EWS run on previous version of this PR (hash e05ebcd) |
e05ebcd
to
8eb4b52
Compare
EWS run on previous version of this PR (hash 8eb4b52) |
8eb4b52
to
8153893
Compare
EWS run on previous version of this PR (hash 8153893) |
8153893
to
b6ca911
Compare
EWS run on previous version of this PR (hash b6ca911) |
b6ca911
to
229f611
Compare
EWS run on previous version of this PR (hash 229f611) |
229f611
to
1199811
Compare
EWS run on current version of this PR (hash 1199811) |
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
1199811
to
035c61a
Compare
Committed 280115@main (035c61a): https://commits.webkit.org/280115@main Reviewed commits have been landed. Closing PR #29894 and removing active labels. |
035c61a
1199811