From f30b354f778f8516197204a92b2dae2b47dddd51 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Sat, 10 Oct 2020 11:39:39 +0200 Subject: [PATCH] [culling] Add debug option to ignore clip rectangles --- egui/src/context.rs | 16 +++++++++++++--- egui/src/paint/tessellator.rs | 9 +++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/egui/src/context.rs b/egui/src/context.rs index c4baae9d..9c4aedc1 100644 --- a/egui/src/context.rs +++ b/egui/src/context.rs @@ -617,11 +617,21 @@ impl Context { impl paint::PaintOptions { pub fn ui(&mut self, ui: &mut Ui) { + let Self { + anti_alias, + aa_size: _, + debug_paint_clip_rects, + debug_ignore_clip_rects, + } = self; use crate::widgets::*; - ui.add(Checkbox::new(&mut self.anti_alias, "Antialias")); + ui.add(Checkbox::new(anti_alias, "Antialias")); ui.add(Checkbox::new( - &mut self.debug_paint_clip_rects, - "Paint Clip Rects (debug)", + debug_paint_clip_rects, + "Paint clip rectangles (debug)", + )); + ui.add(Checkbox::new( + debug_ignore_clip_rects, + "Ignore clip rectangles (debug)", )); } } diff --git a/egui/src/paint/tessellator.rs b/egui/src/paint/tessellator.rs index 701d66c2..68252d3b 100644 --- a/egui/src/paint/tessellator.rs +++ b/egui/src/paint/tessellator.rs @@ -438,6 +438,8 @@ pub struct PaintOptions { pub aa_size: f32, /// Output the clip rectangles to be painted? pub debug_paint_clip_rects: bool, + /// If true, no clipping will be done + pub debug_ignore_clip_rects: bool, } impl Default for PaintOptions { @@ -446,6 +448,7 @@ impl Default for PaintOptions { anti_alias: true, aa_size: 1.0, debug_paint_clip_rects: false, + debug_ignore_clip_rects: false, } } } @@ -829,5 +832,11 @@ pub fn tessellate_paint_commands( } } + if options.debug_ignore_clip_rects { + for (clip_rect, _) in &mut jobs { + *clip_rect = Rect::everything(); + } + } + jobs }