pub struct GeometryBatch { /* private fields */ }Expand description
CPU-side geometry batch flushed each frame through the UI render pipeline.
Implementations§
Source§impl GeometryBatch
impl GeometryBatch
Sourcepub fn new(
device: &Device,
pixel_format: TextureFormat,
size: (i32, i32),
) -> Self
pub fn new( device: &Device, pixel_format: TextureFormat, size: (i32, i32), ) -> Self
Creates a geometry batch with pre-allocated vertex capacity and a UI render pipeline.
Sourcepub fn resize_vertices(&mut self, size: (i32, i32))
pub fn resize_vertices(&mut self, size: (i32, i32))
Updates the viewport size stored in all pre-allocated vertices.
Sourcepub fn flush(&mut self, render_pass: &mut RenderPass<'_>, queue: &Queue)
pub fn flush(&mut self, render_pass: &mut RenderPass<'_>, queue: &Queue)
Uploads accumulated vertices to the GPU and draws them.
Resets the vertex count after drawing. No-op if no vertices were added.
Sourcepub fn triangle(&mut self, positions: &[UIPosition; 3], color: UIColor)
pub fn triangle(&mut self, positions: &[UIPosition; 3], color: UIColor)
Adds a filled triangle (3 vertices).
Sourcepub fn quad(&mut self, positions: &[UIPosition; 4], color: UIColor)
pub fn quad(&mut self, positions: &[UIPosition; 4], color: UIColor)
Adds a filled quad as two triangles (6 vertices).
Sourcepub fn line(
&mut self,
position: UIPosition,
length: f32,
angle: f32,
thickness: f32,
color: UIColor,
)
pub fn line( &mut self, position: UIPosition, length: f32, angle: f32, thickness: f32, color: UIColor, )
Adds a line segment as a thin quad rotated by angle degrees.
Sourcepub fn arc(
&mut self,
origin: UIPosition,
radius: f32,
degree_begin: f32,
degree_end: f32,
thickness: f32,
color: UIColor,
)
pub fn arc( &mut self, origin: UIPosition, radius: f32, degree_begin: f32, degree_end: f32, thickness: f32, color: UIColor, )
Adds an arc outline approximated by line segments.
Sourcepub fn filled_arc(
&mut self,
origin: UIPosition,
radius: f32,
degree_begin: f32,
degree_end: f32,
color: UIColor,
)
pub fn filled_arc( &mut self, origin: UIPosition, radius: f32, degree_begin: f32, degree_end: f32, color: UIColor, )
Adds a filled arc (pie slice) approximated by triangles.
Sourcepub fn rectangle(
&mut self,
position: UIPosition,
size: UIPosition,
thickness: UIBorderThickness,
color: UIColor,
radii: UICornerRadii,
)
pub fn rectangle( &mut self, position: UIPosition, size: UIPosition, thickness: UIBorderThickness, color: UIColor, radii: UICornerRadii, )
Adds a rounded rectangle border outline.
Sourcepub fn filled_rectangle(
&mut self,
position: UIPosition,
size: UIPosition,
color: UIColor,
radii: UICornerRadii,
)
pub fn filled_rectangle( &mut self, position: UIPosition, size: UIPosition, color: UIColor, radii: UICornerRadii, )
Adds a filled rounded rectangle.
Auto Trait Implementations§
impl !RefUnwindSafe for GeometryBatch
impl !UnwindSafe for GeometryBatch
impl Freeze for GeometryBatch
impl Send for GeometryBatch
impl Sync for GeometryBatch
impl Unpin for GeometryBatch
impl UnsafeUnpin for GeometryBatch
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<H, TailTarget, Source, Idx> Embed<RenderTList<H, TailTarget>, There<Idx>> for Sourcewhere
TailTarget: IsRenderList,
Source: Embed<TailTarget, Idx>,
impl<H, TailTarget, Source, Idx> Embed<RenderTList<H, TailTarget>, There<Idx>> for Sourcewhere
TailTarget: IsRenderList,
Source: Embed<TailTarget, Idx>,
Source§fn embed(self) -> RenderTList<H, TailTarget>
fn embed(self) -> RenderTList<H, TailTarget>
Converts
self into Target.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more