ladybird/Libraries/LibWeb/HTML/EventLoop
Aliaksandr Kalenik 004e5f851e LibWeb: Use ExternalContentSource for canvas painting
present() now snapshots the PaintingSurface into an ImmutableBitmap
and publishes it to the ExternalContentSource, so the rendering thread
never touches the live GPU surface — eliminating the data race
described in the ExternalContentSource commit (problem 1).

Canvas elements are registered with Page and presented once per frame
from the event loop, rather than on every individual draw call in
CRC2D::did_draw(). A dirty flag on HTMLCanvasElement ensures the
snapshot is only taken when content has actually changed, and makes
the present() call in CanvasPaintable::paint() a no-op when the
surface has already been snapshotted for the current frame.
2026-02-20 18:41:33 +01:00
..
EventLoop.cpp LibWeb: Use ExternalContentSource for canvas painting 2026-02-20 18:41:33 +01:00
EventLoop.h LibWeb: Add a hook in EventLoop to call a task when reaching step 1 2025-10-27 17:28:49 -07:00
Task.cpp LibWeb: Add "parallel queue" and allow it as fetch task destination 2025-07-17 00:13:39 +02:00
Task.h LibWeb: Add the Crypto task source 2025-12-28 18:56:50 +01:00
TaskQueue.cpp LibWeb: Don't run tasks in documents that haven't been BC associated 2025-12-27 16:40:34 +01:00
TaskQueue.h LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00