[librsvg] Created tag 2.43.0



The signed tag '2.43.0' was created.

Tagger: Federico Mena Quintero <federico gnome org>
Date: 1528765675 -0500

    Tag for 2.43.0

Changes since the last tag '2.42.2':

Brion Vibber (2):
      Auto-detect -Bsymbolic, fixes configure on macOS
      Add docs for installing dependencies and build on macOS

Chris Lamb (1):
      Make PDF output reproducible if the SOURCE_DATE_EPOCH envvar is set

Chun-wei Fan (3):
      rsvg-convert.c: Fix build Windows
      Makefile.am: Fix MSVC header "installation"
      win32/rsvg-rust.mak: Fix 'clean' target

Dmitry Kontsevoy (6):
      port RsvgPaintServer to Rust
      support <a> links for PDF output
      aspect_ratio.rs: split AlignMode into (x,y)
      aspect_ratio.rs: use cssparser
      yield the identity transform for empty transform attribute
      aspect_ratio.rs: move (x,y) parsing to AlignXY

Fabrice Fontaine (1):
      Add RUST_TARGET variable

Federico Mena Quintero (616):
      Post-release version bump to 2.42.3
      Rename to code-of-conduct.md per upstream's version
      Update code-of-conduct.md to 1.4.1
      Remove tests/fixtures/reftests/bugs/548494.svg, add a parser test for it
      rsvg-test: Render with a non-identity transformation matrix to test offsetting errors
      Add reftests/bugs/91-nonzero-translation.svg
      Remove RSVG_G_TYPE_INIT - we have required glib 2.52 for some time now
      Start the tests of the whole public API
      Test rsvg_pixbuf_from_file()
      gitlab#198 - Fix rsvg_pixbuf_from_file_with_size_data()
      Test rsvg_pixbuf_from_file_at_zoom()
      Test rsvg_pixbuf_from_file_at_size()
      Refactor the pixbuf tests to have common code
      Use test sizes that we can divide evenly...
      Use g_assert_cmpint() to get better logs
      Test rsvg_pixbuf_from_file_at_max_size()
      Test rsvg_pixbuf_from_file_at_zoom_with_max()
      Test the noop functions rsvg_init(), rsvg_term(), rsvg_cleanup()
      Let us pass a specific filename to get_test_filename()
      Test rsvg_handle_set_dpi() / rsvg_handle_set_dpi_x_y()
      Don't use rsvg_set_default_dpi*() in the utilities nor in the tests
      Deprecate rsvg_set_default_dpi() and rsvg_set_default_dpi_x_y().
      Test rsvg_error_quark()
      Test the auto-generated RSVG_TYPE_ERROR / RSVG_TYPE_HANDLE_FLAGS.
      Include the tests/fixture/api/*.svg in the distributed tests
      Test rsvg_handle_write() / close() / free()
      Test rsvg_handle_new_from_data()
      Test rsvg_handle_new_from_gfile_sync()
      Test rsvg_handle_new_from_stream_sync()
      Test rsvg_handle_read_stream_sync()
      Test rsvg_handle_get_pixbuf()
      Test rsvg_handle_get_pixbuf_sub()
      Test rsvg_handle_new_with_flags() in one of the existing tests
      Test rsvg_handle_get_dimensions_sub() / rsvg_handle_get_position_sub()
      Merge branch 'api-tests'
      Fix rsvg_handle_new_from_file() so that it will load URIs again
      Merge branch 'api-tests'
      Use tar-ustar in AM_INIT_AUTOMAKE to remove filename length limitations
      gitlab#161 - Fix marker angle when a path ends in closepath
      gitlab#192 - Merge branch 'h3xby/librsvg-port-paint-server-to-rust'
      path_builder.rs: Use safe calls to Cairo only
      Remove unused argument from rsvg_parse_style()
      Replace "RsvgHandle *ctx" for "RsvgHandle *handle" everywhere
      How to test performance-related changes
      Merge branch 'hospitality'
      Document SOURCE_DATE_EPOCH in rsvg-convert's man page
      Merge branch 'lamby/librsvg-reproducible-pdf-output'
      Update NEWS
      gitlab#197 - Regenerate reference tests with updated freetype
      configure.ac: Increase freetype2 requirement to 2.9.0
      Remove unused variable
      No need to validate UTF-8 in rsvg_extra_handler_characters()
      Generate a PHF of SVG attribute names
      New function rsvg_attribute_from_name()
      fix: modules in attributes.rs
      build.rs: We don't need the C names after all
      Add rsvg-attributes.h
      rsvg_parse_style_pair(): Use rsvg_attribute_from_name() and a big switch statement
      Sigh, pass C strings properly
      rsvg_parse_style_pairs() - Just iterate over all attributes
      Don't pass an allocated closure to g_hash_table_foreach()
      Rename rsvg_parse_style_pairs() -> rsvg_parse_presentation_attributes()
      rsvg_parse_style_pair(): Distinguish between styles and presentation attributes
      rsvg_state_inherit() - Rename to state_inherit(); make it a static function
      rsvg_state_reinherit() - Rename to state_reinherit(); make it a static function
      Port PropertyBag to Rust
      PropertyBag.iter() method
      Process the d attribute of NodePath with the PHF
      Process points/verts of NodePoly with the PHF
      PropertyBagIter: remove an unused field
      parsers::parse() - New function, to replace property_bag::parse_*()
      NodeLine: parse attributes with the PHF
      NodeRect: parse attributes with the PHF
      NodeCircle: parse attributes with the PHF
      NodeEllipse: parse attibutes with the PHF
      NodeSvg: parse attributes with the PHF
      Replace tabs with spaces
      NodeUse: parse attributes with the PHF
      NodeSymbol: parse attributes with the PHF
      GradientCommon: put the defaults in impl Default, not in resolve_from_defaults()
      Gradient: Move the GradientVariant defaults to functions instead of resolve_from_defaults()
      Gradient: parse attributes with the PHF
      Gradient: don't start set_atts() with default values; start with "not resolved" values.
      Gradient: Fix the distinction between default values and unresolved values
      Pattern: put the defaults in impl Default, not in resolve_from_defaults()
      Pattern: start with an unresolved pattern, instead of a Default one
      Pattern: parse attributes with the PHF
      NodeStop: parse attributes with the PHF
      NodeClipPath: parse attributes using the PHF
      NodeImage: Parse attributes with the PHF
      NodeImage: Parse atttributes with the PHF
      NodeMarker: Parse attributes using the PHF
      property_bag.rs: Remove the parse_or_*() functions.  Yay!
      Remove unused prototypes
      gradient/pattern.rs: Don't export functions that are only used from Rust
      pattern_resolve_fallbacks_and_set_pattern(): Use Rust types
      gradient_resolve_fallbacks_and_set_pattern(): Use Rust types
      rsvg_parse_style_attrs(): Parse attributes with the PHF
      PropertyBag: Add an iter_cstr() that outputs &CStr, instead of &str
      PropertyBag: implement PropertyBagIter in terms of PropertyBagCStrIter
      PropertyBag: Export rsvg_property_bag_iter_*() for use from C
      rsvg_parse_style_attrs(): Use iteration instead of rsvg_property_bag_enumerate()
      rsvg_parse_presentation_attributes(): Use iteration instead of rsvg_property_bag_enumerate()
      rsvg_metadata_handler_start(): Use iteration instead of rsvg_property_bag_enumerate()
      rsvg_property_bag_enumerate(): Removed.
      node_set_atts(): Remove call to rsvg_property_bag_size()
      rsvg_parse_style_attrs(): Don't call rsvg_property_bag_size()
      rsvg_eval_switch_attributes(): Remove the last call to rsvg_property_bag_size()
      rsvg_property_bag_size(): Removed.
      rsvg_start_style(): Parse attributes with the PHF
      PropertyBag: make iteration return (key, attr, value) tuples
      rsvg_parse_style_pair(): Take an RsvgAttribute arg; don't compute it here
      rsvg_property_bag_iter_next(): Return the Attribute as well
      Thoroughly deprecate rsvg_handle_get_metadata().  Returns NULL always.
      rsvg_cond.c: Parse attributes with the PHF
      rsvg-text.c: Parse attributes with the PHF
      node_set_atts(): Register the node in the defs here, not in rsvg_standard_element_start()
      node_set_atts(): Inline register_node_in_defs() here
      node_set_atts(): Parse attributes with the PHF
      filter_primitive_set_x_y_width_height_atts(): Parse attributes with the PHF
      rsvg_filter_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_blend_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_convolve_matrix_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_gaussian_blur_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_offset_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_merge_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_merge_node_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_color_matrix_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_component_transfer_set_atts(): Parse attributes with the PHF
      rsvg_node_component_transfer_function_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_erode_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_composite_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_flood_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_displacement_map_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_turbulence_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_image_set_atts(): Parse attributes with the PHF
      rsvg_node_light_source_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_diffuse_lighting_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_specular_lighting_set_atts(): Parse attributes with the PHF
      rsvg_filter_primitive_tile_set_atts(): Parse attributes with the PHF
      rsvg_processing_instruction(): Parse attributes with the PHF
      rsvg_start_xinclude(): Parse attributes with the PHF
      NodeSvg: Parse delayed attributes with the PHF
      PropertyBag: Remove the lookup() stuff; we only use iteration now.
      PropertyBag: Don't do redundant UTF-8 validation when generating Rust strings
      PropertyBag: Use a Vec, not a HashMap
      gitlab#201 - Overhaul attributes parsing with perfect hashing (merge phf-attributes)
      Merge branch 'alatiera/librsvg-gitlab-ci-extra'
      COMPILING.md: Proofread; list out versions of dependencies
      COMPILING.md: Basic compilation instructions
      Merge branch 'alatiera/librsvg-env-setup'
      cargo-clippy: use f64:from(foo) instead of "foo as f64"
      cargo-clippy: Remove redundant closures in transform.rs
      cargo-clippy: Remove redundant references
      cargo-clippy: Pass references to RsvgBbox, don't move the values
      cargo-clippy: derive(Copy) for Align1D
      render_pango_layout(): Remove unused function
      cargo-clippy: gradient.rs - prettier pattern matching
      cargo-clippy: gradient.rs - remove redundant mask
      cargo-clippy: parse_dash_array() - remove redundant conversion
      cargo-clippy: Remove redundant reference
      cargo-clippy: marker.rs: Copy some enums, don't move them
      cargo-clippy: Remove redundant closures
      cargo-clippy: Remove unnecessary parentheses
      cargo-clippy: path_parser.rs: Collapse else/if blocks
      cargo-clippy: path_builder.rs: Copy some enums instead of moving them
      Move the C part of the library to a librsvg/ subdirectory
      Move everything under rust/ one level up in the hierarchy
      Makefile.am: fix include path in the generated librsvg-enum-types.c
      Fix include paths in tests/
      win32: tweak Rust path in rsvg-rust.mak
      Fix paths in doc/Makefile.am
      Update .gitignore
      configure.ac: Print whether gtk-doc is enabled
      Update Vala deprecation syntax
      Merge branch 'librsvg-cargo-workspace'
      Merge branch 'support-a-links-for-pdf' into 'master'
      Update NEWS
      Merge branch 'adjust-ci-workspace' into 'master'
      Merge branch 'custom-registry' into 'master'
      parses_stroke_dasharray() - Don't use discriminant checks; use PartialEq comparisons
      tests/README.md: Rename rust/ to rsvg_internals/
      gitlab#205 - configure.ac: Check the minimum version of rustc (1.20)
      Merge branch 'check-rustc-version' into 'master'
      gitlab#112 - Apply style attributes for SVG elements
      Merge branch 'delayed-svg-attributes' into 'master'
      rsvg-text: Remove old workaround for zero-sized text
      gitlab#108 - Support font-size:larger and font-size:smaller
      Merge branch 'font-size-relative' into 'master'
      Update NEWS
      Merge branch 'auto-Bsymbolic' into 'master'
      Merge branch 'more-gitlab-ci' into 'master'
      Merge branch 'macos-docs' into 'master'
      Add a LIBRSVG_DEBUG=yes env var for configure; works like --enable-debug
      Bump version to 2.43.0 - experimental, development
      .gitlab-ci.yml: Put LIBRSVG_DEBUG in the variables: section, not before_script
      Merge branch 'ci-merge-variables' into 'master'
      viewport.rs: in tests, use numbers that can be represented exactly as f64
      gitlab#178 - rsvg-test.c: On 32-bit, allow the maximum difference between color channels to be 10
      Sigh, allow MAX_DIFF=1 on x86_64 as before.  I shouldn't computer late at night.
      Use the new amd64 image for the testing stage
      .gitlab-ci.yml: Factor out names of the Docker images, to keep them in a single place
      Merge branch 'alatiera/librsvg-i386-gitlab-ci'
      Add back --enable-gtk-doc --enable-vala
      gitlab#214 - Pass cargo flags to "cargo test"
      Depend on float-cmp so we can get traits for approximate comparisons for floats
      New trait FixedEqCairo with a fixed_eq_cairo() method
      New trait ApproxEqCairo
      path_builder.rs: Use approx_eq_cairo() instead of direct float comparisons
      pattern.rs: Tighten division-by-zero guards; use approx_eq_cairo()
      util.rs: Make DBL_EPSILON private; we'll remove it soon
      RsvgBbox: use approx_eq_cairo() instead of double_equals()
      marker.rs: Use approx_eq_cairo() and float_cmp::ApproxEq instead of double_equals()
      structure.rs: Use approx_eq_cairo() instead of double_equals()
      viewport.rs: Use approx_eq_cairo() instead of double_equals()
      util.rs: Remove DBL_EPSILON and double_equals().  Yay!
      Use ApproxEq again in ApproxEqCairo.  This lets us compare big numbers, too.
      CONTRIBUTING.md: Link to ARCHITECTURE.md
      ARCHITECTURE.md: Document how to compare floating-point numbers
      Merge branch 'float-comparison'
      CI: Do all the distros at the same time
      Remove unexported/unused rsvg_cairo_to_pixbuf()
      Aaaaargh, remove parse_transform.lalrpop - it's been unused for ages
      Merge branch 'pborelli/librsvg-system-lang'
      gitlab#227 - Catch negative values in stroke-dasharray
      gradient.rs: Release acquired nodes if they are not of the type we expect
      NodeUse: release the acquired node as soon as possible; to refactor later
      AcquiredNode: new wrapper over acquire_node()/release_node()
      gradient.rs: Use AcquiredNode
      marker.rs: Don't pass an extra c_node; we can get it from the node
      marker.rs: use AcquiredNode
      paint_server.rs: Use AcquiredNode
      structure.rs: Use AcquiredNode
      pattern.rs: Use AcquiredNode
      drawing_ctx.rs: Removed unused acquire_node()/acquire_node_of_type()/release_node()
      pattern.rs: Remove the FallbackSource stack
      pattern.rs: Handle patterns with no children in a cleaner way
      Prettify the rather horrible while() loop in resolve_pattern()
      gradient.rs: Remove FallbackSource; use acquired nodes instead
      gradient.rs: Refactor the resolution loop similarly to pattern.rs
      Merge branch 'acquired-node'
      AspectRatio.is_slice: new method, so image.rs can avoid peeking into the struct's innards
      AspectRatio: make everything but the toplevel struct private
      aspect_ratio.rs: Return AttributeError from the helper parsers
      aspect_ratio.rs: Simplify parse_align()
      aspect_ratio.rs: Inline the default of Align into AspectRatio::default
      Merge branch 'alatiera/librsvg-aspect-state-machine'
      Appease cargo fmt
      Merge branch '228-empty-transform' into 'master'
      Merge branch 'refactor-aspect-ratio' into 'master'
      Merge branch 'node-iter-children' into 'master'
      Merge branch 'node-iter-children-c' into 'master'
      rsvg_cairo_render_set_affine(): Share this function between drawing and clipping
      rsvg_cairo_render_path_builder(): Set the fill rule in the same place as the clipping code
      rsvg_cairo_render_path_builder(): Move the functions that frob the cr
      Set the fill_rule as late as possible
      Rename rsvg_render_path_builder() and rsvg_render_surface()
      Make the clipping and rendering code use a single rsvg_draw_path_builder()
      rsvg_cairo_render_set_affine_on_cr(): Renamed; have callers pass the cr they wish to modify
      Make set_affine_on_cr() a vfunc on RsvgRender
      drawing_ctx::set_affine_on_cr(): Bind to Rust
      state::get_clip_rule() / state::get_fill_rule() - bind to Rust
      RsvgPathBuilder::to_cairo() - make public
      Factor out function to compute bbox contributions from a path
      rsvg_drawing_ctx_insert_bbox(): Turn this into a vmethod to enable Rustification
      state::get_stroke_width() - Bind to Rust
      drawing_ctx::insert_bbox() - bind to Rust
      Bind to Rust: stroke_opacity, miter_limit, line_cap, line_join
      StrokeDasharray.set_on_cairo(): New function; ported from the C code
      fix: get_shape_rendering_type
      Set the stroke_dasharray on the cairo::Context in the Rust code
      wip: start draw.rs
      Move all the method-like RsvgState functions from drawing_ctx.rs to state.rs
      state::get_stroke_dasharray() / get_dash_offset(): Bind to Rust
      Move rsvg_setup_cr_for_stroke() to Rust
      state::get_affine() - Bind to Rust
      RsvgBbox: new methods new(), insert(), clip()
      RsvgBbox.set_rect() - new method
      state::get_stroke() - Bind to Rust
      rsvg_compute_bbox_from_stroke_and_fill(): Move to Rust
      state::get_fill() / get_fill_opacity() - Bind to Rust
      rsvg_set_source_rsvg_paint_server(): Rename in the Rust code; this will go away soon
      rsvg_draw_path_builder(): Finally move to Rust.  Yay!
      cargo fmt
      Start an rsvg_draw_pango_layout() with a clipping argument
      rsvg_draw_pango_layout(): Fetch the cr from the RsvgDrawingContext, not from the Render
      rsvg_draw_pango_layout(): Only insert the bbox once
      compute_text_bbox(): Move this chunk to its own function
      rsvg_draw_pango_layout(): Always set up the stroke parameters
      rsvg_draw_pango_layout(): Do rotation outside the stroke/fill specifics
      rsvg_draw_pango_layout(): Factor out the save/move/rotate/restore step
      rsvg_draw_pango_layout(): Collapse the if's
      rsvg_draw_pango_layout(): Generalize the drawing and clipping processes
      rsvg_cairo_clip_render_pango_layout(): Just use rsvg_draw_pango_layout() in clipping mode
      state::get_text_rendering_type() - Bind to Rust
      text::gravity_is_vertical() - Make public
      Cargo.toml: Bring in the pangocairo crate
      Clean up the imports a bit
      rsvg_draw_pango_layout(): Move to Rust.  Yay!
      Merge branch 'port-render-to-rust'
      Merge branch 'master' into 'master'
      Merge branch 'cond-rs' into 'master'
      CONTRIBUTING.md: Document the CI infrastructure a bit and cargo fmt
      ARCHITECTURE.md: Start describing our single-pass CSS cascade / rendering process
      ARCHITECTURE.md: Finish documenting the CSS cascade process
      RsvgHandle: Document the preferred way to load SVGs from memory
      Port StrokeLinejoin parsing to Rust
      Start a rust-side State struct.  We'll port RsvgState bit by bit into it.
      state::get_state_rust() - Bind to Rust, to get back our own struct
      StrokeLinejoin::parse: return an AttributeError
      Allow parsing of style pairs from the Rust code
      Basic infrastructure to do style inheritance in Rust
      Maintain the stroke-linejoin property completely in Rust.  Yay!
      Use gbooleans in all the property inheritance functions
      Remove unused repr(C) code
      Helper function to avoid so much conversion ugliness
      Silence the compiler warnings about not having a repr(C) for opaque types
      Remove unused functions
      Move stroke-linecap entirely to Rust.  Yay!
      New make_ident_property!() macro to compress property definitions
      Move the fill-rule property to Rust.  Yay!
      It's fine to derive(Default) for State
      Merge branch 'pborelli/librsvg-text-rs'
      Remove state->personal_affine; it was unused.
      Add rsvg_state_set_affine().  Use that and rsvg_state_get_affine() throughout.
      Go back to a State::new() instead of deriving Default
      Move state->affine to Rust.  Yay!
      Merge branch 'pborelli/librsvg-text-rs'
      Replace state.join/state.has_join with an Option
      Replace state.cap/state.has_cap with an Option
      Replace state.fill_rule/has_fill_rule with an Option
      Replace state.xml_space/state.has_xml_space with an Option
      Comment on how to get the default value for a property
      Replace state.text_anchor/state.has_text_anchor with an Option
      Let rsvg_state_rust_parse_style_pair() propagate errors upstream
      Refactor State.parse_style_pair() now that we can propagate errors upstream
      make_ident_property!(): Implement a trait with an inherits_automatically() method
      Parse "inherit" for properties directly, instead of in the property parsers
      Remove the "inherit" cases from property enum variants
      state.rs: Minimize the size of an unsafe block
      rsvg_state_rust_inherit_run(): Refactor using a helper function
      Sort the lists of properties
      make_ident_property(): Qualify the type names we use so the caller doesn't have to import them
      Derive PartialEq for generated properties, so they can be compared easily
      Add a test for generated properties
      RsvgSaxHandler: this is private; move it to rsvg-base.c
      Split the RsvgHandleState into a LoadState
      Move all the loading state to an RsvgLoad structure
      Return the treebase as a result of rsvg_load_destroy()
      Pass the loading flags to the RsvgLoad
      Factor out the common code to finish the loading process
      Refactor rsvg_load_close() so it doesn't need to poke into the handle
      Remove the title/desc processing
      Rename add_node_to_handle() -> rsvg_add_node_to_handle()
      Move all the loading code to rsvg-load.[ch]
      Make the internal functions not have an rsvg_ prefix
      Pass a 'clipping' argument to all the drawing methods, draw_pango_layout() and draw_path_builder()
      state::get_comp_op() - bind to Rust
      Port draw_surface() to Rust; remove it from RsvgRender.  Yay!
      Short-circuit to rsvg_cairo_get_pango_context() instead of the RsvgRender vtable
      push_discrete_layer() / pop_discrete_layer() - add clipping argument; short-circuit from the RsvgRender
      Rename rsvg_parse_style() -> rsvg_parse_style_attribute_contents()
      Rename the "newtype:" part of the make_property macro to "newtype_from_str:"
      Add back a "newtype:" variant of the make_property! macro, this time without an implicit impl Parse
      Refactor a match on a Result with .map().map_err()
      Inline rsvg_cairo_insert_bbox() into the toplevel rsvg_drawing_ctx_insert_bbox()
      Move add_clipping_rect() to Rust; remove it from the render vtable
      Call rsvg_cairo_get_surface_of_node(); remove it from the vtable
      Remove unused field
      rustfmt
      Merge branch 'pborelli/librsvg-accumulate-baseline'
      Remove unused vmethod
      Inline rsvg_cairo_set_affine_on_cr into rsvg_drawing_ctx_set_affine_on_cr
      Remove RsvgCairoClipRender; just use the current RsvgCairoRender
      Merge remote-tracking branch 'origin/238-build-failure-on-ubuntu-debian'
      Note in Cargo.toml about updating BuildStream/cargo-fetcher/Cargo.lock
      Merge branch 'pborelli/librsvg-state-rs'
      Merge branch 'state-rs' into 'master'
      Merge branch 'state-rs' into 'master'
      CONTRIBUTING.md: fix internal link
      Merge branch 'pborelli/librsvg-state-rs'
      cargo fmt
      paint_server.rs: Test that invalid syntax is caught
      paint_server.rs: Parse "none" for no paint; don't set the paint server on the draw_ctx in that case
      RsvgCairoRender: maintain an ink_bbox and an ink_bb_stack in parallel with the bbox
      drawing_ctx::insert_ink_bbox() - Bind to Rust
      draw.rs: Compute the ink extents of paths as well as the objectBoundingBox extents
      Compute the objectBoundingBox and ink extents of text separately
      Regenerate pservers-grad-13-b-ref.png
      Use the ink_rect in the public get_dimensions()/get_position() API
      Merge branch 'state-rs' into 'master'
      Remove unused RsvgState.styles field - the hash table is in Rust now
      cargo fmt
      Merge branch 'YaLTeR/librsvg-split-filters'
      Makefile.am: Add Rust files that were missing, oops
      Merge branch 'cleanup' into 'master'
      Remove AllowInherit and AllowCurrentColor from color parsing
      Use cssparser::Color instead of our own Color enum
      Move stop_color to Rust
      opacity.rs: Use UnitInterval instead of f64
      Move stop_opacity directly to Rust
      Don't pass a state to rsvg_rust_cnode_new(); create it right there instead
      Remove superfluous "switch" statement
      draw_path_builder: Take in an already-derived RsvgState; don't get it from the draw_ctx
      draw_pango_layout(): Take in an RsvgState; don't obtain it from the draw_ctx
      draw_surface(): Take in an RsvgState; don't obtain it from the draw_ctx
      add_clipping_rect(): Take in an affine; don't get it from the draw_ctx directly
      shapes.rs:render_path_builder() - Take in an already-inherited state
      NodeTrait::draw() - take in an already-inherited RsvgState
      NodeImage::draw(): Use the passed-in state
      Merge branch 'cleanup' into 'master'
      text.rs: Pass around the state from the draw() method
      For now, ignore pservers-grad-18-b.svg
      rsvg_state_new_with_parent(): Don't do reinheritance here; do it in the single caller
      Remove rsvg_state_reinit()
      Move state->parent to Rust.  This is the last field!
      Fix two leaks of states in the filters that need to reconstruct
      Completely move RsvgState to Rust
      Replicate the old rsvg_state_clone() behavior with a little hack
      NodeUse: push discrete layer, *then* push a new state to frob the inner affine
      Merge branch 'stop-color-and-opacity'
      Fix outdated comment
      Merge branch 'pborelli/librsvg-cleanup'
      Run the stage_2 CI for the librsvg-2.42 branch.
      CI: have a distcheck stage to build a tarball
      Merge branch 'update-gtk-rs' into 'master'
      Merge branch 'drawing-ctx' into 'master'
      Merge branch 'rect' into 'master'
      Remove unused include
      rustfmt
      rsvg_parse_style_attrs(): Stop if we find an error during parsing the transform attribute
      rsvg-styles.c: prepare for better error handling
      rsvg_lookup_apply_css_style(): Make public; we'll port the caller to Rust
      util.rs: new function utf8_cstr_opt()
      Attribute::to_str() - New function, hopefully only used for printing errors
      Construct a NodeError from an Attribute, not from the attribute's string name
      parse_style_pair/parse_presentation_attributes: return a full NodeError
      parse_conditional_processing_attributes(): return a full NodeError
      stop.rs: Use the error from state.parse_presentation_attributes() now that we have one
      rsvg-load.c:node_set_atts(): Take in the real element's name instead of the one from the node creator
      rsvg_parse_style_attrs() - Port to Rust.  Yay!
      rsvg_parse_style_attribute_contents() - Port to Rust as State::parse_style_declarations() - yay!
      rsvg_parse_transform() - Remove; it's unused now and all in Rust.
      Inline parse_transform() into its only caller
      Add the Adwaita icon theme as reference tests
      gitlab#263 - Ignore errors when parsing CSS values
      rustfmt
      rustfmt
      Merge branch 'YaLTeR/librsvg-filters-to-rust'
      rustfmt
      Add a SpecifiedValue enum, plus SpecifiedValues and ComputedValues structs
      State::get_computed_values() - function to prepare for using ComputedValues in callers
      Stroke property: default to PaintServer::None
      Node::draw() - Get a ComputedValues, not a State
      Set overflow:hidden by default on elements that establish a new viewport
      A few docs for SpecifiedValue
      SpecifiedValues::to_computed_values() - Also inherit xml_lang and xml_space
      State: store a SpecifiedValues, not each specific field
      pattern.rs: Inline the special behavior of dominate==2
      NodeUse: Inline the special behavior of dominate=1
      rsvg_node_draw_children(): Handle dominate==0 specially here, since it's the only value used now
      rsvg_node_draw_children(): Don't take a "dominate" argument
      Node: Add a values field for ComputedValues and a set/get_computed_values() methods
      Node.cascade() - New function; takes a ComputedValues and propagates it to children
      RsvgHandle: do a cascade before running the rendering process
      Node::draw(): use the cascaded computed values, not the reinherited ones
      rsvg_defs_load_extern(): Cascade the newly-loaded RsvgHandle
      State::to_computed_values() - compute the correct affine
      wip: debug affines in Node::draw()
      Wherever ComputedValues are passed, call the variable "values", not "state"
      Extract the surface stack handling from push/pop_render_stack()
      rsvg_cairo_clip(): Remove obsolete checks
      rustfmt
      Factor out the cr stack from rsvg_drawing_ctx_push/pop_render_stack()
      Make rsvg_drawing_ctx_get_offset() return nested offsets
      rsvg_drawing_ctx_push_render_stack() - Use accessors for the context's width/height
      rsvg_drawing_ctx_push/pop_render_stack() - Don't access draw_ctx->cr directly
      rsvg_drawing_ctx_pop_render_stack() - Don't access draw_ctx->bbox directly
      rsvg-drawing-ctx.c: Make the push/pop_*() functions public
      NodeClipPath.get_units(): New function
      rsvg_cairo_clip() / rsvg_cairo_generate_mask() - make public
      push_render_stack() / pop_render_stack() - Port to Rust
      push/pop_discrete_layer(): Take a ComputedValues argument
      Node::draw() - do not get passed a ComputedValues; obtain it from the node itself
      text.rs: Obtain the computed values from the nodes; don't pass them down
      Mask.generate_cairo_mask() - Get the computed values from the node, not the state
      mask.rs: Iterate all the pixels in each row
      rsvg_cairo_clip() - port to Rust as NodeClipPath::to_cairo_context()
      rsvg_state_is_visible(): Replaced with rsvg_node_values_is_visible()
      Remove unused prototype
      rsvg_state_get_opacity(): Removed; it's unused now.
      diffuse_lighting / specular_lighting: Get the lighting-color property from the computed styles
      flood-color and flood-opacity should not inherit automatically, per the spec
      flood-color / flood-opacity: Get them at rendering time from the node's computed values
      Remove unused prototypes
      Remove unused prototypes
      rsvg_state_reconstruct(): Remove; it's no longer used in the C code
      marker.rs: Don't reconstruct the state; use the computed values instead
      Remove unused rsvg_state_parse_{presentation_attributes,style_declarations}
      Resolve gradient stop-color and stop-opacity at rendering time.
      State::reconstruct() / ::inherit() - Removed; they are unused now.  Yay!
      Fix default for stop-color, per the spec.
      Node: add a "transform" field; we'll keep it here
      Node::set_atts() - Parse the transform attribute here
      Node::draw(): transform the cr with the node's transform
      text.rs: Compose the transform on the cr for the nodes that don't draw themselves
      wip: clip_path.rs: set the cr's transform when we are in objectBoundingBox mode
      wip: debug transforms
      wip: debug transforms
      rsvg-test.c: for now, don't use a non-identity transformation to start the tests
      Don't have the affine in ComputedValues
      Remove unused import
      marker.rs: Get ComputedValues from the caller
      marker.rs: Also set the affine on the inner cr
      Property: add an inherit_from() function.  This will let us derive text properties.
      Merge branch 'filter-get-bounds-to-rust' into 'master'
      make_property!() - Let the caller fully implement Property for at least one of our variants
      FontSize: Implement custom inheritance from the old get_normalized_font_size()
      WIP: RsvgLength::normalize() now takes a ComputedValues, to get the current font size
      Merge remote-tracking branch 'origin/master' into property-inheritance
      FilterContext: store the filter node, and pass down the computed values for length normalization
      pattern.rs: Get the affine from the current cairo context
      Node::draw() / draw_children() - Take a ComputedValues argument
      Make the C accessors for computed values take an RsvgComputedValues, not a node
      text: Use each children's computed values, not our passed-down values
      wip: try to fix clipping
      push_render_stack(): Copy the current cr's matrix when creating a new surface
      mask.rs: Fixed affines, hopefully, and fixed endianness of the luminance computation
      clip_path: No need to push/pop_discrete_layer(); they do nothing when clipping, anyway
      Don't inadvertently clear the clip path during Node::draw()
      mask.rs: Remove unnecessary cr.save()/restore()
      marker: Force display=inline for markers; not quite fixed yet
      Merge branch 'property-inheritance' of gitlab.gnome.org:pborelli/librsvg into property-inheritance
      baseline-shift should not inherit automatically, per the spec
      Remove unused function
      state_pop(): Removed.
      feImage: set the affine on the cr, not the State
      Remove calls to state_push() from nodes.
      rsvg_drawing_ctx_push_bounding_box(): Use the cr's affine, not the state's
      rsvg_drawing_ctx_new(): use the cr's affine as the starting affine, not the state's
      draw_ctx->state - remove this field.  W00t!
      rsvg_node_get_state() - removed
      NodeChars: don't set node.state.cond when creating the node
      Remove calls to state_reinherit_top() which weren't doing anything
      Node::draw() - Add a DrawCascade enum, to use the node's computed values or a new cascade
      state_reinherit_top() - Remove, and also remove resulting unused functions
      pservers-grad-13-b-ref.png - Regenerate; this is working correctly.
      Regenerate tests that failed due to text rendering, after seeing what's going on
      clip_path.rs: Remove debug println
      Pass the filter primitive's computed values to its ::render() method, not the filter context's
      rsvg_drawing_ctx_draw_node_on_surface(): Don't pass the parent's computed values; use the child's 
implicitly
      Use the correct affine for the temporary cairo_t when rendering a node to a surface
      rsvg-test.c: Restore the frame offset; this exposes offsetting bugs
      add_clipping_rect(): Don't take in an affine; assume the cr is already transformed
      rsvg-test: Allow a difference of 2 for each channel on 64-bit
      rsvg_drawing_ctx_draw_node_from_stack(): Factor out functions to preserve the stack
      rsvg_drawing_ctx_draw_node_from_stack(): Port to Rust
      node::CascadedValues - return this from get_computed_values()
      A few docs for CascadedValues
      Rename Node.get_computed_values() to get_cascaded_values() since that's what it produces
      CascadedValues: provide a separate get() function to actually get the &ComputedValues
      Node::draw() - Take a CascadedValues instead of a ComputedValues
      NodeTrait::set_overriden_attributes() - new trait method
      Merge branch 'property-inheritance' into 'property-inheritance'
      State.affine - removed field; it's unused now
      The "display" property shouldn't inherit by default, per the spec
      The "overflow" property shouldn't inherit automatically, per the spec
      The 'text-decoration' property shouldn't inherit by default, per the spec
      The 'unicode-bidi' property shouldn't inherit by default, per the spec
      For all properties, add comments linking to their spec definitions
      NodeUse: don't save/restore the context for non-symbol references
      rsvg_drawing_ctx_draw_node_from_stack(): Don't take a dominate argument; it was always passed as 0
      Replace "dominate" argument with "with_layer: bool"
      Use default implementations of NodeTrait::{draw, get_c_impl}
      masking-path-07-b.svg - Add test; this fails right now
      Merge branch 'saurvs/librsvg-test'
      Merge remote-tracking branch 'origin/master' into property-inheritance
      Preserve the cr's affine for clipping and masking before setting it to the identity matrix
      Rename test to ignore-masking-path-07-b.svg - it fails; will file a bug
      Merge branch 'property-inheritance' - MEGA REFACTORING
      Add back pservers-grad-18-b.svg - it passes again
      shapes::render_path_builder() - push/pop a layer here, not in the drawing function
      NodeMarker::render() - push a discrete layer in a single place
      viewport.rs: push a discrete layer in a single place
      Remove superfluous cast
      shapes::render_path_builder() - Remove duplicated checks for clipping
      Merge branch 'YaLTeR/librsvg-composite-to-rust'
      rsvg_filter_render() - rename to filter_render(); don't export it
      COMPILING.md: Note on how to run `make distcheck` so it will work
      (#276) - Guard against getting a cairo_t in an error state at the toplevel API
      rustfmt
      CONTRIBUTING.md: Note on how to install/update rustfmt
      (#266) - Don't ignore the results of filters with errors in attributes
      Remind people that github will delete their pull requests
      Punctuation fix.
      COMPILING.md: Update to mention the RUST_TARGET environment variable
      Merge branch 'ffontaine/librsvg-master'
      Tell rustfmt to skip the list of node creators
      rustfmt
      Merge branch 'saurvs/librsvg-load_rust'
      Merge branch 'YaLTeR/librsvg-filters-to-rust-2'
      Node: store the element's id, or None.
      rsvg_drawing_ctx_draw_node_from_stack() - Pass an optional node to cascade from
      rsvg_drawing_ctx_draw_node_on_surface() - Take an optional node to cascade from
      (#273) - Pass the node being filtered down to the filter rendering functions
      Merge branch 'YaLTeR/librsvg-filters-to-rust-3'
      rustfmt
      Merge branch 'pborelli/librsvg-draw-ctx'
      rustfmt
      Add tests for (#282), copied/regenerated from librsvg-2.42
      (#241) rsvg_new_node_light_source() - Fix cut&paste error between feDistantLight and feSpotLight
      Add test for the light source type
      Oops, regenerate the last test file with linearization/unlinearization
      Merge branch 'pborelli/librsvg-load'
      rustfmt
      Update NEWS for 2.43.0

Guillaume Gomez (1):
      Add windows tests

GuillaumeGomez (1):
      Fix build errors

Igor Gnatenko (1):
      deps: update gtk-rs stack

Ivan Molodetskikh (74):
      node.rs: Add an iterator over Node's children
      Replace uses of node.foreach_child() with iteration
      node.rs: Fix line being too long
      node.rs: Impl DoubleEndedIterator for Children
      node.rs: Add a test for Children
      node.rs: Add C API for node.children() and tests
      rsvg-private.h: Declare node children iter functions
      rsvg-base.c: Replace rsvg_node_foreach_child() with iterators
      rsvg-text.c: Replace rsvg_node_foreach_child() with iterators
      rsvg-filter.c: Replace rsvg_node_foreach_child() with iterators
      Remove Node::foreach_child()
      Move common filter code to filters/common.{c,h}
      Splits filters into their own files
      Add some initial Rust filter infrastructure
      Add Node::is_in_error()
      Skip rendering filters if they are in error
      Remove the Copy bound from parsers::parse()
      Add the filters::Input enum
      Add Deref from PrimitiveWithInput into Primitive
      Add filters::IRect
      Add FilterContext
      Derive Eq, Ord, PartialOrd for NodeType
      Add PrimitiveWithInput::get_input()
      Add Primitive::get_bounds()
      Add drawing_ctx::get_bbox()
      WIP: impl rsvg_filter_render() in Rust
      WIP: Port RsvgFilterOutput to Rust
      Change how Rust filters are handled
      Implement the Offset filter in Rust
      Clean up some unused warnings
      Add BoundingBox::with_rect()
      Add FilterContext::compute_bounds()
      Port rsvg_filter_primitive_get_bounds() to Rust
      Get rid of offset.c
      Fix rounding in FilterContext::compute_bounds()
      Clean up unsafe in FilterContext::compute_bounds()
      Extend Node::with_impl() to support return types
      Add FilterError
      Change Filter::render() to return a Result<>
      Separate filters::Input into its own file
      Move filter_context.rs to filters/context.rs
      Move filters::IRect to filters::context::IRect
      Move PrimitiveWithInput::get_input() to context
      Add parsers::number()
      Move path_bulder::clamp() to util
      Port the composite filter effect
      Add a Rust sRGB utility module
      Use linear sRGB for feComposite
      Fix srgb::{linearize,unlinearize}_surface()
      Change InputSurfaceDataAccess error to assert
      Get rid of some boilerplate with filter get_input
      Make filters::input a private mod
      Add filters::iterators
      Add crate-type lib to Cargo.toml
      Add some pixel iteration benchmarks
      Remove unneeded pub from ImageSurfaceDataShared
      Fix invalid assert conditions in srgb
      Refactor feOffset to use the new iterator
      Refactor feComposite to use the new iterator
      Add Node::get_impl()
      Port the filter node to Rust
      Regenerate (TEMPORARY) test results
      Add some missing attributes
      Use camelCase filterUnits and primitiveUnits
      Remove extra FilterContext::compute_bounds() arg
      Return correct bounds from get_input()
      Implement SourceAlpha in get_input()
      Stub out FillPaint and StrokePaint
      Fix find_light_source_in_children()
      Implement BackgroundImage and BackgroundAlpha
      Silence two warnings
      Port rsvg_filter_get_{in,result} to Rust
      Impl set_pixel() for cairo::ImageSurfaceData
      Port feMerge to Rust

Jehan (2):
      Makefile: fix VPATH (out-of-tree) builds.
      tests: fix also VPATH build for unit tests.

Jordan Petridis (72):
      Compiling.md: List dependancies for Fedora and Opensuse systems.
      Fix the end of the line escaping.
      List incoplete dependancies for ubuntu/debian.
      Fix ubuntu dependancies.
      Compiling: Add note about building on ubunut and using rustup.
      gitlab-ci: Build test case for fedora.
      Compiling.md: Add Debian testing dependancies.
      gitlab-ci: Add manual build triggers for rustfmt and clippy.
      gitlab-ci: Add a debian testing build test and a disable template for ubuntu 18.04.
      gitlab-ci: Fix debian build.
      gitlab-ci: Fix clippy build.
      Initial switch to a cargo workspace.
      Gitlab-ci: Adjust to the cargo workspace.
      gitlab-ci: Test using a custom OCI registry and image to run tests.
      Use custom OCI images instead of building a new enviroment from scratch each time.
      Add a test for fedora rawhide.
      Try caching rust artifacts.
      Try to cache the cargo Home.
      Gitlab-ci: Set a cache policy that isolates each job.
      gitlab-ci: Add a build in release mode.
      Enable ccache.
      Fix indentation.
      Gitlab-CI: Add a state to test cross-distro builds in release mode.
      Gitlab-CI: Fix typo.
      Gitlab-CI: Remove template duplication.
      Gitlab-ci: Add an i386 build.
      Gitlab-ci: Merge debug and release builds so they can be run in parallel.
      Gitlab-ci: Add i386 release build.
      Copy .rustmft.toml config from rsvg-bench.
      Rustfmt.
      gitlab-ci: Enable rustfmt.
      Update rustfmt.
      Normalize comments.
      rustfmt: Skip the attribute slice in build.rs
      rustfmt: Change the layout of 'import' and 'use'.
      Rustfmt: Switch 'indent_style' to 'Block'.
      Merge branch 'rustfmt' into 'master'
      clippy: remove 'needless_borrow's
      clippy: remove 'redundant_closure'
      rustfmt
      gitlab-ci: Do not share the case between branches.
      gitlab-ci: Create .cargo_cache if it does not exist.
      Merge remote-tracking branch 'gnome/master' into i386-gitlab-ci
      gitlab-ci: Fix the cargo cache.
      Fix typo.
      aspect_ratio: Remove unnecessary enum.
      aspect_ratio: Fix failling test.
      gradient.rs: Refactor a for-loop to iterator combinators chain.
      Bump the minimum rustc version to 1.21
      Merge branch 'grad' into 'master'
      Cargo fmt
      aspect_ratio: Remove AlignXY struct.
      aspect_ratio: Move impl Defualts under the struct declarations.
      aspect_ratio: make tests more compact.
      aspect_ratio: Use seperate types for Aling X and Align Y.
      gitlabci: switch clippy image to a prebuilt one.
      gitlabci: remove dead codde/template.
      gitlabci: fix rawhide typo.
      gitlabci: Limit cross-distos tests to only the GNOME/librsvg repo.
      gitlabci: Document the different stage setup.
      gitlabci: demote fedora_release to stgage 3.
      cond.rs: Use AsciiExt to maintain backwards compatibility.
      gitlabci: Add mutliple rustc builds.
      gitlabci: Add ubuntu builds.
      Update COMPILING.md. Fixes #213.
      gitlabci: Add test for rustc v1.25
      gitlabci: Remove most amd64 release builds.
      CI: Change the images urls to point to the GNOME registry.
      CI: Fix rustfmt job
      Fix rustfmt config.
      node.rs: Match on reference.
      CI: Run rustc tests before cross-distro tests.

Juraj Fiala (1):
      emit_markers_for_path_builder(): Consider closepath at ending markers

Massimo (1):
      gitlab#91 - Initialize the intial Cairo context in the clipping context correctly

Paolo Borelli (182):
      Simplify code in rsvg_cond_parse_system_language
      Use g_get_language_names in rsvg_cond_parse_system_language
      Compare with all the system languages
      Add reftest for system language attribute
      Implement svg switch conditions in rust
      structure: small cleanup, use Iterator::find instead of for
      text: move measure_text to rust
      text: port text_render function to rust
      text: push space normalization into text.rs
      state: move xml_space to the rust state
      chars: move text measure and render to chars.rs
      text: remove unused param from tref functions
      text: rename and export two functions
      property macros: enums shoould have a C representation
      state: add text_anchor getter
      tate: move TextAnchor to rust
      text: move tref node implementation to text.rs
      text: move tspan node implementation to rust
      text: move text node implementation to rust
      state: remove the now unused C version of get_text_anchor
      text: fold chars.rs back into text.rs
      text: port recursive measure to rust
      text: port recursive render to rust
      macro: remove the repr C
      macros: extend macro to deal with properties that are not enums
      state: port the xmlang property to rust using the new macro
      state: port letter spacing to rust
      length: remove recently add FromStr impl
      state: move get_normalized_font_size to rust.rs
      state: add baseline shift getter
      state: add get_baseline_shift to rust state
      state: make state_parent available in rust
      text: port accumulate_baseline_shift to rust
      state: move baseline shift property to rust
      state: check if name is null before using it for lookup
      state: move font size to rust
      state: parent() can take const
      drawing_ctx: port normalize_font_size to rust
      drawing_ctx: move get_accumulated_baseline_shift
      state: move reconstruct method to rust
      drawing_ctx: move reinherit_top to rust
      state: fix constness of get_affine
      state: factor out state_new_with_parent
      state: rename rsvg_current_state
      drawing_ctx: add a setter for the current state
      text: mix mutability of the draw_ctx
      drawing_ctx: move push/pop state to rust
      drawing_ctx: remove get_current_state_affine
      drawing_ctx: remove get_current_state_affine
      state: move TextDecoration to rust
      state: move overflow to rust
      state: move font family to rust
      state: move font style to rust
      state: move font variant to rust
      state: move unicode bidi to rust
      state: remove comment decoration
      state: rename cap and join properties
      parsers: port parsing url to rust using cssparser
      rsvg-load: include string.h
      path-builder: remove C export and .h file
      pathbuilder: rename RsvgPathBuilder to PathBuilder
      state: port StrokeMiterlimit to rust
      state: move CompOp to rust
      state: add C getters for some of the fields
      state: port enable-background to rust
      property_macros: factor out duplicated code
      state: move text-rendering to rust
      state: move shape-rendering to rust
      state: move stroke width to rust
      state: move clip rule to rust
      state: move display and visibility to rust
      state: move font stretch to rust
      state: move font weight to rust
      Remove rsvg-css.c
      state: cleanup markers code
      cairo-draw: remove leftover declaration
      headers: move node_new declarations to structure.h
      state: move to rust the table of styles marked "important"
      iri: split out an IRI enum and module
      state: move markers to rust
      property_macros: add variant for types implementing Parse
      state: move filter property to rust
      state: move mask property to rust
      state: move clip path property to rust
      iri: remove unused C parse url
      state: move stroke-dashoffset to rust
      tests: add a reftest for negative dashoffset
      length: rename StrokeDasharray in Dasharray
      state: move dash array to rust
      state: important_styles does not need to be pub
      state: sort properties
      state: fix visibility check
      state: move direction and writing mode to rust
      state: move the parsing of conditional processing attributes
      state: move conditional processing to rust
      state: add getters for flood properties
      state: move flood opacity to rust
      state: move fill opacity to rust
      state: move stroke opacity to rust
      state: simply store the Attribute in the important_styles hashset
      state: port flood color to rust
      filter: use getter for the current color
      paint_server: drop unused C function
      iri: use cssparser to parse 'none'
      paint_server: refactor to not use the Color struct
      state: refactor get_current_color to return cssparser::RGBA
      state: move color property to rust
      paint_server: fix fallback parsing error handling
      paint_server: cleanup parsing
      unitinterval: add a small struct that holds [0-1] values
      state: use UnitInterval for the opacity properties
      state: move opacity property to rust
      state: port fill and stroke to rust
      Fix build, we do not have chars.rs anymore
      Pass down opacity as a unit interval reference
      rsvg-css.h: remove leftover prototype
      Fold cairo-clip.c into cairo-draw.c
      Remove RsvgRender base struct
      DrawingCtx: remove unused pango_context field
      gradient: move SpreadMethod parsing
      paint_server: rename some methods
      draw_ctx: avoid useless C wrapper
      filters: remove unused include
      draw: do not assign variable twice
      drawing ctx: move the bbox to the ctx
      drawin_ctx: move also the bounding box stacks
      drawing_ctx: move the test font map
      state: handle "important" styles in rust
      state: move parse_presentation_attributes to rust
      rsvg-css.h: remove leftovers
      drawing_ctx: add a getter for the offset
      draw: move set_affine_on_cr to rust
      drawing_ctx: move offset fields out of render
      drawing_ctx: move width and height fields out of render
      drawing_ctx: completely remove the render object
      drawing_ctx: move all drawing_ctx code in cairo-draw.[ch]
      Rename rsvg-cairo-draw to rsvg-drawing-ctx
      drawing_ctx: rename some methods to use the right naming convention
      drawing_ctx: move push/pop_discrete_layer to rust
      Fix unused variable warning
      float_eq_cairo: add an assertion macro
      bbox: factor out a rect module
      drawing_ctx: move initial rect calculation to rust
      rect: handle intersection of disjoint rects
      rect: add an utility to get the closest outer rect
      rect: refactor to a RectangleExt trait
      bbox: do not access fields directly
      bbox: make RsvgBbox opaque
      drawing_ctx: add a getter for the bbox
      draw: factor out an utility to get bbox from extents
      bbox: use Option<> for the rect
      rect: make is_empty handle approximations
      bbox: rename the rust struct to BoundingBox
      bbox: store ink_box in the BoundingBox struct
      drawing_ctx: add getters for width and height
      handle: move the test font map in the handle
      drawing_ctx: move get_pango_context to rust
      drawing_ctx: fix getters
      drawing_ctx: pass in the cairo surface
      drawing_ctx: port rsvg_drawing_ctx_insert_bbox to rust
      mask: port generating the cairo mask to rust
      drawing_ctx: avoid some conversions
      styles: remove unused typedef
      draw: remove unused C function
      property_macros: pass in a parse_impl param
      property_macros: use ":" also for the impl params
      property: rename method to 'compute' and take all values as param
      state: reimplement baseline_shift
      state: we do not need to store parent anymore
      state: remove C getter/setter for affine
      node: avoid use of get_state_mut when overriding properties
      handle: cleanup get_position_sub
      drawing_ctx: do not pass in the handle
      drawing_ctx: move get_acquired_node_of_type to rust
      drawing_ctx: remove unused field
      drawing_ctx: move useful comment to rust
      structure: avoid C roundtrip
      load: move all node creation function in load.rs
      load: macroify node creation functions
      node: add and use get_id method
      load: rework handling of class attribute
      defs: move node registration to rust

Saurav Sachidanand (3):
      Make Node store pointers to immediate siblings, first/last child
      Write test artifacts to tests/output
      Move node creation to Rust

Tim Lunn (1):
      Fix build failure on Ubuntu/Debian

Timm Bäder (1):
      gitlab#143 - rsvg-filter: Optimize get_/put_column


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]