diff options
-rw-r--r-- | src/drawing_ctx.rs | 48 | ||||
-rw-r--r-- | src/gradient.rs | 5 | ||||
-rw-r--r-- | src/layout.rs | 4 | ||||
-rw-r--r-- | src/paint_server.rs | 4 | ||||
-rw-r--r-- | src/pattern.rs | 5 | ||||
-rw-r--r-- | src/shapes.rs | 6 | ||||
-rw-r--r-- | src/text.rs | 6 |
7 files changed, 39 insertions, 39 deletions
diff --git a/src/drawing_ctx.rs b/src/drawing_ctx.rs index 30d5f4f2..81d6d7e5 100644 --- a/src/drawing_ctx.rs +++ b/src/drawing_ctx.rs @@ -716,7 +716,7 @@ impl DrawingCtx { &mut self, stacking_ctx: &StackingContext, acquired_nodes: &mut AcquiredNodes<'_>, - values: &ComputedValues, + _values: &ComputedValues, clipping: bool, clip_rect: Option<Rect>, draw_fn: &mut dyn FnMut( @@ -798,23 +798,25 @@ impl DrawingCtx { let params = temporary_draw_ctx.get_view_params(); - let stroke_paint_source = Rc::new( - filter - .stroke_paint_source - .to_user_space(&bbox.rect, ¶ms, values), - ); - let fill_paint_source = Rc::new( - filter - .fill_paint_source - .to_user_space(&bbox.rect, ¶ms, values), - ); + let stroke_paint_source = + Rc::new(filter.stroke_paint_source.to_user_space( + &bbox.rect, + ¶ms, + &filter.normalize_values, + )); + let fill_paint_source = + Rc::new(filter.fill_paint_source.to_user_space( + &bbox.rect, + ¶ms, + &filter.normalize_values, + )); // Filter functions (like "blend()", not the <filter> element) require // being resolved in userSpaceonUse units, since that is the default // for primitive_units. So, get the corresponding NormalizeParams // here and pass them down. - let user_space_params = NormalizeParams::new( - values, + let user_space_params = NormalizeParams::from_values( + &filter.normalize_values, ¶ms.with_units(CoordUnits::UserSpaceOnUse), ); @@ -1264,23 +1266,15 @@ impl DrawingCtx { clipping: bool, ) -> Result<BoundingBox, RenderingError> { match &layer.kind { - LayerKind::Shape(shape) => self.draw_shape( - shape, - &layer.stacking_ctx, - acquired_nodes, - values, - clipping, - ), + LayerKind::Shape(shape) => { + self.draw_shape(shape, &layer.stacking_ctx, acquired_nodes, values, clipping) + } LayerKind::Text(text) => { self.draw_text(text, &layer.stacking_ctx, acquired_nodes, values, clipping) } - LayerKind::Image(image) => self.draw_image( - image, - &layer.stacking_ctx, - acquired_nodes, - values, - clipping, - ), + LayerKind::Image(image) => { + self.draw_image(image, &layer.stacking_ctx, acquired_nodes, values, clipping) + } } } diff --git a/src/gradient.rs b/src/gradient.rs index 1e2d09c5..04420400 100644 --- a/src/gradient.rs +++ b/src/gradient.rs @@ -15,7 +15,6 @@ use crate::length::*; use crate::node::{CascadedValues, Node, NodeBorrow}; use crate::paint_server::resolve_color; use crate::parsers::{Parse, ParseValue}; -use crate::properties::ComputedValues; use crate::rect::{rect_to_transform, Rect}; use crate::session::Session; use crate::transform::{Transform, TransformAttribute}; @@ -656,12 +655,12 @@ impl ResolvedGradient { &self, object_bbox: &Option<Rect>, current_params: &ViewParams, - values: &ComputedValues, + values: &NormalizeValues, ) -> Option<UserSpaceGradient> { let units = self.units.0; let transform = rect_to_transform(object_bbox, units).ok()?; let view_params = current_params.with_units(units); - let params = NormalizeParams::new(values, &view_params); + let params = NormalizeParams::from_values(values, &view_params); let gradient_transform = self.transform.to_transform(); let transform = transform.pre_transform(&gradient_transform).invert()?; diff --git a/src/layout.rs b/src/layout.rs index d867f837..434ae9a7 100644 --- a/src/layout.rs +++ b/src/layout.rs @@ -155,6 +155,7 @@ pub struct Filter { pub current_color: RGBA, pub stroke_paint_source: Arc<PaintSource>, pub fill_paint_source: Arc<PaintSource>, + pub normalize_values: NormalizeValues, } fn get_filter( @@ -200,11 +201,14 @@ fn get_filter_from_filter_list( session, ); + let normalize_values = NormalizeValues::new(values); + Filter { filter_list, current_color, stroke_paint_source, fill_paint_source, + normalize_values, } } diff --git a/src/paint_server.rs b/src/paint_server.rs index 57abd61f..aa4a1768 100644 --- a/src/paint_server.rs +++ b/src/paint_server.rs @@ -9,10 +9,10 @@ use crate::drawing_ctx::ViewParams; use crate::element::ElementData; use crate::error::{AcquireError, NodeIdError, ParseError, ValueErrorKind}; use crate::gradient::{ResolvedGradient, UserSpaceGradient}; +use crate::length::NormalizeValues; use crate::node::NodeBorrow; use crate::parsers::Parse; use crate::pattern::{ResolvedPattern, UserSpacePattern}; -use crate::properties::ComputedValues; use crate::rect::Rect; use crate::session::Session; use crate::unit_interval::UnitInterval; @@ -244,7 +244,7 @@ impl PaintSource { &self, object_bbox: &Option<Rect>, current_params: &ViewParams, - values: &ComputedValues, + values: &NormalizeValues, ) -> UserSpacePaintSource { match *self { PaintSource::None => UserSpacePaintSource::None, diff --git a/src/pattern.rs b/src/pattern.rs index 09df7af2..922df110 100644 --- a/src/pattern.rs +++ b/src/pattern.rs @@ -12,7 +12,6 @@ use crate::href::{is_href, set_href}; use crate::length::*; use crate::node::{Node, NodeBorrow, WeakNode}; use crate::parsers::ParseValue; -use crate::properties::ComputedValues; use crate::rect::Rect; use crate::session::Session; use crate::transform::{Transform, TransformAttribute}; @@ -355,12 +354,12 @@ impl ResolvedPattern { &self, object_bbox: &Option<Rect>, current_params: &ViewParams, - values: &ComputedValues, + values: &NormalizeValues, ) -> Option<UserSpacePattern> { let node_with_children = self.node_with_children()?; let view_params = current_params.with_units(self.units.0); - let params = NormalizeParams::new(values, &view_params); + let params = NormalizeParams::from_values(values, &view_params); let rect = self.get_rect(¶ms); diff --git a/src/shapes.rs b/src/shapes.rs index 81571f39..73ea2fe4 100644 --- a/src/shapes.rs +++ b/src/shapes.rs @@ -118,8 +118,10 @@ fn draw_basic_shape( let extents = draw_ctx.compute_path_extents(&shape_def.path)?; - let stroke_paint = stroke_paint.to_user_space(&extents, &view_params, values); - let fill_paint = fill_paint.to_user_space(&extents, &view_params, values); + let normalize_values = NormalizeValues::new(values); + + let stroke_paint = stroke_paint.to_user_space(&extents, &view_params, &normalize_values); + let fill_paint = fill_paint.to_user_space(&extents, &view_params, &normalize_values); let shape = Box::new(Shape { path: shape_def.path, diff --git a/src/text.rs b/src/text.rs index 144138e8..e60ade78 100644 --- a/src/text.rs +++ b/src/text.rs @@ -837,15 +837,17 @@ impl ElementTrait for Text { let mut text_spans = Vec::new(); for span in layout_spans { + let normalize_values = NormalizeValues::new(&span.values); + let stroke_paint = span.stroke_paint.to_user_space( &text_bbox.rect, &layout_context.view_params, - &span.values, + &normalize_values, ); let fill_paint = span.fill_paint.to_user_space( &text_bbox.rect, &layout_context.view_params, - &span.values, + &normalize_values, ); let text_span = TextSpan { |