diff options
author | Jonas Ã…dahl <jadahl@gmail.com> | 2020-05-13 17:18:50 +0200 |
---|---|---|
committer | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2020-05-26 13:54:28 +0000 |
commit | 9e340287421bea690c9ef9606e7c121c7368e446 (patch) | |
tree | 56daf012ece5c732f7a46ded00371923d67591a9 | |
parent | 258f859e8d29016ef6e178ae4b89f04834b59677 (diff) | |
download | mutter-9e340287421bea690c9ef9606e7c121c7368e446.tar.gz |
clutter/stage-cogl: Only construct damage array if it'll be used
It's only used when we actually swap buffers, which we only do if the
target framebuffer is an onscreen.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1237
-rw-r--r-- | clutter/clutter/cogl/clutter-stage-cogl.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/clutter/clutter/cogl/clutter-stage-cogl.c b/clutter/clutter/cogl/clutter-stage-cogl.c index 8d025d008..042621448 100644 --- a/clutter/clutter/cogl/clutter-stage-cogl.c +++ b/clutter/clutter/cogl/clutter-stage-cogl.c @@ -378,24 +378,24 @@ swap_framebuffer (ClutterStageWindow *stage_window, gboolean swap_with_damage) { CoglFramebuffer *framebuffer = clutter_stage_view_get_onscreen (view); - int *damage, n_rects, i; - - n_rects = cairo_region_num_rectangles (swap_region); - damage = g_newa (int, n_rects * 4); - for (i = 0; i < n_rects; i++) - { - cairo_rectangle_int_t rect; - - cairo_region_get_rectangle (swap_region, i, &rect); - damage[i * 4] = rect.x; - damage[i * 4 + 1] = rect.y; - damage[i * 4 + 2] = rect.width; - damage[i * 4 + 3] = rect.height; - } if (cogl_is_onscreen (framebuffer)) { CoglOnscreen *onscreen = COGL_ONSCREEN (framebuffer); + int *damage, n_rects, i; + + n_rects = cairo_region_num_rectangles (swap_region); + damage = g_newa (int, n_rects * 4); + for (i = 0; i < n_rects; i++) + { + cairo_rectangle_int_t rect; + + cairo_region_get_rectangle (swap_region, i, &rect); + damage[i * 4] = rect.x; + damage[i * 4 + 1] = rect.y; + damage[i * 4 + 2] = rect.width; + damage[i * 4 + 3] = rect.height; + } /* push on the screen */ if (n_rects > 0 && !swap_with_damage) |