Struct tetra::graphics::mesh::GeometryBuilder [−][src]
pub struct GeometryBuilder { /* fields omitted */ }
Expand description
A builder for creating primitive shape geometry, and associated buffers/meshes.
Performance
GeometryBuilder
stores the generated vertex and index data in a pair of Vec
s. This means that creating
a new builder (as well as cloning an existing one) will allocate memory. Consider reusing a GeometryBuilder
if you need to reuse the generated data, or if you need to create new data every frame.
Creating buffers/meshes from the generated geometry is a fairly expensive operation. Try to avoid creating lots of seperate buffers/meshes, and pack multiple shapes into the same buffers/mesh if they don’t move relative to each other.
Examples
The shapes
example demonstrates
how to draw primitive shapes, both through the simplified API on Mesh
, and the more powerful
GeometryBuilder
API.
Implementations
Creates a new empty geometry builder.
pub fn rectangle(
&mut self,
style: ShapeStyle,
rectangle: Rectangle
) -> Result<&mut GeometryBuilder>
pub fn rectangle(
&mut self,
style: ShapeStyle,
rectangle: Rectangle
) -> Result<&mut GeometryBuilder>
Adds a rectangle.
Errors
TetraError::TessellationError
will be returned if the shape could not be turned into vertex data.
pub fn rounded_rectangle(
&mut self,
style: ShapeStyle,
rectangle: Rectangle,
radii: BorderRadii
) -> Result<&mut GeometryBuilder>
pub fn rounded_rectangle(
&mut self,
style: ShapeStyle,
rectangle: Rectangle,
radii: BorderRadii
) -> Result<&mut GeometryBuilder>
Adds a rounded rectangle.
Errors
TetraError::TessellationError
will be returned if the shape could not be turned into vertex data.
pub fn circle(
&mut self,
style: ShapeStyle,
center: Vec2<f32>,
radius: f32
) -> Result<&mut GeometryBuilder>
pub fn circle(
&mut self,
style: ShapeStyle,
center: Vec2<f32>,
radius: f32
) -> Result<&mut GeometryBuilder>
Adds a circle.
Errors
TetraError::TessellationError
will be returned if the shape could not be turned into vertex data.
pub fn ellipse(
&mut self,
style: ShapeStyle,
center: Vec2<f32>,
radii: Vec2<f32>
) -> Result<&mut GeometryBuilder>
pub fn ellipse(
&mut self,
style: ShapeStyle,
center: Vec2<f32>,
radii: Vec2<f32>
) -> Result<&mut GeometryBuilder>
Adds an ellipse.
Errors
TetraError::TessellationError
will be returned if the shape could not be turned into vertex data.
pub fn polygon(
&mut self,
style: ShapeStyle,
points: &[Vec2<f32>]
) -> Result<&mut GeometryBuilder>
pub fn polygon(
&mut self,
style: ShapeStyle,
points: &[Vec2<f32>]
) -> Result<&mut GeometryBuilder>
Adds a polygon.
Errors
TetraError::TessellationError
will be returned if the shape could not be turned into vertex data.
Adds a polyline.
Errors
TetraError::TessellationError
will be returned if the shape could not be turned into vertex data.
Sets the color that will be used for subsequent shapes.
You can also use DrawParams::color
to tint an entire mesh -
this method only needs to be used if you want to display multiple colors in a
single piece of geometry.
Clears the geometry builder’s data.
Returns a view of the generated vertex data.
Returns a view of the generated index data.
Consumes the builder, returning the generated geometry.
Builds a vertex and index buffer from the generated geometry.
This involves uploading the geometry to the GPU, and is a fairly expensive operation.
Errors
TetraError::PlatformError
will be returned if the underlying graphics API encounters an error.
Builds a mesh from the generated geometry.
This involves uploading the geometry to the GPU, and is a fairly expensive operation.
Errors
TetraError::PlatformError
will be returned if the underlying graphics API encounters an error.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for GeometryBuilder
impl Send for GeometryBuilder
impl Sync for GeometryBuilder
impl Unpin for GeometryBuilder
impl UnwindSafe for GeometryBuilder
Blanket Implementations
Mutably borrows from an owned value. Read more