WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-227760-20220505144403.patch (text/plain), 3.05 KB, created by
Miguel Gomez
on 2022-05-05 05:44:04 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Miguel Gomez
Created:
2022-05-05 05:44:04 PDT
Size:
3.05 KB
patch
obsolete
>Subversion Revision: 293827 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 5acb71fb6bff7f8d52e146f94be527e98f39ccee..dc0c9beb3329abc59024323fbc18636130ef7ef0 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,17 @@ >+2022-05-05 Miguel Gomez <magomez@igalia.com> >+ >+ [Nicosia] Canvas animations don't work with threaded rendering >+ https://bugs.webkit.org/show_bug.cgi?id=227760 >+ <rdar://problem/80588913> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Implement Nicosia::CairoOperationRecorder::draImageBuffer(), which is required in order to paint >+ canvas contents into a GraphicsContext. >+ >+ * platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp: >+ (Nicosia::CairoOperationRecorder::drawImageBuffer): >+ > 2022-05-05 Youenn Fablet <youenn@apple.com> > > replaceTrack with different constraints stops sending packets >diff --git a/Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp b/Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp >index c21cd0e4d527a3cc1202bf6fcf7ed21aff93d5f0..c3583db732bfa630288d9b850f2d49e389e191ff 100644 >--- a/Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp >+++ b/Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp >@@ -538,9 +538,32 @@ void CairoOperationRecorder::drawGlyphs(const Font& font, const GlyphBufferGlyph > state.strokeThickness(), state.dropShadow().offset, state.dropShadow().color, fontSmoothing)); > } > >-void CairoOperationRecorder::drawImageBuffer(ImageBuffer&, const FloatRect&, const FloatRect&, const ImagePaintingOptions&) >+void CairoOperationRecorder::drawImageBuffer(ImageBuffer& buffer, const FloatRect& destRect, const FloatRect& srcRect, const ImagePaintingOptions& options) > { >- // FIXME: Not implemented. >+ struct DrawImageBuffer final : PaintingOperation, OperationData<RefPtr<cairo_surface_t>, FloatRect, FloatRect, ImagePaintingOptions, float, Cairo::ShadowState> { >+ virtual ~DrawImageBuffer() = default; >+ >+ void execute(PaintingOperationReplay& replayer) override >+ { >+ Cairo::drawPlatformImage(contextForReplay(replayer), arg<0>().get(), arg<1>(), arg<2>(), arg<3>(), arg<4>(), arg<5>()); >+ } >+ >+ void dump(TextStream& ts) override >+ { >+ ts << indent << "DrawImageBuffer<>\n"; >+ } >+ }; >+ >+ RefPtr<Image> image = buffer.copyImage(DontCopyBackingStore); >+ if (!image) >+ return; >+ >+ auto nativeImage = image->nativeImageForCurrentFrame(); >+ if (!nativeImage) >+ return; >+ >+ auto& state = this->state(); >+ append(createCommand<DrawImageBuffer>(nativeImage->platformImage(), destRect, srcRect, ImagePaintingOptions(options, state.imageInterpolationQuality()), state.alpha(), Cairo::ShadowState(state))); > } > > void CairoOperationRecorder::drawNativeImage(NativeImage& nativeImage, const FloatSize& imageSize, const FloatRect& destRect, const FloatRect& srcRect, const ImagePaintingOptions& options)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 227760
: 458868