pub struct Mesh { /* private fields */ }
Expand description
2D polygon mesh.
All of its creation methods are just shortcuts for doing the same operation
via a MeshBuilder
.
Implementations
sourceimpl Mesh
impl Mesh
sourcepub fn new_line<P>(
ctx: &mut Context,
points: &[P],
width: f32,
color: Color
) -> GameResult<Mesh>where
P: Into<Point2<f32>> + Clone,
pub fn new_line<P>(
ctx: &mut Context,
points: &[P],
width: f32,
color: Color
) -> GameResult<Mesh>where
P: Into<Point2<f32>> + Clone,
Create a new mesh for a line of one or more connected segments.
sourcepub fn new_circle<P>(
ctx: &mut Context,
mode: DrawMode,
point: P,
radius: f32,
tolerance: f32,
color: Color
) -> GameResult<Mesh>where
P: Into<Point2<f32>>,
pub fn new_circle<P>(
ctx: &mut Context,
mode: DrawMode,
point: P,
radius: f32,
tolerance: f32,
color: Color
) -> GameResult<Mesh>where
P: Into<Point2<f32>>,
Create a new mesh for a circle.
sourcepub fn new_ellipse<P>(
ctx: &mut Context,
mode: DrawMode,
point: P,
radius1: f32,
radius2: f32,
tolerance: f32,
color: Color
) -> GameResult<Mesh>where
P: Into<Point2<f32>>,
pub fn new_ellipse<P>(
ctx: &mut Context,
mode: DrawMode,
point: P,
radius1: f32,
radius2: f32,
tolerance: f32,
color: Color
) -> GameResult<Mesh>where
P: Into<Point2<f32>>,
Create a new mesh for an ellipse.
sourcepub fn new_polyline<P>(
ctx: &mut Context,
mode: DrawMode,
points: &[P],
color: Color
) -> GameResult<Mesh>where
P: Into<Point2<f32>> + Clone,
pub fn new_polyline<P>(
ctx: &mut Context,
mode: DrawMode,
points: &[P],
color: Color
) -> GameResult<Mesh>where
P: Into<Point2<f32>> + Clone,
Create a new mesh for series of connected lines.
sourcepub fn new_polygon<P>(
ctx: &mut Context,
mode: DrawMode,
points: &[P],
color: Color
) -> GameResult<Mesh>where
P: Into<Point2<f32>> + Clone,
pub fn new_polygon<P>(
ctx: &mut Context,
mode: DrawMode,
points: &[P],
color: Color
) -> GameResult<Mesh>where
P: Into<Point2<f32>> + Clone,
Create a new mesh for closed polygon. The points given must be in clockwise order, otherwise at best the polygon will not draw.
sourcepub fn new_rectangle(
ctx: &mut Context,
mode: DrawMode,
bounds: Rect,
color: Color
) -> GameResult<Mesh>
pub fn new_rectangle(
ctx: &mut Context,
mode: DrawMode,
bounds: Rect,
color: Color
) -> GameResult<Mesh>
Create a new mesh for a rectangle
sourcepub fn new_rounded_rectangle(
ctx: &mut Context,
mode: DrawMode,
bounds: Rect,
radius: f32,
color: Color
) -> GameResult<Mesh>
pub fn new_rounded_rectangle(
ctx: &mut Context,
mode: DrawMode,
bounds: Rect,
radius: f32,
color: Color
) -> GameResult<Mesh>
Create a new mesh for a rounded rectangle
sourcepub fn from_triangles<P>(
ctx: &mut Context,
triangles: &[P],
color: Color
) -> GameResult<Mesh>where
P: Into<Point2<f32>> + Clone,
pub fn from_triangles<P>(
ctx: &mut Context,
triangles: &[P],
color: Color
) -> GameResult<Mesh>where
P: Into<Point2<f32>> + Clone,
Create a new Mesh
from a raw list of triangle points.
sourcepub fn from_raw<V>(
ctx: &mut Context,
verts: &[V],
indices: &[u32],
texture: Option<Image>
) -> GameResult<Mesh>where
V: Into<Vertex> + Clone,
pub fn from_raw<V>(
ctx: &mut Context,
verts: &[V],
indices: &[u32],
texture: Option<Image>
) -> GameResult<Mesh>where
V: Into<Vertex> + Clone,
Creates a Mesh
from a raw list of triangles defined from points
and indices, with the given UV texture coordinates. You may also
supply an Image
to use as a texture, if you pass None
, it will
just use a pure white texture. The indices should draw the points in
clockwise order, otherwise at best the mesh will not draw.
This is the most primitive mesh-creation method, but allows you full control over the tesselation and texturing. As such it will return an error, panic, or produce incorrect/invalid output (that may later cause drawing to panic), if:
indices
contains a value out of bounds ofverts
verts
is longer thanu32::MAX
elements.indices
do not specify triangles in clockwise order.
sourcepub fn set_vertices(
&mut self,
ctx: &mut Context,
verts: &[Vertex],
indices: &[u32]
)
pub fn set_vertices(
&mut self,
ctx: &mut Context,
verts: &[Vertex],
indices: &[u32]
)
Replaces the vertices in the Mesh
with the given ones. This MAY be faster
than re-creating a Mesh
with Mesh::from_raw()
due to
reusing memory instead of allocating and deallocating it, both on the CPU and
GPU side. There’s too much variation in implementations and drivers to promise
it will actually be faster though. At worst, it will be the same speed.
sourcepub fn get_slice(&self) -> &Slice<Resources>
pub fn get_slice(&self) -> &Slice<Resources>
Returns a slice for this mesh that could be used for manual draw call submission
sourcepub fn get_vertex_buffer(&self) -> Buffer<Resources, Vertex>
pub fn get_vertex_buffer(&self) -> Buffer<Resources, Vertex>
Returns a vertex buffer for this mesh that could be used for manual draw call submission
Trait Implementations
sourceimpl Drawable for Mesh
impl Drawable for Mesh
sourcefn draw(&self, ctx: &mut Context, param: DrawParam) -> GameResult
fn draw(&self, ctx: &mut Context, param: DrawParam) -> GameResult
sourcefn dimensions(&self, _ctx: &mut Context) -> Option<Rect>
fn dimensions(&self, _ctx: &mut Context) -> Option<Rect>
Rect
. Read moresourcefn set_blend_mode(&mut self, mode: Option<BlendMode>)
fn set_blend_mode(&mut self, mode: Option<BlendMode>)
graphics::set_blend_mode()
.
If None
is set, defers to the blend mode set by
graphics::set_blend_mode()
. Read more