diff --git a/Userland/Libraries/LibAccelGfx/Painter.h b/Userland/Libraries/LibAccelGfx/Painter.h index bdad0d9565..068164912d 100644 --- a/Userland/Libraries/LibAccelGfx/Painter.h +++ b/Userland/Libraries/LibAccelGfx/Painter.h @@ -39,6 +39,7 @@ public: [[nodiscard]] Gfx::AffineTransform const& transform() const { return state().transform; } void set_transform(Gfx::AffineTransform const& transform) { state().transform = transform; } + void translate(Gfx::FloatPoint translation) { state().transform.translate(translation); } void fill_rect(Gfx::FloatRect, Gfx::Color); void fill_rect(Gfx::IntRect, Gfx::Color); diff --git a/Userland/Libraries/LibWeb/Painting/PaintingCommandExecutorGPU.cpp b/Userland/Libraries/LibWeb/Painting/PaintingCommandExecutorGPU.cpp index 3cda541877..6696c03cb3 100644 --- a/Userland/Libraries/LibWeb/Painting/PaintingCommandExecutorGPU.cpp +++ b/Userland/Libraries/LibWeb/Painting/PaintingCommandExecutorGPU.cpp @@ -75,15 +75,16 @@ CommandResult PaintingCommandExecutorGPU::set_font(Gfx::Font const&) return CommandResult::Continue; } -CommandResult PaintingCommandExecutorGPU::push_stacking_context(float, bool, Gfx::IntRect const&, Gfx::IntPoint, CSS::ImageRendering, StackingContextTransform, Optional) +CommandResult PaintingCommandExecutorGPU::push_stacking_context(float, bool, Gfx::IntRect const&, Gfx::IntPoint post_transform_translation, CSS::ImageRendering, StackingContextTransform, Optional) { - // FIXME + painter().save(); + painter().translate(post_transform_translation.to_type()); return CommandResult::Continue; } CommandResult PaintingCommandExecutorGPU::pop_stacking_context() { - // FIXME + painter().restore(); return CommandResult::Continue; }