Skip to content

sRGB fixes, Rust filter refactorings, filter node Rust port

Ivan Molodetskikh requested to merge YaLTeR/librsvg:filters-to-rust-2 into master
  • Fixed two bugs in sRGB surface {un,}linearization: an invalid assert and operating on premultiplied colors.
  • Ported the filter node to Rust getting rid of some C code.
  • Added a read-only Pixels iterator for image surfaces.
  • Cleaned up the feOffset and feComposite code a little.
  • Added some very basic benchmark infrastructure (uses cargo +nightly bench) and benchmarks for pixel iteration:
test tests::bench_pixels                   ... bench:     410,677 ns/iter (+/- 23,236)
test tests::bench_straightforward          ... bench:     989,213 ns/iter (+/- 17,722)
test tests::bench_straightforward_getpixel ... bench:     335,038 ns/iter (+/- 9,050)
  • Regenerated tests for composite and offset to be able to play with iterators confidently. This means that the reference images contain the half-pixel shift now and should be regenerated once that's fixed.

Merge request reports