use super::Buffer;
use crate::core::*;
pub struct VertexBuffer<T: BufferDataType> {
buffer: Buffer<T>,
}
impl<T: BufferDataType> VertexBuffer<T> {
pub fn new(context: &Context) -> Self {
Self {
buffer: Buffer::new(context),
}
}
pub fn new_with_data(context: &Context, data: &[T]) -> Self {
Self {
buffer: Buffer::new_with_data(context, data),
}
}
pub fn fill(&mut self, data: &[T]) {
self.buffer.fill(data);
}
pub fn fill_subset(&mut self, offset: u32, data: &[T]) {
self.buffer.fill_subset(offset, data);
}
pub fn count(&self) -> u32 {
self.buffer.attribute_count() * T::size()
}
pub fn vertex_count(&self) -> u32 {
self.buffer.attribute_count()
}
pub(in crate::core) fn bind(&self) {
self.buffer.bind();
}
}