Add five new types of diffusion dither and expose zig zag to user
This extends the existing dithering code to add Jarvis-Judice-Ninke, Stucki, Atkinson, Burkes and Sierra error diffused dithers. It also exposes the zig zag (serpentine) choice to the user. Diffusion is tweaked to use fixed point for the error values.
I agree that my contributions are licensed under the Individual Contributor License Agreement V4.0 ("CLA") as stated in https://github.com/igarastudio/cla/blob/main/cla.md
I have signed the CLA following the steps given in https://github.com/igarastudio/cla#signing
Hi there!
One or more of the commit messages in this PR do not match our code submission policy, please check the lint_commits CI job for more details on which commits were flagged and why.
Please do not close this PR and open another, instead modify your commit message(s) with git commit --amend and force push those changes to update this PR.
Spotted that serpentine mode wasn't flipping the matrix as it should have - fixed. We now avoid copying error buffers around when just changing index will do. Checking continueTask per-pixel seemed excessive so I've made that less frequent now - per line.
Spotted a problem where dither settings are being lost when OK is hit... [now fixed]