summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* ci/build-with-coverage.sh: update for clang 16, same as in the main branchlibrsvg-2.56Federico Mena Quintero2023-04-252-6/+13
| | | | From 43051221275a35c5c4f6d6fcaf4f654a03e1e171
* CI: include diffutils/findutils in the container imageFederico Mena Quintero2023-04-251-2/+4
| | | | | | Somehow autotools works without them, but emits warnings. Also, update python3-docutils to its generic name in openSUSE.
* Merge branch 'unify-viewport' into 'main'Marge Bot2023-03-3015-300/+343
|\ | | | | | | | | Remove the current viewport as mutable state from DrawingCtx See merge request GNOME/librsvg!821
| * render_tree.rst: Updates from todayFederico Mena Quintero2023-03-301-5/+16
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/821>
| * Remove the viewport_stack; it is unused nowFederico Mena Quintero2023-03-301-28/+1
| | | | | | | | | | | | The actual viewport stack is now implied as arguments in the call stack. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/821>
| * Pass the current Viewport around as arguments to the drawing functionsFederico Mena Quintero2023-03-309-194/+239
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - All the drawing functions get a new argument of type &Viewport. The idea is that the caller computes a new Viewport and just passes a reference to it. The viewport stack is implied by the call stack, instead of being represented as mutable state in DrawingCtx. This removes DrawingCtx::get_viewport() and ::get_top_viewport(). - Rename Svg::push_viewport() to make_svg_viewport(). - Remove DrawingCtx::get_viewport_for_units(); replace it with Viewport::from_units(). - Remove DrawingCtx::push_coord_units(), which was just being called in generate_cairo_mask() - this takes care of the TODO that mentioned exactly that goal. - Remove DrawingCtx::push_view_box(); replace it with Viewport::with_view_box(). Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/821>
| * Combine ViewParams and Viewport into a single struct ViewportFederico Mena Quintero2023-03-3012-156/+170
|/ | | | | | | | | | | | | | | | | | | | | ViewParams was the original set of values that we used since 2018 for length normalization. Viewport was my attempt to start unifying the "viewport" concept, around 2020 and #298. My current plan is to remove the current viewport from the mutable part of DrawingCtx, and instead pass the current viewport as function arguments to the draw() functions. This commit basically moves the fields and methods from ViewParams into Viewport, and makes everything use Viewport instead of ViewParams. Things are a bit funky because of the viewport_stack field, which is shared via an Option<Weak<>> to the viewport stack in the DrawingCtx - but that will disappear when the current viewport is passed as arguments instead of mutable state. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/821>
* Merge branch 'update-container-image' into 'main'Marge Bot2023-03-307-56/+8
|\ | | | | | | | | CI: bump the container image See merge request GNOME/librsvg!817
| * clippy: Use derivable impls for enumsFederico Mena Quintero2023-03-302-15/+5
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/817>
| * CI: Update the Rust stable version to 1.68.2Federico Mena Quintero2023-03-301-2/+2
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/817>
| * tolerable_difference(): Increase the tolerance to 8Federico Mena Quintero2023-03-301-1/+1
| | | | | | | | | | | | | | This is for #947. I am not sure if Cairo or Pixman changed their rendering of gradients, or what. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/817>
| * Remove the test filter-morphology-from-reference-page.svgFederico Mena Quintero2023-03-303-38/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | This was added during the port of the filters code to Rust, but it is redundant with tests/fixtures/reftests/svg1.1/filters-morph-01-f.svg Also this file produces frequent failures in the test suite whenever the font rendering stack changes even just a bit. The point of the test is to test the feMorphology, not text rendering - so remove it in favor of the other test from the SVG1.1 test suite, which does erosion and dilation filters on paths, not on text. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/817>
| * CI: bump the container imageFederico Mena Quintero2023-03-301-1/+1
|/ | | | | | I want to get an updated font rendering stack for #948. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/817>
* Merge branch 'remove-unused-chrono-wasmbind-feature' into 'main'Marge Bot2023-03-242-4/+2
|\ | | | | | | | | Remove unused chrono wasmbind feature See merge request GNOME/librsvg!819
| * Remove unused chrono wasmbind featureKalev Lember2023-03-242-4/+2
|/ | | | | | | This helps with building librsvg on Fedora where the rust-chrono package is built with the wasmbind feature disabled. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/819>
* Merge branch 'replace-encoding-crate' into 'main'Marge Bot2023-03-233-8/+16
|\ | | | | | | | | xml: Replace unmaitained encoding crate by encoding_rs See merge request GNOME/librsvg!818
| * xml: Replace unmaitained encoding crate by encoding_rsLukáš Tyrychtr2023-03-233-8/+16
|/ | | | | | | | This replaces unmaintained encoding crate by encoding_rs. The indirect reference through lopdf still remains, but this is a start. This fixes the direct part of #949. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/818>
* Merge branch 'layer' into 'main'Marge Bot2023-03-2313-233/+430
|\ | | | | | | | | Proceed with the layer abstraction work from Michael Howell See merge request GNOME/librsvg!816
| * roadmap: better explain the purpose of the render tree, hopefullyFederico Mena Quintero2023-03-232-1/+52
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * Remove ComputedValues argument from with_discrete_layer() and its callersFederico Mena Quintero2023-03-236-23/+6
| | | | | | | | | | | | Yay! Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * Use NormalizeValues throughout for PaintServer::to_user_spaceFederico Mena Quintero2023-03-237-39/+39
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * NormalizeValues: Hacky (?) way to extract what is needed from ComputedValues ↵Federico Mena Quintero2023-03-231-7/+25
| | | | | | | | | | | | | | | | | | | | | | | | for normalization I want to remove the use of ComputedValues from DrawingCtx::with_discrete_layer(), but it is needed for NormalizeParams::new(). So, provide a temporary type NormalizeValues that just extracts the information needed from ComputedValues - in this case, just the font size. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * clippy: remove unnecessary referencesFederico Mena Quintero2023-03-231-3/+3
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * Don't compute a value twiceFederico Mena Quintero2023-03-231-1/+1
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * DrawingCtx::run_filters() - Take a layout::Filter, not a FilterValueListFederico Mena Quintero2023-03-231-9/+8
| | | | | | | | | | | | | | That way we can pick up the current_color from there, thus reducing the number of arguments. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * layout::Filter - resolve the stroke/fill paint sources hereFederico Mena Quintero2023-03-232-32/+44
| | | | | | | | | | | | | | Instead of in with_discrete_layer(). There, we only turn them to user-space coordinates. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * get_filter_from_filter_list(): Extract functionFederico Mena Quintero2023-03-231-4/+12
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * StackingCtx: decide whether there are filters at all right here, not in ↵Federico Mena Quintero2023-03-232-22/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DrawingCtx We used to have struct StackingCtx { filter: Filter } struct Filter { filter: properties::Filter, // other gunk } and there, Filter.filter can be properties::Filter::None or properties::Filter::List(FilterValueList). Resolve this early into an Option<Filter>, like this: struct StackingCtx { filter: Option<Filter> } struct Filter { filter_list: FilterValueList, // other gunk } This way, subsequent code in DrawingCtx doesn't have to tear apart the Filter.filter to see whether there's actually a filter specification there or just "none". Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * layout::Filter: new struct; move some of the filter-related fields hereFederico Mena Quintero2023-03-232-14/+26
| | | | | | | | | | | | | | | | Let's try to avoid passing so many arguments to the functions in drawing_ctx.rs. In the end this will also encapsulate all the gunk needed for resolving filters. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * StackingCtx: extract the current_color here instead of in with_discrete_layerFederico Mena Quintero2023-03-232-5/+8
| | | | | | | | | | | | | | I want to remove the use of ComputedValues in with_discrete_layer; this removes one of the uses. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * Layer::Image - new variant for imagesFederico Mena Quintero2023-03-233-6/+15
| | | | | | | | | | | | | | This moves the information for drawing images into the Layer enum, similar to basic shapes and text elements. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * draw_text: make privateFederico Mena Quintero2023-03-231-1/+1
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * draw_shape: make privateFederico Mena Quintero2023-03-231-1/+1
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * Remove the transform argument from with_discrete_layer's draw_fn callbackFederico Mena Quintero2023-03-233-25/+15
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * draw_shape: use get_transform_for_stacking_ctx() as wellFederico Mena Quintero2023-03-232-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the only other place apart from text.rs that used the transform passed in the draw_fn callback from with_discrete_layer(). It turns out that get_transform_for_stacking_ctx() needs to know whether we are creating a clipping path; in that case, there's no need to look at the stacking context. This is getting convoluted; I kind of want to split the clipping stuff away from the main draw() method. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * New function to get the transform that will be used for the stacking contextFederico Mena Quintero2023-03-232-8/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes @notriddle's MR when rebased on top of the changes to have a ValidTransform instead of just Transform in DrawingCtx. The text code needs to know the actual transform that will be used on the target surface, which could be the temporary surface for compositing an isolated stacking context, or the "normal" surface without isolation. This is the transform that is passed to the draw_fn callback in with_discrete_layer(). Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * render_tree.rst: detail the problem with issue #1Federico Mena Quintero2023-03-231-7/+21
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * render_tree.rst: Describe the render model; add some linksFederico Mena Quintero2023-03-231-10/+24
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * render_tree.rst: Fix markupFederico Mena Quintero2023-03-231-1/+1
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
| * Layer abstractionMichael Howell2023-03-234-102/+164
|/ | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/816>
* Merge branch 'expire-docs-artifacts' into 'main'Marge Bot2023-03-231-1/+3
|\ | | | | | | | | CI: expire all documentation artifacts See merge request GNOME/librsvg!815
| * CI: expire all documentation artifactsFederico Mena Quintero2023-03-221-1/+3
|/ | | | | | | I'm not sure if they were being kept around indefinitely after being deployed to the web site. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/815>
* Merge branch 'prepare-2.56.0' into 'main'2.56.0Marge Bot2023-03-175-94/+155
|\ | | | | | | | | Prepare 2.56.0 See merge request GNOME/librsvg!814
| * NEWS: Copy the release notes from the 2.55 stable seriesFederico Mena Quintero2023-03-171-0/+30
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/814>
| * Update NEWSFederico Mena Quintero2023-03-161-0/+12
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/814>
| * Bump version to 2.56.0Federico Mena Quintero2023-03-164-94/+113
|/ | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/814>
* Merge branch 'alatiera-main-patch-07003' into 'main'Marge Bot2023-03-171-5/+1
|\ | | | | | | | | ci: Merge artifact keys for rsvg-full See merge request GNOME/librsvg!813
| * ci: export .log files for failed msys job as wellJordan Petridis2023-03-161-0/+1
| | | | | | | | Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/813>
| * ci: Merge artifact keys for rsvg-fullJordan Petridis2023-03-161-5/+0
|/ | | | | | gitlab can't deal with multiple artifact keys, and the last one overrides it. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/813>
* Merge branch 'win32-tests'Federico Mena Quintero2023-03-1614-22/+98
|\