At the moment, when an SVG file is loaded, it is rendered as an image at the document size; this rendered image is then up- or downscaled onto the buffer for the destination output. It would be better to render the SVG file directly onto the output's wl_buffer.
Note: At the moment, librsvg does not support image-rendering: pixelated, which could be useful as a way to display pixel art with nearest-neighbor upscaling. However, with tools like https://github.com/tinychameleon/blocky, it is still possible to emulate the nearest neighbor scaling method.
At the moment, when an SVG file is loaded, it is rendered as an image at the document size; this rendered image is then up- or downscaled onto the buffer for the destination output. It would be better to render the SVG file directly onto the output's wl_buffer.
Example branch to show one way to implement this: https://github.com/mstoeckl/swaybg/tree/svg-direct
Note: At the moment, librsvg does not support
image-rendering: pixelated
, which could be useful as a way to display pixel art with nearest-neighbor upscaling. However, with tools like https://github.com/tinychameleon/blocky, it is still possible to emulate the nearest neighbor scaling method.