1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 05:27:46 +00:00

LibWeb/Painting: Introduce PaintingCommandExecutor

Decoupling painting command executor from RecordingPainter allows to
introduce painters other than CPU Gfx::Painter :)
This commit is contained in:
Aliaksandr Kalenik 2023-10-26 08:45:25 +02:00 committed by Andreas Kling
parent 1682e46df9
commit f915aa70cd
8 changed files with 627 additions and 477 deletions

View file

@ -5,6 +5,7 @@
*/
#include <LibWeb/Layout/ImageBox.h>
#include <LibWeb/Painting/PaintingCommandExecutorCPU.h>
#include <LibWeb/Painting/SVGGraphicsPaintable.h>
#include <LibWeb/Painting/StackingContext.h>
#include <LibWeb/SVG/SVGMaskElement.h>
@ -96,7 +97,8 @@ RefPtr<Gfx::Bitmap> SVGGraphicsPaintable::calculate_mask(PaintContext& context,
auto paint_context = context.clone(painter);
paint_context.set_svg_transform(graphics_element.get_transform());
StackingContext::paint_node_as_stacking_context(mask_paintable, paint_context);
painter.execute(*mask_bitmap);
PaintingCommandExecutorCPU executor { *mask_bitmap };
painter.execute(executor);
}
}
return mask_bitmap;