[librsvg] Created tag 2.45.6



The signed tag '2.45.6' was created.

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

    Tag for the 2.45.6 release

Changes since the last tag '2.45.5':

Chun-wei Fan (3):
      config.h.win32.in: Include i18n items and cleanup
      Visual Studio builds: Link to cairo-gobject
      Visual Studio builds: Link to gettext-runtime for rsvg-view-3

Federico Mena Quintero (299):
      LengthUnit: reorder enum variants a bit
      Rename LengthUnit::Default to LengthUnit::Px
      Rename LengthUnit::FontEm, FontEx to Em and Ex
      Rename LengthUnit::Inch to LengthUnit::In
      Briefly document each LengthUnit
      LengthUnit: Add Cm, Mm, Pt, Pc per the CSS spec
      length.rs: Add normalization tests for the new LengthUnit types
      Cargo added a comment to Cargo.lock
      RsvgUnit/RsvgLength - New public types
      Svg::get_intrinsic_dimensions(): New method
      rsvg_handle_get_intrinsic_dimensions(): New API
      AspectRatio.compute() - Take a ViewBox instead of an object_width/object_height
      AspectRatio.compute(): take the destination viewport as a cairo::Rectangle
      Don't use deprecated str.trim_left() and trim_right()
      draw_in_viewport(): Take the viewport as a Rectangle, not as separate values
      draw_in_viewport(): represent do_clip/clip_mode with an Option<ClipMode>
      draw_in_viewport(): Remove unneccessary call to set_matrix()
      draw_in_viewport(): Don't take an affine argument; use the DrawingCtx's current affine
      Abstract the "establish a new viewport" construct from SVG into DrawingCtx
      image.rs: Use DrawingCtx.push_new_viewport() instead of doing things by hand
      Post release version bump
      Makefile.am: Call "cargo --locked" so it won't try to update the lockfile inadvertently
      librsvg_crate: New crate; this will be the public Rust API for Rust programs
      Provide a minimal loading API in librsvg_crate
      Handle: don't take &mut self where &self will do
      Add a CairoRenderer and an SvgHandle::get_cairo_renderer() method
      CairoRenderer: add get_dimensions() method
      librsvg_crate/examples/render.rs - Basic rendering example with the Rust API
      librsvg_crate: Add a build.rs to find libcroco via pkg-config
      rsvg_error_quark(): Port to Rust
      Turn most g_warnings into panics, and don't use g_warning() when built as a standalone Rust crate
      Don't use str.trim_left/right, use trim_start/end, bump Rust to 1.30
      Don't use str.trim_left/right, use trim_start/end, bump Rust to 1.30
      LoadOptions: add an unimplemented read() method
      LoadOptions: add a read_file() method
      LoadOptions: add a read_stream() method
      CairoRenderer: add a get_geometry_for_element() method
      CairoRenderer: add a render_element() method
      LoadOptions: remove the base_url option
      First pass at the librsvg crate's documentation
      Add toplevel docs for librsvg_crate
      Merge branch 'rust-api'
      Remove unused imports
      Fix comment
      NodeSvg: extract the operation of getting the viewport to its own function
      NodeSvg: store Option<> for the x/y/w/h viewport, per the spec
      Derive some traits for IntrinsicDimensions
      Merge branch 'master' into dimensions-api
      CairoRenderer: implement get_intrinsic_dimensions()
      Add test for computing the root element's dimensions
      Add test for computing the geometry of a specific element
      Add tests for computing geometries of invalid/nonexistent elements
      Don't recurse into get_dimensions() from get_node_geometry()
      font_size_from_values(): Inline the Em/Ex cases where it would call hand_normalize()
      wip: pass the SVG's ComputedValues to svg.get_size()
      Svg.get_size() - use length.normalize(), not hand_normalize()
      Remove hand_normalize(); it is unused now.  Yay!
      DrawingCtx::new() - take full rectangles for viewport and viewbox
      Handle.get_geometry_for_element() - new fundamental method without the "no size" magic
      Extract function to check the status of a Cairo context
      create_drawing_ctx_for_node() - Take in the viewport and vbox, don't construct them here
      render_element_to_viewport() - new primitive, doesn't quite work yet
      render_element_to_viewport(): Fix the origin of the initial vbox
      DrawingCtx::new() - set up the initial coordinate system per the spec
      Let aspect.viewport_to_viewbox_transform() deal with whether the vbox exists or not
      Replace if Some(...) for and_then()
      Refactor push_new_viewport() a bit
      push_new_viewport(): avoid a temporary variable
      Makefile.am: add the rest of the librsvg_crate sources
      (#417) - Make the "cargo fmt" lint step in CI a manual process
      cargo fmt now, for good measure :)
      Revert "Revert the subclass branch temporarily"
      Require Rust 1.31, per gtk-rs's new release
      Merge branch 'syslang' into 'master'
      Merge branch 'pborelli/librsvg-api'
      render_to_pixbuf_at_size(): Handle a zero size by returning an empty pixbuf
      Handle.get_pixbuf_sub() - return an empty pixbuf if the dimensions are zero
      Merge branch 'zero-sized-callback'
      NodeSvg.draw() - Use a few temporary variables
      librsvg_crate/tests/compare_surfaces.rs: New file, port of test_utils_compare_surfaces() to Rust
      Merge branch 'c_api' into 'master'
      Move the viewport-is-zero-sized check to viewport_to_viewbox_transform()
      Inline draw_in_viewport() in its two only callers
      ClipMode: move to drawing_ctx.rs; remove viewport.rs
      Add test for extracting dimensions of an element when the SVG is fully specified
      Handle.get_node_geometry() - Don't use RsvgDimensionData anymore
      librsvg_crate: geometry_for_element() now takes a viewport
      Handle.close() - Use Svg::load_from_stream instead of lower-level functions
      Handle.close() - use read_stream_sync() instead of duplicating that code
      tests/api.c: Try to simulate how the gdk-pixbuf loader calls librsvg
      librsvg_crate/tests/render_to_viewport.rs - New test for the render_to_viewport() API
      (#433): Use the old logic when measuring geometries
      (#11): Respect the "direction" property for bidirectional text
      Use cairo::Context::tag_begin(); require Cairo 1.16.0
      svg.rs: Destructure the BinaryData from io::acquire_data()
      SharedImageSurface::from_pixbuf(): Call surf.set_mime_data() here, not in the single caller
      Merge branch 'jsparber/librsvg-new_cairo'
      Merge branch 'jsparber/librsvg-remove_clone'
      Loader: remove the unimplemented read() method
      CairoRenderer::render() - Removed; render_element_to_viewport() is the preferred way
      CairoRenderer: Make dimensions() and render_cairo_sub() test functions only
      Makefile.am: oops, remove render.rs
      Merge branch 'alatiera/rust-2018' into 'master'
      Don't use "extern crate" for the xml crate
      Convert a bunch of "extern crate" to "use"
      Add test for render_element_to_viewport() with a viewport not at 0,0
      DrawingCtx: don't use the base offsets at all
      NodeSvg: Use the initial viewport when rendering the toplevel SVG
      rsvg-test: Try a 0 offset for the frame; this makes all tests pass
      DrawingCtx.with_discrete_layer(): Add a few missing map_err to restore the original context
      DrawingCtx.get_offset() - removed, since it always returned (0, 0)
      DrawingCtx::new() - No need to calculate a specific affine now
      DrawingCtx::set_affine_on_cr() - Removed, since it wasn't changing the affine anymore
      wip: test render_to_viewport_with_transform()
      DrawingCtx: Centralize the place where a viewport-sized surface gets created
      DrawingCtx: extract function to get the clipping node
      DrawingCtx: extract function to do the actual clipping to the clip path
      DrawingCtx: clarify the mask vs. no-mask case a bit
      DrawingCtx: Remove the original_cr confusion; it's always the self.cr now
      Don't mutate the DrawingCtx's bbox in the clipping code
      Pass the current bbox as immutable to the masking code
      Convince myself that the bbox in the FilterContext is always the same
      Pass the bbox of the node being filtered to the filters; don't extract it from the DrawingCtx
      Pass the current node_bbox to the filters from the toplevel with_discrete_layer()
      Replace the explicit bbox_stack by an implicit one
      Split with_discrete_layer() into two cases
      Don't get the temporary surface in a roundabout way
      DrawingCtx::is_cairo_context_nested(): Removed; now the offsets are always 0
      DrawingCtx.initial_cr: removed field, it is no longer used
      DrawingCtx.initial_affine - store the initial affine of the Cairo context
      with_discrete_layer(): Restore the state completely if a filter returns an error
      clip_path.rs: Remove superfluous rebinding of the cr
      (#426): Make rsvg_rust_handle_new_from_file() work on Windows and the latest glib
      PathBuilder::to_cairo() - Check the cr.status after completing the path
      (#438): Only create a temporary ImageSurface if we'll need filtering
      Oops, we just need the cairo::prelude for SurfaceExt
      NodeClipPath.to_cairo_context() - reorder code a bit
      NodeClipPath.to_cairo_context() - Simplify the way in which the affine is set
      DrawingCtx.with_saved_matrix() - new function
      clip_path.rs: use DrawingCtx.with_saved_matrix()
      node.rs: use DrawingCtx.with_saved_matrix()
      DrawingCtx.with_saved_cr() - new function
      image.rs: use DrawingCtx.with_saved_cr()
      text.rs: use DrawingCtx.with_saved_cr()
      marker.rs: use DrawingCtx.with_saved_cr()
      with_discrete_layer(): use DrawingCtx.with_saved_cr()
      with_discrete_layer(): avoid a temporary result
      PathBuilder::to_cairo() - Check the cr.status after completing the path
      (#438): Only create a temporary ImageSurface if we'll need filtering
      Oops, we just need the cairo::prelude for SurfaceExt
      NodeClipPath.to_cairo_context(): Don't take an affine; use the cr's
      DrawingCtx::mask_surface(): inline into its only caller
      NodeClipPath::to_cairo_context(): Move the short-circuit if there's no bounding box to the beginning
      Rename variable
      NodeMask::generate_cairo_mask(): Move the short-circuit if there's no bounding box to the beginning
      Clarify just when we are measuring the toplevel SVG
      Use a single conditional to figure out the SVG's viewport/viewBox
      Rename variable
      compute_luminance_to_alpha(): Take a SharedImageSurface, not an ImageSurface
      (#445): Initialize libxml2 so multithreaded tests don't deadlock
      Reset back to the initial_affine before clipping
      Reset back to the initial_affine before masking
      start breakage: restore the offset in rsvg-test
      When using a temporary surface, un-transform by the initial_affine
      clip_to_node() - don't consume the node reference
      New test for clipping to a viewport offsetted by a transformation
      New test for masking to a viewport offsetted by a transformation
      Only use an untransformed affine if the cr_stack is empty
      tests/render_to_viewport.rs: Extract function to do the rendering
      tests/render_to_viewport.rs: Extract function to compare the test results
      Make a librsvg_crate/tests/utils module
      Rename test_file to compare_to_file
      librsvg_crate/tests/primitives.rs - New tests for drawing primitives
      Offset the initial_affine by the original viewport
      opacity_inside_transformed_group(): New test for what caused Adwaita to fail
      Nested temporary surfaces should not be offset with respect to each other
      Print where the test suite is outputting test artifacts
      Extract function to copy a surface to a SharedImageSurface
      Initialize the DrawingCtx's bbox with the initial affine, for good measure
      Don't rebind "affine", since we need the original value
      Compute all of the affines in the same place
      Rename variable
      Compute the initial_inverse only once
      Extract computation of affines to a separate function
      Rename CompositingAffines.temporary to .for_temporary_surface
      Pass the whole CompositingAffines to the masking code
      Pass the intial offsetted affine as part of CompositingAffines
      Oops, use the compositing affine when setting the mask
      Move the decision about the topmost temporary surface to CompositingAffines::new
      Rename "node" to "mask_node" when appropriate
      CompositingAffines.outside_temporary_surface - renamed from .affine
      Obviate the need for reusing a previous result
      Push/pop the cairo_t while drawing a mask's contents
      Fix the affines used in get_snapshot()
      Extract function to compute the size of the temporary surface
      (#295): Ensure the initial viewport fits into temporary surfaces for compositing
      Handle.render_cairo_sub() - implement in terms of render_element_to_viewport()
      librsvg_crate/tests: Broken try at explicitly loading fixtures relative to CARGO_MANIFEST_DIR
      Merge branch 'viewport-with-offsets'
      compare_to_surface(): Print how many pixels were different, and add a tolerance
      render_to_viewport_with_different_size(): Convert to reftest
      render_to_offsetted_viewport(): Convert to reftest
      render_to_viewport_with_transform(): Convert to reftest
      clip_on_transformed_viewport(): Convert to reftest
      mask_on_transformed_viewport(): Convert to reftest
      Remove unused imports
      Makefile.am: Remove unused directory now that we have reftests
      rsvg_handle_get_geometry_for_element(): New public API
      Remove rsvg_handle_get_geometry_sub()
      Add API test for rsvg_handle_get_geometry_for_element()
      Document RsvgLength, RsvgUnit, rsvg_handle_get_intrinsic_dimensions()
      Test for rsvg_handle_get_intrinsic_dimensions() and fix a bug, damnit
      Mention which function replaces get_dimensions_sub/get_position_sub
      Fix annotations for rsvg_handle_get_intrinsic_dimensions
      (#430): Use the dpi value in CairoRenderer
      Handle.get_svg() - encapsulate the RefCell borrowing nonsense
      DrawingCtx::new() - take a node argument
      Handle: add a setter/getter for load_flags so it isn't public
      Condense Handle::new() and ::new_with_flags() into one
      pixbuf_from_file_with_size_mode(): Use Handle directly
      c_api.rs: Use a CHandle that just contains a Handle for the gobject's private data
      Handle.construct_new_from_gfile_sync() - removed; use the stream version everywhere
      librsvg_crate: remove unused functions
      CHandle: move the dpi value from Handle to here
      CHandle: move the load_flags value from Handle to here
      LoadOptions.locale: make this field private and add a getter
      LoadOptions::new() - Don't take a Locale; compute it internally
      Make read_stream_sync() take a LoadOptions, not just a LoadFlags
      get_node_geometry(): Inline into the only caller
      XmlState::parse_from_stream(): make this a method
      XmlState::load_from_possibly_compressed_stream(): turn into a method
      Move the size_callback to CHandle
      Move in_loop to CHandle
      Handle: remove construct_read_stream_sync()
      Move the mutable LoadState into CHandle
      Merge branch 'pborelli/librsvg-handle'
      Handle.get_svg() - removed; we can just access the svg field directly now
      Handle.get_root() - Removed; use self.svg.root() directly
      Merge branch 'normalize_angle-rounding-error' into 'master'
      CHandle: restore the check for only setting the base_url before loading
      Update to cssparser 0.25.5
      Use cssparser.try_parse() instead of r#try
      Remove unused 'mut'
      Merge branch 'cssparser-update'
      Start the css-renaming branch
      Rename CssStyles to CssRules
      Comment what a function does
      Make Selector a type alias for String, to clarify what goes into CssRules
      Node.set_atts() - Extract function to set the transform attribute
      Use AttributeResultExt.attribute() to shorten a function
      Use and_then instead of a match
      Shorten Node.set_atts() with a chain of .and_then()
      Set the presentation attributes in set_atts(), not in set_style()
      Merge branch 'css-renaming'
      Start sketching a ParsedProperty enum
      Replace another .map_err() with .attribute() from AttributeResultExt
      Move the xml:lang and xml:space parsing to parse_presentation_attributes()
      Parse style properties into a ParsedProperty
      parse_property(): Implement in terms of a parse_input() that uses cssparser
      Store an Attribute as the key in DeclarationList, not a String
      Store a ParsedProperty in a Declaration, not a String value
      Remove parse_style_pair(); use set_style_pair_from_parsed_property() directly
      Store the corresponding attribute in the Declaration
      CssRules.add_declaration(): Renamed from define(); take a Declaration
      Move Declaration to properties.rs
      set_style_pair_from_parsed_property() - rename to set_property_from_declaration()
      Use ValueErrorKind::UnknownProperty instead of a funny Result<Option<ParsedProperty>>
      parse_attribute_value_into_parsed_property(): Take a cssparser::Parser, not a string
      DeclParser: Basic implentation of cssparser::DeclarationParser
      parse_style_declarations(): Use a cssparser::DeclarationListParser, woohooo!
      Merge branch 'dont-reparse-style'
      Make DeclarationList a real type, so we can change it later
      Add a DeclarationList.iter() method
      CssRules.lookup() - extract method
      try_apply_by_selector(): move function from CssRules::lookup_apply()
      parse_input() does not need to be public
      Move all the cssparser-related impls to css.rs
      property_defs.rs - Move all the property definitions to here
      Merge branch 'css-refactor'
      Save the value of the "style" attribute, and use it instead of poking at the pbag
      Remove OwnedPropertyBag; it is unused now
      (#403): Apply the CSS and "style" attribute at the end of loading
      Merge branch 'set-styles-after-loading'
      Selector: turn into a more concrete type
      CssRules.get_matches() - Move CSS matching logic to here
      Merge branch 'css-matching-not-in-node'
      Merge branch 'pborelli/librsvg-acquired'
      Merge branch 'malureau/librsvg-get_geometry_for_element'
      Merge branch 'pborelli/librsvg-tree'
      Fix obsolete comment
      node.rs: Move related types closer to each other
      Turn RsvgNode into a newtype on Rc<Node<NodeData>>
      Merge branch 'rsvgnode-newtype'
      (#443): Fix blurry output when enable-background is used without filters
      Merge branch 'nodedisplay' into 'master'
      rsvg-handle.c: Add a missing "Since:" annotation
      Update NEWS
      Use cargo-features=["edition"] to be able to vendor with the 2018 edition
      Revert "Use cargo-features=["edition"] to be able to vendor with the 2018 edition"

Jordan Petridis (5):
      cargo fmt
      CI: Allow failure for rawhide and debian testing
      (440): Port rsvg_internals to Rust 2018
      (446): Accept IsA<InputStream> instead of plain InputStream wherever possible
      crate: add an example that renders an svg to a file

Julian Sparber (2):
      use tag_begin and tag_end of cairo v1.16, fix #435
      remove useless clone

Kornel Lesiński (3):
      Use libxml's structured error callback instead of vararg one
      Use libxml's structured error callback instead of vararg one
      Update dependencies

Marc-André Lureau (1):
      rsvg-handle: take viewport as pointer for get_geometry_for_element()

Olivier Tilloy (1):
      Fix rounding error on i386 (#455).

Paolo Angelo Borelli (1):
      (#425): systemLanguage: do not fail parsing if the env is broken

Paolo Borelli (22):
      systemLanguage: parse the env only once
      (#425): set LANGUAGE for the tests
      (#425) Use the test font map for the dimensions unit test
      crate: rename LoadOptions to Loader
      crate: add CairoRenderer::new
      librsvg_crate: rename get_ from getters
      librsvg_crate: remove bool arguments from loader
      crate: rename LoadOptions to Loader
      crate: add CairoRenderer::new
      librsvg_crate: rename get_ from getters
      librsvg_crate: remove bool arguments from loader
      handle: remove handle_new/free
      handle: impl Default for SizeCallback
      c_api: move C api functions in the c_api module
      c_api: use the From conversion trait for the flags
      Handle: move LoadFlags to c_api
      drawing_ctx: split AcquiredNodes in its own type
      drawing_ctx: use NodeStack for AcquiredNodes
      node: simplify node_new
      tree_utils: rework API
      xml: use last_child() to check for Chars
      node: impl fmt::Display for RsvgNode


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