From c092e170f2da65f3fe58ee94288e0a346ee79c3f Mon Sep 17 00:00:00 2001 From: Yuxuan Shui Date: Thu, 16 May 2024 11:49:53 +0100 Subject: [PATCH] renderer: reallocated monitor repaint images when root size changes Signed-off-by: Yuxuan Shui --- src/renderer/renderer.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/renderer/renderer.c b/src/renderer/renderer.c index 7923d20f..68130a9c 100644 --- a/src/renderer/renderer.c +++ b/src/renderer/renderer.c @@ -176,12 +176,6 @@ renderer_set_root_size(struct renderer *r, struct backend_base *backend, ivec2 r if (r->back_image) { backend->ops->release_image(backend, r->back_image); } - r->back_image = backend->ops->new_image(backend, r->format, root_size); - if (r->back_image != NULL) { - r->canvas_size = root_size; - return true; - } - r->canvas_size = (ivec2){0, 0}; if (r->monitor_repaint_copy) { for (int i = 0; i < r->max_buffer_age; i++) { backend->ops->release_image(backend, r->monitor_repaint_copy[i]); @@ -189,6 +183,12 @@ renderer_set_root_size(struct renderer *r, struct backend_base *backend, ivec2 r free(r->monitor_repaint_copy); r->monitor_repaint_copy = NULL; } + r->back_image = backend->ops->new_image(backend, r->format, root_size); + if (r->back_image != NULL) { + r->canvas_size = root_size; + return true; + } + r->canvas_size = (ivec2){0, 0}; return false; }