aboutsummaryrefslogtreecommitdiff
path: root/fiv-thumbnail.c
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2022-02-20 19:43:21 +0100
committerPřemysl Eric Janouch <p@janouch.name>2022-02-20 21:14:33 +0100
commit04ec292caf2ec2aa1e6a694996fefa6ec3b5ff6b (patch)
tree98ae92f877537656d49e72d6ecdf0c1efcfd969a /fiv-thumbnail.c
parenta28fbf25bcec03ae8cb8e6b22537883f78541d66 (diff)
downloadfiv-04ec292caf2ec2aa1e6a694996fefa6ec3b5ff6b.tar.gz
fiv-04ec292caf2ec2aa1e6a694996fefa6ec3b5ff6b.tar.xz
fiv-04ec292caf2ec2aa1e6a694996fefa6ec3b5ff6b.zip
Make thumbnailers pass back raw images
Diffstat (limited to 'fiv-thumbnail.c')
-rw-r--r--fiv-thumbnail.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/fiv-thumbnail.c b/fiv-thumbnail.c
index a57d016..328b105 100644
--- a/fiv-thumbnail.c
+++ b/fiv-thumbnail.c
@@ -230,7 +230,8 @@ save_thumbnail(cairo_surface_t *thumbnail, const char *path, GString *thum)
}
gboolean
-fiv_thumbnail_produce(GFile *target, FivThumbnailSize max_size, GError **error)
+fiv_thumbnail_produce(GFile *target, FivThumbnailSize max_size,
+ cairo_surface_t **max_size_surface, GError **error)
{
g_return_val_if_fail(max_size >= FIV_THUMBNAIL_SIZE_MIN &&
max_size <= FIV_THUMBNAIL_SIZE_MAX, FALSE);
@@ -306,8 +307,12 @@ fiv_thumbnail_produce(GFile *target, FivThumbnailSize max_size, GError **error)
gchar *path = g_strdup_printf("%s/wide-%s/%s.webp", thumbnails_dir,
fiv_thumbnail_sizes[use].thumbnail_spec_name, sum);
save_thumbnail(scaled, path, thum);
- cairo_surface_destroy(scaled);
g_free(path);
+
+ if (!*max_size_surface)
+ *max_size_surface = scaled;
+ else
+ cairo_surface_destroy(scaled);
}
g_string_free(thum, TRUE);