It caches SW rendered bitmaps in textures.
The cache is also updated to support data and source separately.
E.g. source is a path to an image, and if that image changes all
related cache entries needs to found and invalidated.
Limitations of SDL rederer:
- not all draw task types are supported
- image transformation is not supported
- some textures (e.g. button matrix texts) are not detected as cached
- images are not cached
- images are supported only from path
* Add dithering to gradients
* Add support for 8x8 matrix for ordered dithering
* Fix CI errors
* Try error diffusion on vertical gradient too
* Vertical error diffusion dithering
* Add support for runtime based dithering mode selection (from none, ordered, error diffusion).
* Reduce the binary size of the code by sharing the dithering table when appropriate.
* Fix CI
* Fix CI
* Review corrections
* Fix union mapping
* Revert bg_color changes
* Fix for keeping bg_color in the API.
* Fix after review
* Add support for setting multiple stops per gradient in the style API
* Let's make an example
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>