ladybird/Libraries/LibWeb/HTML/Canvas
Aliaksandr Kalenik a08734ecbc LibGfx+LibWeb+Compositor+WebContent: Commit 2D canvas flushes atomically
2D canvas contexts started publishing partial frames after canvas
rasterization moved into the Compositor. WebContent still splits large
recorded command lists after 64 commands, but every split batch was sent
through the same compositor path as the end-of-frame flush. The
compositor replayed each batch into the DrawCanvas source surface,
so a pending present could sample a canvas after clear and before the
rest of the next frame had been drawn. Canvas-heavy pages such as
slither.com then flickered between partial and complete frames.

Carry an explicit commit bit with 2D canvas command updates. Non-commit
batches now update a hidden working canvas in the Compositor, while the
display-list-visible surface keeps the last committed canvas contents.
The end-of-frame canvas preparation sends the commit boundary, including
the empty-commit case needed when the auto-flush consumed all recorded
commands before prepare_for_compositing() runs.
2026-06-19 00:01:26 +02:00
..
AbstractCanvasMixin.cpp LibWeb: Consolidate parsing of canvas colors 2026-05-31 14:09:51 +02:00
AbstractCanvasMixin.h LibWeb+Compositor: Run canvas contexts in the Compositor 2026-06-17 19:07:32 +02:00
CanvasCompositing.h LibWeb/Canvas: Support globalCompositionOperation 2025-02-05 11:26:58 +00:00
CanvasCompositing.idl LibWeb/Canvas: Support globalCompositionOperation 2025-02-05 11:26:58 +00:00
CanvasDrawImage.cpp LibWeb: Add DecodedImageData::default_frame helper 2026-06-18 10:44:25 +02:00
CanvasDrawImage.h LibWeb: Unify WebIDL C++ type generation 2026-05-23 18:26:12 +02:00
CanvasDrawImage.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
CanvasDrawPath.h
CanvasDrawPath.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
CanvasFillStrokeStyles.cpp LibWeb: Consolidate parsing of canvas colors 2026-05-31 14:09:51 +02:00
CanvasFillStrokeStyles.h LibWeb: Simplify canvas mixins state access 2026-05-31 14:09:51 +02:00
CanvasFillStrokeStyles.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
CanvasFilters.h LibWeb+LibGfx: Implement Canvas2D filters 2024-12-18 18:54:20 +01:00
CanvasFilters.idl LibWeb+LibGfx: Implement Canvas2D filters 2024-12-18 18:54:20 +01:00
CanvasImageData.h LibWeb+Compositor: Run canvas contexts in the Compositor 2026-06-17 19:07:32 +02:00
CanvasImageData.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
CanvasImageSmoothing.h
CanvasImageSmoothing.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
CanvasPath.cpp LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
CanvasPath.h LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
CanvasPath.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
CanvasPathDrawingStyles.h LibWeb: Align AbstractCanvasMixin method names with implementers 2026-05-31 14:09:51 +02:00
CanvasPathDrawingStyles.idl
CanvasRect.h
CanvasRect.idl
CanvasSettings.h LibWeb: Generate canvas settings from IDL bindings 2026-05-09 10:49:49 +02:00
CanvasSettings.idl LibWeb: Factor out CanvasSettings mixin into separate file 2025-06-17 16:54:04 -06:00
CanvasShadowStyles.h LibWeb: Remove unused methods from CanvasShadowStyles 2026-05-31 14:09:51 +02:00
CanvasShadowStyles.idl LibWeb+LibGfx: Implement shadowBlur for Canvas2D 2024-12-05 17:07:13 +01:00
CanvasState.cpp LibGfx+LibWeb: Paint 2D canvas via record-and-replay 2026-06-13 20:41:03 +02:00
CanvasState.h LibWeb+WebContent: Restore canvas contexts after Compositor loss 2026-06-17 19:07:32 +02:00
CanvasState.idl
CanvasText.h LibWeb: Use Utf16String in CanvasText APIs 2025-09-21 13:22:38 +02:00
CanvasText.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
CanvasTextDrawingStyles.cpp LibWeb: Absolutize relative letterSpacing lengths using canvas font 2026-05-31 14:09:51 +02:00
CanvasTextDrawingStyles.h LibWeb: Absolutize relative letterSpacing lengths using canvas font 2026-05-31 14:09:51 +02:00
CanvasTextDrawingStyles.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
CanvasTransform.h LibGfx+LibWeb: Paint 2D canvas via record-and-replay 2026-06-13 20:41:03 +02:00
CanvasTransform.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
CanvasUserInterface.idl
DrawingState.cpp LibWeb: Move canvas DrawingState to standalone file 2026-05-31 14:09:51 +02:00
DrawingState.h LibWeb: Allow calculated values for canvas letterSpacing 2026-05-31 14:09:51 +02:00
OffscreenCanvasBase.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
RemoteCanvas2DTransport.h LibGfx+LibWeb+Compositor+WebContent: Commit 2D canvas flushes atomically 2026-06-19 00:01:26 +02:00
SerializeBitmap.cpp Everywhere: Avoid large rebuilds when editing (Immutable)Bitmap headers 2025-11-28 18:32:48 +01:00
SerializeBitmap.h LibWeb: Remove unused Document.h includes from SerializeBitmap.h 2026-02-08 18:51:13 +01:00