Skip to content

More filter input implementation, feMerge port, light filters fix

Ivan Molodetskikh requested to merge YaLTeR/librsvg:filters-to-rust-3 into master
  • Implemented most of FilterContext::get_input(), the only things left are {Fill,Stroke}Paint, they were missing from the C code as well. I made them return None rather than panic though.
  • Removed the C get_in() and get_result() in favor of the Rust version.
  • Implemented set_pixel() for cairo::ImageSurfaceData which made filters a little bit cleaner. Still not optimal though.
  • Ported feMerge.
  • Fixed a mistake in lighting-related filters introduced in !36 (merged) (whoops).
  • (finally) Silenced the two annoying warnings.

I had to regenerate the feOffset test, I thought it'd get closer to the reference after adding linearization to feMerge, but it seems that the problem is elsewhere. Linearization did change the overlapping areas colors slightly though.

Diff from reference (old):

diff-old

Diff from reference (new):

diff-new

Merge request reports