Refactor transform decomposition API with skew support, add 'Decompose Skew' node, and fix stroke transform interpolation (#3973)

* Refactor transform decomposition API with skew support, add Decompose Skew node, and fix stroke transform interpolation

* Fix bug in master with skew changing Area node calculated value

* Code review simplification

* More code review fixes

* Rename cases where "shear" terminology was used in place of "skew"
This commit is contained in:
Keavon Chambers
2026-03-28 20:47:32 -07:00
committed by GitHub
parent e2a142333f
commit a3ea6ab0af
15 changed files with 160 additions and 70 deletions

View File

@@ -22,7 +22,7 @@ pub async fn pixel_preview<'a: 'n>(
let physical_scale = render_params.scale;
let footprint = *ctx.footprint();
let viewport_zoom = footprint.decompose_scale().x * physical_scale;
let viewport_zoom = footprint.scale_magnitudes().x * physical_scale;
if render_params.render_mode != RenderMode::PixelPreview || !matches!(render_params.render_output_type, RenderOutputTypeRequest::Vello) || viewport_zoom <= 1. {
let context = OwnedContextImpl::from(ctx).into_context();

View File

@@ -393,7 +393,7 @@ pub async fn render_output_cache<'a: 'n>(
}
let device_scale = render_params.scale;
let zoom = footprint.decompose_scale().x;
let zoom = footprint.scale_magnitudes().x;
let rotation = footprint.decompose_rotation();
let viewport_origin_offset = footprint.transform.translation;

View File

@@ -108,7 +108,7 @@ async fn create_context<'a: 'n>(
render_output_type,
footprint: Footprint::default(),
scale: render_config.scale,
viewport_zoom: footprint.decompose_scale().x,
viewport_zoom: footprint.scale_magnitudes().x,
..Default::default()
};