icon-loader: load SVG icons at max scale of any usable output

- Add a new function to get the maximum scale of all usable outputs
- Pass the maximum output scale through to img_svg_load(), which
  ultimately calls cairo_surface_set_device_scale() before rendering
This commit is contained in:
John Lindgren 2024-10-06 21:24:34 -04:00
parent a5d89a2e4c
commit ddfaae98ad
8 changed files with 52 additions and 12 deletions

View file

@ -15,8 +15,8 @@
#include "labwc.h"
void
img_svg_load(const char *filename, struct lab_data_buffer **buffer,
int size)
img_svg_load(const char *filename, struct lab_data_buffer **buffer, int size,
float scale)
{
if (*buffer) {
wlr_buffer_drop(&(*buffer)->base);
@ -39,7 +39,7 @@ img_svg_load(const char *filename, struct lab_data_buffer **buffer,
return;
}
*buffer = buffer_create_cairo(size, size, 1.0);
*buffer = buffer_create_cairo(size, size, scale);
cairo_surface_t *image = (*buffer)->surface;
cairo_t *cr = (*buffer)->cairo;