mirror of
https://github.com/emilk/egui.git
synced 2026-08-30 21:30:03 -04:00
Refactor: turn ClippedShape from struct-enum to a normal struct (#3225)
This commit is contained in:
@@ -90,13 +90,14 @@ impl Default for TextureId {
|
||||
///
|
||||
/// Everything is using logical points.
|
||||
#[derive(Clone, Debug, PartialEq)]
|
||||
pub struct ClippedShape(
|
||||
pub struct ClippedShape {
|
||||
/// Clip / scissor rectangle.
|
||||
/// Only show the part of the [`Shape`] that falls within this.
|
||||
pub emath::Rect,
|
||||
pub clip_rect: emath::Rect,
|
||||
|
||||
/// The shape
|
||||
pub Shape,
|
||||
);
|
||||
pub shape: Shape,
|
||||
}
|
||||
|
||||
/// A [`Mesh`] or [`PaintCallback`] within a clip rectangle.
|
||||
///
|
||||
|
||||
@@ -183,7 +183,7 @@ impl PaintStats {
|
||||
stats.shape_vec.element_size = ElementSize::Heterogenous; // nicer display later
|
||||
|
||||
stats.shapes = AllocInfo::from_slice(shapes);
|
||||
for ClippedShape(_, shape) in shapes {
|
||||
for ClippedShape { shape, .. } in shapes {
|
||||
stats.add(shape);
|
||||
}
|
||||
stats
|
||||
|
||||
@@ -1036,7 +1036,10 @@ impl Tessellator {
|
||||
clipped_shape: ClippedShape,
|
||||
out_primitives: &mut Vec<ClippedPrimitive>,
|
||||
) {
|
||||
let ClippedShape(new_clip_rect, new_shape) = clipped_shape;
|
||||
let ClippedShape {
|
||||
clip_rect: new_clip_rect,
|
||||
shape: new_shape,
|
||||
} = clipped_shape;
|
||||
|
||||
if !new_clip_rect.is_positive() {
|
||||
return; // skip empty clip rectangles
|
||||
@@ -1044,7 +1047,13 @@ impl Tessellator {
|
||||
|
||||
if let Shape::Vec(shapes) = new_shape {
|
||||
for shape in shapes {
|
||||
self.tessellate_clipped_shape(ClippedShape(new_clip_rect, shape), out_primitives);
|
||||
self.tessellate_clipped_shape(
|
||||
ClippedShape {
|
||||
clip_rect: new_clip_rect,
|
||||
shape,
|
||||
},
|
||||
out_primitives,
|
||||
);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -1641,7 +1650,10 @@ fn test_tessellator() {
|
||||
shapes.push(Shape::mesh(mesh));
|
||||
|
||||
let shape = Shape::Vec(shapes);
|
||||
let clipped_shapes = vec![ClippedShape(rect, shape)];
|
||||
let clipped_shapes = vec![ClippedShape {
|
||||
clip_rect: rect,
|
||||
shape,
|
||||
}];
|
||||
|
||||
let font_tex_size = [1024, 1024]; // unused
|
||||
let prepared_discs = vec![]; // unused
|
||||
|
||||
Reference in New Issue
Block a user