ladybird/Libraries/LibWeb/Painting/BorderRadiusCornerClipper.h
Aliaksandr Kalenik 537f289c0c LibGfx+LibWeb: Move display-list corner types to LibGfx
Prep for moving display-list rasterization out of LibWeb by moving the
device-pixel corner radius, corner clip, and anti-aliasing types to
LibGfx.

Keep BorderRadiiData in LibWeb as the CSS-pixel representation and
convert it to Gfx corner radii when recording display-list commands.
2026-05-12 16:30:26 +02:00

37 lines
818 B
C++

/*
* Copyright (c) 2022, MacDue <macdue@dueutil.tech>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibGfx/CornerRadii.h>
#include <LibWeb/Export.h>
#include <LibWeb/PixelUnits.h>
namespace Web {
class DisplayListRecordingContext;
}
namespace Web::Painting {
struct BorderRadiiData;
struct WEB_API ScopedCornerRadiusClip {
ScopedCornerRadiusClip(DisplayListRecordingContext& context, DevicePixelRect const& border_rect, BorderRadiiData const& border_radii, Gfx::CornerClip corner_clip = Gfx::CornerClip::Outside, bool do_apply = true);
~ScopedCornerRadiusClip();
AK_MAKE_NONMOVABLE(ScopedCornerRadiusClip);
AK_MAKE_NONCOPYABLE(ScopedCornerRadiusClip);
private:
DisplayListRecordingContext& m_context;
bool m_has_radius { false };
bool m_do_apply;
};
}