pub struct SliceMeshRenderData { /* private fields */ }Expand description
GPU resources for rendering a slice mesh (volume cross-section cap).
Uses the same shader as surface meshes but with simplified geometry.
Implementations§
Source§impl SliceMeshRenderData
impl SliceMeshRenderData
Sourcepub fn new(
device: &Device,
bind_group_layout: &BindGroupLayout,
camera_buffer: &Buffer,
vertices: &[Vec3],
normals: &[Vec3],
colors: &[Vec4],
) -> Self
pub fn new( device: &Device, bind_group_layout: &BindGroupLayout, camera_buffer: &Buffer, vertices: &[Vec3], normals: &[Vec3], colors: &[Vec4], ) -> Self
Creates new render data from slice mesh geometry.
§Arguments
device- The wgpu devicebind_group_layout- The bind group layout for surface meshescamera_buffer- The camera uniform buffervertices- Vertex positions (3 per triangle)normals- Vertex normals (3 per triangle)colors- Vertex colors (3 per triangle)
Sourcepub fn update(
&mut self,
device: &Device,
queue: &Queue,
bind_group_layout: &BindGroupLayout,
camera_buffer: &Buffer,
vertices: &[Vec3],
normals: &[Vec3],
colors: &[Vec4],
)
pub fn update( &mut self, device: &Device, queue: &Queue, bind_group_layout: &BindGroupLayout, camera_buffer: &Buffer, vertices: &[Vec3], normals: &[Vec3], colors: &[Vec4], )
Updates the slice mesh geometry.
This recreates the buffers if the geometry size has changed.
Sourcepub fn update_uniforms(&self, queue: &Queue, color: Vec3)
pub fn update_uniforms(&self, queue: &Queue, color: Vec3)
Updates the uniform buffer with new settings.
Sourcepub fn bind_group(&self) -> &BindGroup
pub fn bind_group(&self) -> &BindGroup
Returns the bind group for rendering.
Sourcepub fn index_buffer(&self) -> &Buffer
pub fn index_buffer(&self) -> &Buffer
Returns the index buffer for rendering.
Sourcepub fn num_indices(&self) -> u32
pub fn num_indices(&self) -> u32
Returns the number of indices to draw.
Auto Trait Implementations§
impl Freeze for SliceMeshRenderData
impl !RefUnwindSafe for SliceMeshRenderData
impl Send for SliceMeshRenderData
impl Sync for SliceMeshRenderData
impl Unpin for SliceMeshRenderData
impl UnsafeUnpin for SliceMeshRenderData
impl !UnwindSafe for SliceMeshRenderData
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
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<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