summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-04-02 18:41:53 -0400
committerMatthias Clasen <mclasen@redhat.com>2021-04-02 18:41:53 -0400
commit3ff04976e3a096e82ddefe9848e38b53756ffcbd (patch)
tree8c8f336ccec18058cde7f1c39704d4057300816e
parent54ff4fd45ff6026ea4854f567d7077d9f092e7f2 (diff)
downloadgtk+-3ff04976e3a096e82ddefe9848e38b53756ffcbd.tar.gz
ngl: Plug a memory leakfix-downscaled-textures
This was introduced in f9457af128012fd3935a69fdcefb.
-rw-r--r--gsk/ngl/gsknglrenderjob.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gsk/ngl/gsknglrenderjob.c b/gsk/ngl/gsknglrenderjob.c
index 07b61dc151..890983f07d 100644
--- a/gsk/ngl/gsknglrenderjob.c
+++ b/gsk/ngl/gsknglrenderjob.c
@@ -1503,6 +1503,7 @@ gsk_ngl_render_job_visit_clipped_child (GskNglRenderJob *job,
offscreen.bounds = &child->bounds;
offscreen.force_offscreen = TRUE;
+ offscreen.reset_clip = FALSE;
scaled_clip = GSK_ROUNDED_RECT_INIT ((job->offset_x + clip->origin.x) * job->scale_x,
(job->offset_y + clip->origin.y) * job->scale_y,
@@ -1898,6 +1899,7 @@ gsk_ngl_render_job_visit_transform_node (GskNglRenderJob *job,
GskNglRenderOffscreen offscreen = {0};
offscreen.bounds = &child->bounds;
+ offscreen.force_offscreen = FALSE;
offscreen.reset_clip = TRUE;
if (!result_is_axis_aligned (transform, &child->bounds))
@@ -3625,7 +3627,11 @@ gsk_ngl_render_job_visit_node_with_offscreen (GskNglRenderJob *job,
}
if (downscale_x != 1 || downscale_y != 1)
- gsk_ngl_render_job_push_modelview (job, gsk_transform_scale (NULL, downscale_x, downscale_y));
+ {
+ GskTransform *transform = gsk_transform_scale (NULL, downscale_x, downscale_y);
+ gsk_ngl_render_job_push_modelview (job, transform);
+ gsk_transform_unref (transform);
+ }
gsk_ngl_render_job_transform_bounds (job, offscreen->bounds, &viewport);
/* Code above will scale the size with the scale we use in the render ops,