pub struct Tess<B, V, I = (), W = (), S = Interleaved> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized, { /* private fields */ }
Expand description
A GPU vertex set.
Vertex set are the only way to represent space data. The dimension you choose is up to you, but
people will typically want to represent objects in 2D or 3D. A vertex is a point in such
space and it carries properties — called “vertex attributes”. Those attributes are
completely free to use. They must, however, be compatible with the Semantics
and Vertex
traits.
Tess
are built with a TessBuilder
and can be sliced to edit their content in-line —
by mapping the GPU memory region and access data via slices.
Implementations
sourceimpl<B, V, I, W, S> Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
impl<B, V, I, W, S> Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
sourcepub fn render_vert_nb(&self) -> usize
pub fn render_vert_nb(&self) -> usize
Default number of vertices to render.
This number represents the number of vertices that will be rendered when not explicitly asked to render a given amount of vertices.
sourcepub fn render_inst_nb(&self) -> usize
pub fn render_inst_nb(&self) -> usize
Default number of vertex instances to render.
This number represents the number of vertex instances that will be rendered when not explicitly asked to render a given amount of instances.
sourcepub fn indices<'a>(
&'a mut self
) -> Result<Indices<'a, B, V, I, W, S>, TessMapError> where
B: IndexSliceBackend<'a, V, I, W, S>,
pub fn indices<'a>(
&'a mut self
) -> Result<Indices<'a, B, V, I, W, S>, TessMapError> where
B: IndexSliceBackend<'a, V, I, W, S>,
Slice the Tess
in order to read its content via usual slices.
This method gives access to the underlying index storage.
sourcepub fn indices_mut<'a>(
&'a mut self
) -> Result<IndicesMut<'a, B, V, I, W, S>, TessMapError> where
B: IndexSliceBackend<'a, V, I, W, S>,
pub fn indices_mut<'a>(
&'a mut self
) -> Result<IndicesMut<'a, B, V, I, W, S>, TessMapError> where
B: IndexSliceBackend<'a, V, I, W, S>,
Slice the Tess
in order to read its content via usual slices.
This method gives access to the underlying index storage.
sourceimpl<B, V, I, W> Tess<B, V, I, W, Interleaved> where
B: ?Sized + TessBackend<V, I, W, Interleaved>,
V: TessVertexData<Interleaved>,
I: TessIndex,
W: TessVertexData<Interleaved>,
impl<B, V, I, W> Tess<B, V, I, W, Interleaved> where
B: ?Sized + TessBackend<V, I, W, Interleaved>,
V: TessVertexData<Interleaved>,
I: TessIndex,
W: TessVertexData<Interleaved>,
sourcepub fn vertices<'a>(
&'a mut self
) -> Result<Vertices<'a, B, V, I, W, Interleaved, V>, TessMapError> where
B: VertexSliceBackend<'a, V, I, W, Interleaved, V>,
pub fn vertices<'a>(
&'a mut self
) -> Result<Vertices<'a, B, V, I, W, Interleaved, V>, TessMapError> where
B: VertexSliceBackend<'a, V, I, W, Interleaved, V>,
Slice the Tess
in order to read its content via usual slices.
This method gives access to the underlying vertex storage.
sourcepub fn vertices_mut<'a>(
&'a mut self
) -> Result<VerticesMut<'a, B, V, I, W, Interleaved, V>, TessMapError> where
B: VertexSliceBackend<'a, V, I, W, Interleaved, V>,
pub fn vertices_mut<'a>(
&'a mut self
) -> Result<VerticesMut<'a, B, V, I, W, Interleaved, V>, TessMapError> where
B: VertexSliceBackend<'a, V, I, W, Interleaved, V>,
Slice the Tess
in order to read its content via usual slices.
This method gives access to the underlying vertex storage.
sourcepub fn instances<'a>(
&'a mut self
) -> Result<Instances<'a, B, V, I, W, Interleaved, W>, TessMapError> where
B: InstanceSliceBackend<'a, V, I, W, Interleaved, W>,
pub fn instances<'a>(
&'a mut self
) -> Result<Instances<'a, B, V, I, W, Interleaved, W>, TessMapError> where
B: InstanceSliceBackend<'a, V, I, W, Interleaved, W>,
Slice the Tess
in order to read its content via usual slices.
This method gives access to the underlying instance storage.
sourcepub fn instances_mut<'a>(
&'a mut self
) -> Result<InstancesMut<'a, B, V, I, W, Interleaved, W>, TessMapError> where
B: InstanceSliceBackend<'a, V, I, W, Interleaved, W>,
pub fn instances_mut<'a>(
&'a mut self
) -> Result<InstancesMut<'a, B, V, I, W, Interleaved, W>, TessMapError> where
B: InstanceSliceBackend<'a, V, I, W, Interleaved, W>,
Slice the Tess
in order to read its content via usual slices.
This method gives access to the underlying instance storage.
sourceimpl<B, V, I, W> Tess<B, V, I, W, Deinterleaved> where
B: ?Sized + TessBackend<V, I, W, Deinterleaved>,
V: TessVertexData<Deinterleaved>,
I: TessIndex,
W: TessVertexData<Deinterleaved>,
impl<B, V, I, W> Tess<B, V, I, W, Deinterleaved> where
B: ?Sized + TessBackend<V, I, W, Deinterleaved>,
V: TessVertexData<Deinterleaved>,
I: TessIndex,
W: TessVertexData<Deinterleaved>,
sourcepub fn vertices<'a, T>(
&'a mut self
) -> Result<Vertices<'a, B, V, I, W, Deinterleaved, T>, TessMapError> where
B: VertexSliceBackend<'a, V, I, W, Deinterleaved, T>,
V: Deinterleave<T>,
pub fn vertices<'a, T>(
&'a mut self
) -> Result<Vertices<'a, B, V, I, W, Deinterleaved, T>, TessMapError> where
B: VertexSliceBackend<'a, V, I, W, Deinterleaved, T>,
V: Deinterleave<T>,
Slice the Tess
in order to read its content via usual slices.
This method gives access to the underlying vertex storage.
sourcepub fn vertices_mut<'a, T>(
&'a mut self
) -> Result<VerticesMut<'a, B, V, I, W, Deinterleaved, T>, TessMapError> where
B: VertexSliceBackend<'a, V, I, W, Deinterleaved, T>,
V: Deinterleave<T>,
pub fn vertices_mut<'a, T>(
&'a mut self
) -> Result<VerticesMut<'a, B, V, I, W, Deinterleaved, T>, TessMapError> where
B: VertexSliceBackend<'a, V, I, W, Deinterleaved, T>,
V: Deinterleave<T>,
Slice the Tess
in order to read its content via usual slices.
This method gives access to the underlying vertex storage.
sourcepub fn instances<'a, T>(
&'a mut self
) -> Result<Instances<'a, B, V, I, W, Deinterleaved, T>, TessMapError> where
B: InstanceSliceBackend<'a, V, I, W, Deinterleaved, T>,
W: Deinterleave<T>,
pub fn instances<'a, T>(
&'a mut self
) -> Result<Instances<'a, B, V, I, W, Deinterleaved, T>, TessMapError> where
B: InstanceSliceBackend<'a, V, I, W, Deinterleaved, T>,
W: Deinterleave<T>,
Slice the Tess
in order to read its content via usual slices.
This method gives access to the underlying instance storage.
sourcepub fn instances_mut<'a, T>(
&'a mut self
) -> Result<InstancesMut<'a, B, V, I, W, Deinterleaved, T>, TessMapError> where
B: InstanceSliceBackend<'a, V, I, W, Deinterleaved, T>,
W: Deinterleave<T>,
pub fn instances_mut<'a, T>(
&'a mut self
) -> Result<InstancesMut<'a, B, V, I, W, Deinterleaved, T>, TessMapError> where
B: InstanceSliceBackend<'a, V, I, W, Deinterleaved, T>,
W: Deinterleave<T>,
Slice the Tess
in order to read its content via usual slices.
This method gives access to the underlying instance storage.
Trait Implementations
sourceimpl<B: Debug, V: Debug, I: Debug, W: Debug, S: Debug> Debug for Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
B::TessRepr: Debug,
impl<B: Debug, V: Debug, I: Debug, W: Debug, S: Debug> Debug for Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
B::TessRepr: Debug,
sourceimpl<'a, B, V, I, W, S> From<&'a Tess<B, V, I, W, S>> for TessView<'a, B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
impl<'a, B, V, I, W, S> From<&'a Tess<B, V, I, W, S>> for TessView<'a, B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
sourceimpl<B, V, I, W, S> View<B, V, I, W, S, Range<usize>> for Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
impl<B, V, I, W, S> View<B, V, I, W, S, Range<usize>> for Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
sourceimpl<B, V, I, W, S> View<B, V, I, W, S, RangeFrom<usize>> for Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
impl<B, V, I, W, S> View<B, V, I, W, S, RangeFrom<usize>> for Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
sourceimpl<B, V, I, W, S> View<B, V, I, W, S, RangeFull> for Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
impl<B, V, I, W, S> View<B, V, I, W, S, RangeFull> for Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
sourceimpl<B, V, I, W, S> View<B, V, I, W, S, RangeInclusive<usize>> for Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
impl<B, V, I, W, S> View<B, V, I, W, S, RangeInclusive<usize>> for Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
sourcefn view(
&self,
range: RangeInclusive<usize>
) -> Result<TessView<'_, B, V, I, W, S>, TessViewError>
fn view(
&self,
range: RangeInclusive<usize>
) -> Result<TessView<'_, B, V, I, W, S>, TessViewError>
Slice a tessellation object and yields a TessView
according to the index range.
sourcefn inst_view(
&self,
range: RangeInclusive<usize>,
inst_nb: usize
) -> Result<TessView<'_, B, V, I, W, S>, TessViewError>
fn inst_view(
&self,
range: RangeInclusive<usize>,
inst_nb: usize
) -> Result<TessView<'_, B, V, I, W, S>, TessViewError>
sourceimpl<B, V, I, W, S> View<B, V, I, W, S, RangeTo<usize>> for Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
impl<B, V, I, W, S> View<B, V, I, W, S, RangeTo<usize>> for Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
sourceimpl<B, V, I, W, S> View<B, V, I, W, S, RangeToInclusive<usize>> for Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
impl<B, V, I, W, S> View<B, V, I, W, S, RangeToInclusive<usize>> for Tess<B, V, I, W, S> where
B: ?Sized + TessBackend<V, I, W, S>,
V: TessVertexData<S>,
I: TessIndex,
W: TessVertexData<S>,
S: ?Sized,
sourcefn view(
&self,
to: RangeToInclusive<usize>
) -> Result<TessView<'_, B, V, I, W, S>, TessViewError>
fn view(
&self,
to: RangeToInclusive<usize>
) -> Result<TessView<'_, B, V, I, W, S>, TessViewError>
Slice a tessellation object and yields a TessView
according to the index range.
sourcefn inst_view(
&self,
to: RangeToInclusive<usize>,
inst_nb: usize
) -> Result<TessView<'_, B, V, I, W, S>, TessViewError>
fn inst_view(
&self,
to: RangeToInclusive<usize>,
inst_nb: usize
) -> Result<TessView<'_, B, V, I, W, S>, TessViewError>
Auto Trait Implementations
impl<B: ?Sized, V, I, W, S: ?Sized> RefUnwindSafe for Tess<B, V, I, W, S> where
S: RefUnwindSafe,
<B as Tess<V, I, W, S>>::TessRepr: RefUnwindSafe,
impl<B, V, I = (), W = (), S = Interleaved> !Send for Tess<B, V, I, W, S>
impl<B, V, I = (), W = (), S = Interleaved> !Sync for Tess<B, V, I, W, S>
impl<B: ?Sized, V, I, W, S: ?Sized> Unpin for Tess<B, V, I, W, S> where
<B as Tess<V, I, W, S>>::TessRepr: Unpin,
impl<B: ?Sized, V, I, W, S: ?Sized> UnwindSafe for Tess<B, V, I, W, S> where
S: RefUnwindSafe,
<B as Tess<V, I, W, S>>::TessRepr: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more