More filter input implementation, feMerge port, light filters fix
- 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 returnNone
rather than panic though. - Removed the C
get_in()
andget_result()
in favor of the Rust version. - Implemented
set_pixel()
forcairo::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 from reference (new):