WIP: Port the composite filter effect to Rust (and some other things)
This MR moves some filter-related things around and ports composite to Rust.
As part of porting composite I seem to have fixed a bug in the arithmetic operator where the output would be way too dark (especially visible on a black background). The original code operates integer coefficients and some divisions were probably not quite correct. The new code operates floats.
I'd like some feedback on the refactoring changes (FilterResult
, FilterOutput
and other things) — the names and the general structure. Also if I did the <number>
parsing correctly (the parsers::number()
method).
There's an issue with the master branch right now (not this MR): there's some strange bleeding half pixel upwards on the composite test, and it's small enough to not get caught by the test suite (see the current output). Can't regenerate a proper reference image due to that. WIP until that's resolved (#273 (closed)).
Previous (C code) output before the aforementioned issue on the master branch:
Current output:
Reference output: