pub struct VertexBuffer {
pub id: u32,
}
Expand description
A abstract representation of a vertex buffer
§Example
let vertices = vec![
0.5, 0.5, 0.0, // top right
0.5, -0.5, 0.0, // bottom right
-0.5, -0.5, 0.0, // bottom left
-0.5, 0.5, 0.0, // top left
];
// static
let vbo1 = VertexBuffer::new(calc_bytes_size(&vertices) as isize, Some(&vertices));
// Dynamic
let vbo2 = VertexBuffer::new(calc_bytes_size(&vertices) as isize);
// send half of the vertices
vbo2.send_data(48 / 2, 0, vertices);
Fields§
§id: u32
Implementations§
Source§impl VertexBuffer
impl VertexBuffer
Sourcepub fn new<T>(size: isize, vertices: Option<&Vec<T>>) -> Self
pub fn new<T>(size: isize, vertices: Option<&Vec<T>>) -> Self
Return a VertexBuffer with the allocated size provided, the buffer data is static only if the verticies isn’t None, else, the buffer data is dynamic
§Arguments
size
- The size in bytes of the data to allocatevertices
- A optional data to write
Sourcepub fn send_data<T>(&self, size: isize, offset: isize, vertices: &Vec<T>)
pub fn send_data<T>(&self, size: isize, offset: isize, vertices: &Vec<T>)
Write data that wasn’t provided on the new function
§Arguments
size
- The size in bytes of the data to writeoffset
- Point to a offset in the allocated spacevertices
- Data to write
pub fn bind(&self)
pub fn unbind(&self)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for VertexBuffer
impl RefUnwindSafe for VertexBuffer
impl Send for VertexBuffer
impl Sync for VertexBuffer
impl Unpin for VertexBuffer
impl UnwindSafe for VertexBuffer
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