summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2023-05-04 22:30:12 -0400
committerMatthias Clasen <mclasen@redhat.com>2023-05-04 22:30:12 -0400
commitce6569d1a670a9b2ae03d72c2f22cd9019cf38a6 (patch)
tree98ed4adb215183173ede9fda7f64b0402c3a0a46
parent852f46df190bede875b67afeb93a1e3dd37ca622 (diff)
downloadgtk+-ce6569d1a670a9b2ae03d72c2f22cd9019cf38a6.tar.gz
gsk: Avoid some offscreens
We don't have to be too conservative when checking if a rect is contained in a rounded rect, we have a precise api for this.
-rw-r--r--gsk/gl/gskglrenderjob.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/gsk/gl/gskglrenderjob.c b/gsk/gl/gskglrenderjob.c
index 7fa6408fc2..dc1be07d98 100644
--- a/gsk/gl/gskglrenderjob.c
+++ b/gsk/gl/gskglrenderjob.c
@@ -1750,22 +1750,13 @@ gsk_gl_render_job_visit_rounded_clip_node (GskGLRenderJob *job,
if (job->clip->len <= 1)
need_offscreen = FALSE;
- else if (rounded_inner_rect_contains_rect (&job->current_clip->rect, &transformed_clip.bounds))
+ else if (gsk_rounded_rect_contains_rect (&job->current_clip->rect, &transformed_clip.bounds))
need_offscreen = FALSE;
else
need_offscreen = TRUE;
if (!need_offscreen)
{
- /* If the new clip entirely contains the current clip, the intersection is simply
- * the current clip, so we can ignore the new one.
- */
- if (rounded_inner_rect_contains_rect (&transformed_clip, &job->current_clip->rect.bounds))
- {
- gsk_gl_render_job_visit_node (job, child);
- return;
- }
-
gsk_gl_render_job_push_clip (job, &transformed_clip);
gsk_gl_render_job_visit_node (job, child);
gsk_gl_render_job_pop_clip (job);