Struct luminance::buffer::Buffer [−][src]
pub struct Buffer<T> { /* fields omitted */ }
A Buffer
is a GPU region you can picture as an array. It has a static size and cannot be
resized. The size is expressed in number of elements lying in the buffer – not in bytes.
Methods
impl<T> Buffer<T>
[src]
impl<T> Buffer<T>
pub fn new<C>(ctx: &mut C, len: usize) -> Buffer<T> where
C: GraphicsContext,
[src]
pub fn new<C>(ctx: &mut C, len: usize) -> Buffer<T> where
C: GraphicsContext,
Create a new Buffer
with a given number of elements.
pub fn len(&self) -> usize
[src]
pub fn len(&self) -> usize
Get the length of the buffer.
pub fn at(&self, i: usize) -> Option<T> where
T: Copy,
[src]
pub fn at(&self, i: usize) -> Option<T> where
T: Copy,
Retrieve an element from the Buffer
.
Checks boundaries.
pub fn whole(&self) -> Vec<T> where
T: Copy,
[src]
pub fn whole(&self) -> Vec<T> where
T: Copy,
Retrieve the whole content of the Buffer
.
pub fn set(&mut self, i: usize, x: T) -> Result<(), BufferError> where
T: Copy,
[src]
pub fn set(&mut self, i: usize, x: T) -> Result<(), BufferError> where
T: Copy,
Set a value at a given index in the Buffer
.
Checks boundaries.
pub fn write_whole(&self, values: &[T]) -> Result<(), BufferError>
[src]
pub fn write_whole(&self, values: &[T]) -> Result<(), BufferError>
Write a whole slice into a buffer.
If the slice you pass in has less items than the length of the buffer, you’ll get a
BufferError::TooFewValues
error. If it has more, you’ll get BufferError::TooManyValues
.
This function won’t write anything on any error.
pub fn clear(&self, x: T) -> Result<(), BufferError> where
T: Copy,
[src]
pub fn clear(&self, x: T) -> Result<(), BufferError> where
T: Copy,
Fill the Buffer
with a single value.
pub fn fill(&self, values: &[T]) -> Result<(), BufferError>
[src]
pub fn fill(&self, values: &[T]) -> Result<(), BufferError>
Fill the whole buffer with an array.
pub fn to_raw(self) -> RawBuffer
[src]
pub fn to_raw(self) -> RawBuffer
Convert a buffer to its raw representation.
Becareful: once you have called this function, it is not possible to go back to a Buffer<_>
.
pub fn as_slice(&self) -> Result<BufferSlice<T>, BufferError>
[src]
pub fn as_slice(&self) -> Result<BufferSlice<T>, BufferError>
Obtain an immutable slice view into the buffer.
pub fn as_slice_mut(&mut self) -> Result<BufferSliceMut<T>, BufferError>
[src]
pub fn as_slice_mut(&mut self) -> Result<BufferSliceMut<T>, BufferError>
Obtain a mutable slice view into the buffer.
Methods from Deref<Target = RawBuffer>
pub fn as_slice<T>(&self) -> Result<BufferSlice<T>, BufferError>
[src]
pub fn as_slice<T>(&self) -> Result<BufferSlice<T>, BufferError>
Obtain an immutable slice view into the buffer.
pub fn as_slice_mut<T>(&mut self) -> Result<BufferSliceMut<T>, BufferError>
[src]
pub fn as_slice_mut<T>(&mut self) -> Result<BufferSliceMut<T>, BufferError>
Obtain a mutable slice view into the buffer.
Trait Implementations
impl<T> Deref for Buffer<T>
[src]
impl<T> Deref for Buffer<T>
type Target = RawBuffer
The resulting type after dereferencing.
fn deref(&self) -> &Self::Target
[src]
fn deref(&self) -> &Self::Target
Dereferences the value.
impl<T> DerefMut for Buffer<T>
[src]
impl<T> DerefMut for Buffer<T>
impl<T> From<Buffer<T>> for RawBuffer
[src]
impl<T> From<Buffer<T>> for RawBuffer