diff options
author | Matthias Clasen <mclasen@redhat.com> | 2023-05-04 22:30:12 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2023-05-04 22:30:12 -0400 |
commit | ce6569d1a670a9b2ae03d72c2f22cd9019cf38a6 (patch) | |
tree | 98ed4adb215183173ede9fda7f64b0402c3a0a46 /gsk/gl | |
parent | 852f46df190bede875b67afeb93a1e3dd37ca622 (diff) | |
download | gtk+-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.
Diffstat (limited to 'gsk/gl')
-rw-r--r-- | gsk/gl/gskglrenderjob.c | 11 |
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); |