mirror of
https://github.com/zebrajr/ladybird.git
synced 2025-12-06 00:19:53 +01:00
LibWeb: Add a constructor for StackingContextTransform
This avoids some code duplication in an upcoming commit.
This commit is contained in:
parent
7dd3fca858
commit
870b7c79c3
|
|
@ -12,6 +12,15 @@
|
|||
|
||||
namespace Web::Painting {
|
||||
|
||||
StackingContextTransform::StackingContextTransform(Gfx::FloatPoint origin, Gfx::FloatMatrix4x4 matrix, float scale)
|
||||
{
|
||||
this->origin = origin.scaled(scale);
|
||||
matrix[0, 3] *= scale;
|
||||
matrix[1, 3] *= scale;
|
||||
matrix[2, 3] *= scale;
|
||||
this->matrix = matrix;
|
||||
}
|
||||
|
||||
DisplayListRecorder::DisplayListRecorder(DisplayList& command_list)
|
||||
: m_display_list(command_list)
|
||||
{
|
||||
|
|
@ -300,10 +309,7 @@ void DisplayListRecorder::push_stacking_context(PushStackingContextParams params
|
|||
.opacity = params.opacity,
|
||||
.compositing_and_blending_operator = params.compositing_and_blending_operator,
|
||||
.isolate = params.isolate,
|
||||
.transform = {
|
||||
.origin = params.transform.origin,
|
||||
.matrix = params.transform.matrix,
|
||||
},
|
||||
.transform = params.transform,
|
||||
.clip_path = params.clip_path });
|
||||
m_clip_frame_stack.append({});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@ namespace Web::Painting {
|
|||
struct StackingContextTransform {
|
||||
Gfx::FloatPoint origin;
|
||||
Gfx::FloatMatrix4x4 matrix;
|
||||
|
||||
StackingContextTransform(Gfx::FloatPoint origin, Gfx::FloatMatrix4x4 matrix, float scale);
|
||||
};
|
||||
|
||||
class WEB_API DisplayListRecorder {
|
||||
|
|
|
|||
|
|
@ -291,14 +291,6 @@ Gfx::AffineTransform StackingContext::affine_transform_matrix() const
|
|||
return Gfx::extract_2d_affine_transform(paintable_box().transform());
|
||||
}
|
||||
|
||||
static Gfx::FloatMatrix4x4 matrix_with_scaled_translation(Gfx::FloatMatrix4x4 matrix, float scale)
|
||||
{
|
||||
matrix[0, 3] *= scale;
|
||||
matrix[1, 3] *= scale;
|
||||
matrix[2, 3] *= scale;
|
||||
return matrix;
|
||||
}
|
||||
|
||||
void StackingContext::paint(DisplayListRecordingContext& context) const
|
||||
{
|
||||
auto opacity = paintable_box().computed_values().opacity();
|
||||
|
|
@ -322,10 +314,7 @@ void StackingContext::paint(DisplayListRecordingContext& context) const
|
|||
.opacity = opacity,
|
||||
.compositing_and_blending_operator = compositing_and_blending_operator,
|
||||
.isolate = paintable_box().computed_values().isolation() == CSS::Isolation::Isolate,
|
||||
.transform = {
|
||||
.origin = transform_origin.scaled(to_device_pixels_scale),
|
||||
.matrix = matrix_with_scaled_translation(transform_matrix, to_device_pixels_scale),
|
||||
},
|
||||
.transform = StackingContextTransform(transform_origin, transform_matrix, to_device_pixels_scale),
|
||||
};
|
||||
|
||||
auto const& computed_values = paintable_box().computed_values();
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user