[][src]Struct glium::vertex::VertexBufferAny

pub struct VertexBufferAny { /* fields omitted */ }

A list of vertices loaded in the graphics card's memory.

Contrary to VertexBuffer, this struct doesn't know about the type of data inside the buffer. Therefore you can't map or read it.

This struct is provided for convenience, so that you can have a Vec<VertexBufferAny>, or return a VertexBufferAny instead of a VertexBuffer<MyPrivateVertexType>.

Implementations

impl VertexBufferAny[src]

pub fn get_elements_size(&self) -> usize[src]

Returns the number of bytes between two consecutive elements in the buffer.

pub fn len(&self) -> usize[src]

Returns the number of elements in the buffer.

pub fn get_bindings(&self) -> &VertexFormat[src]

Returns the associated VertexFormat.

pub unsafe fn into_vertex_buffer<T: Copy>(self) -> VertexBuffer<T>[src]

Turns the vertex buffer into a VertexBuffer without checking the type.

pub fn per_instance(&self) -> Result<PerInstance<'_>, InstancingNotSupported>[src]

Creates a marker that instructs glium to use multiple instances.

Instead of calling surface.draw(&vertex_buffer, ...) you can call surface.draw(vertex_buffer.per_instance(), ...). This will draw one instance of the geometry for each element in this buffer. The attributes are still passed to the vertex shader, but each entry is passed for each different instance.

Methods from Deref<Target = BufferAny>

pub fn as_slice_any(&self) -> BufferAnySlice<'_>[src]

Builds a slice-any containing the whole subbuffer.

pub unsafe fn as_typed_slice_mut<T: ?Sized + Content>(
    &mut self
) -> BufferMutSlice<'_, T>
[src]

Builds a mutable typed slice containing the whole subbuffer, without checking the type.

pub unsafe fn as_typed_slice<T: ?Sized + Content>(&self) -> BufferSlice<'_, T>[src]

Builds a typed slice containing the whole subbuffer, without checking the type.

pub fn get_elements_size(&self) -> usize[src]

Returns the size in bytes of each element in the buffer.

pub fn get_elements_count(&self) -> usize[src]

Returns the number of elements in the buffer.

pub fn get_context(&self) -> &Rc<Context>[src]

Returns the context corresponding to this buffer.

pub fn get_size(&self) -> usize[src]

Returns the number of bytes in this subbuffer.

pub fn invalidate(&self)[src]

Invalidates the content of the buffer. The data becomes undefined.

This operation is a no-op if the backend doesn't support it and for persistent-mapped buffers.

pub unsafe fn read<T>(&self) -> Result<T::Owned, ReadError> where
    T: Content
[src]

UNSTABLE. This function can be removed at any moment without any further notice.

Considers that the buffer is filled with elements of type T and reads them.

Panic

Panics if the size of the buffer is not a multiple of the size of the data. For example, trying to read some (u8, u8, u8, u8)s from a buffer of 7 bytes will panic.

Trait Implementations

impl Debug for VertexBufferAny[src]

impl Deref for VertexBufferAny[src]

type Target = BufferAny

The resulting type after dereferencing.

impl DerefMut for VertexBufferAny[src]

impl<T> From<Buffer<[T]>> for VertexBufferAny where
    T: Vertex + Copy + Send + 'static, 
[src]

impl<T> From<VertexBuffer<T>> for VertexBufferAny where
    T: Copy + Send + 'static, 
[src]

impl<'a> Into<VerticesSource<'a>> for &'a VertexBufferAny[src]

Auto Trait Implementations

impl !RefUnwindSafe for VertexBufferAny

impl !Send for VertexBufferAny

impl !Sync for VertexBufferAny

impl Unpin for VertexBufferAny

impl !UnwindSafe for VertexBufferAny

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.