Struct epaint::tessellator::Tessellator
source · pub struct Tessellator {
pixels_per_point: f32,
options: TessellationOptions,
font_tex_size: [usize; 2],
prepared_discs: Vec<PreparedDisc>,
feathering: f32,
clip_rect: Rect,
scratchpad_points: Vec<Pos2>,
scratchpad_path: Path,
}
Expand description
Converts Shape
s into triangles (Mesh
).
For performance reasons it is smart to reuse the same Tessellator
.
See also tessellate_shapes
, a convenient wrapper around Tessellator
.
Fields§
§pixels_per_point: f32
§options: TessellationOptions
§font_tex_size: [usize; 2]
§prepared_discs: Vec<PreparedDisc>
§feathering: f32
size of feathering in points. normally the size of a physical pixel. 0.0 if disabled
clip_rect: Rect
Only used for culling
scratchpad_points: Vec<Pos2>
§scratchpad_path: Path
Implementations§
source§impl Tessellator
impl Tessellator
sourcepub fn new(
pixels_per_point: f32,
options: TessellationOptions,
font_tex_size: [usize; 2],
prepared_discs: Vec<PreparedDisc>,
) -> Self
pub fn new( pixels_per_point: f32, options: TessellationOptions, font_tex_size: [usize; 2], prepared_discs: Vec<PreparedDisc>, ) -> Self
Create a new Tessellator
.
pixels_per_point
: number of physical pixels to each logical pointoptions
: tessellation qualityshapes
: what to tessellatefont_tex_size
: size of the font texture. Required to normalize glyph uv rectangles when tessellating text.prepared_discs
: WhatTextureAtlas::prepared_discs
returns. Can safely be set to an empty vec.
sourcepub fn set_clip_rect(&mut self, clip_rect: Rect)
pub fn set_clip_rect(&mut self, clip_rect: Rect)
Set the Rect
to use for culling.
pub fn round_to_pixel(&self, point: f32) -> f32
sourcepub fn tessellate_clipped_shape(
&mut self,
clipped_shape: ClippedShape,
out_primitives: &mut Vec<ClippedPrimitive>,
)
pub fn tessellate_clipped_shape( &mut self, clipped_shape: ClippedShape, out_primitives: &mut Vec<ClippedPrimitive>, )
Tessellate a clipped shape into a list of primitives.
sourcepub fn tessellate_shape(&mut self, shape: Shape, out: &mut Mesh)
pub fn tessellate_shape(&mut self, shape: Shape, out: &mut Mesh)
Tessellate a single Shape
into a Mesh
.
This call can panic the given shape is of Shape::Vec
or Shape::Callback
.
For that, use Self::tessellate_clipped_shape
instead.
shape
: the shape to tessellate.out
: triangles are appended to this.
sourcepub fn tessellate_circle(&mut self, shape: CircleShape, out: &mut Mesh)
pub fn tessellate_circle(&mut self, shape: CircleShape, out: &mut Mesh)
Tessellate a single CircleShape
into a Mesh
.
shape
: the circle to tessellate.out
: triangles are appended to this.
sourcepub fn tessellate_ellipse(&mut self, shape: EllipseShape, out: &mut Mesh)
pub fn tessellate_ellipse(&mut self, shape: EllipseShape, out: &mut Mesh)
Tessellate a single EllipseShape
into a Mesh
.
shape
: the ellipse to tessellate.out
: triangles are appended to this.
sourcepub fn tessellate_mesh(&mut self, mesh: &Mesh, out: &mut Mesh)
pub fn tessellate_mesh(&mut self, mesh: &Mesh, out: &mut Mesh)
sourcepub fn tessellate_line(
&mut self,
points: [Pos2; 2],
stroke: impl Into<PathStroke>,
out: &mut Mesh,
)
pub fn tessellate_line( &mut self, points: [Pos2; 2], stroke: impl Into<PathStroke>, out: &mut Mesh, )
Tessellate a line segment between the two points with the given stroke into a Mesh
.
shape
: the mesh to tessellate.out
: triangles are appended to this.
sourcepub fn tessellate_path(&mut self, path_shape: &PathShape, out: &mut Mesh)
pub fn tessellate_path(&mut self, path_shape: &PathShape, out: &mut Mesh)
sourcepub fn tessellate_rect(&mut self, rect: &RectShape, out: &mut Mesh)
pub fn tessellate_rect(&mut self, rect: &RectShape, out: &mut Mesh)
sourcepub fn tessellate_text(&mut self, text_shape: &TextShape, out: &mut Mesh)
pub fn tessellate_text(&mut self, text_shape: &TextShape, out: &mut Mesh)
sourcepub fn tessellate_quadratic_bezier(
&mut self,
quadratic_shape: &QuadraticBezierShape,
out: &mut Mesh,
)
pub fn tessellate_quadratic_bezier( &mut self, quadratic_shape: &QuadraticBezierShape, out: &mut Mesh, )
Tessellate a single QuadraticBezierShape
into a Mesh
.
quadratic_shape
: the shape to tessellate.out
: triangles are appended to this.
sourcepub fn tessellate_cubic_bezier(
&mut self,
cubic_shape: &CubicBezierShape,
out: &mut Mesh,
)
pub fn tessellate_cubic_bezier( &mut self, cubic_shape: &CubicBezierShape, out: &mut Mesh, )
Tessellate a single CubicBezierShape
into a Mesh
.
cubic_shape
: the shape to tessellate.out
: triangles are appended to this.
fn tessellate_bezier_complete( &mut self, points: &[Pos2], fill: Color32, closed: bool, stroke: &PathStroke, out: &mut Mesh, )
source§impl Tessellator
impl Tessellator
sourcepub fn tessellate_shapes(
&mut self,
shapes: Vec<ClippedShape>,
) -> Vec<ClippedPrimitive>
pub fn tessellate_shapes( &mut self, shapes: Vec<ClippedShape>, ) -> Vec<ClippedPrimitive>
Turns Shape
:s into sets of triangles.
The given shapes will tessellated in the same order as they are given. They will be batched together by clip rectangle.
pixels_per_point
: number of physical pixels to each logical pointoptions
: tessellation qualityshapes
: what to tessellatefont_tex_size
: size of the font texture. Required to normalize glyph uv rectangles when tessellating text.prepared_discs
: WhatTextureAtlas::prepared_discs
returns. Can safely be set to an empty vec.
The implementation uses a Tessellator
.
§Returns
A list of clip rectangles with matching Mesh
.
fn add_clip_rects( &mut self, clipped_primitives: Vec<ClippedPrimitive>, ) -> Vec<ClippedPrimitive>
Trait Implementations§
source§impl Clone for Tessellator
impl Clone for Tessellator
source§fn clone(&self) -> Tessellator
fn clone(&self) -> Tessellator
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more