pub struct InstanceBuffer<T: BufferDataType> { /* private fields */ }
Expand description
A buffer containing per instance data. To send this data to a shader, use the Program::use_instance_attribute method.
Implementations§
Source§impl<T: BufferDataType> InstanceBuffer<T>
impl<T: BufferDataType> InstanceBuffer<T>
Sourcepub fn new_with_data(context: &Context, data: &[T]) -> Self
pub fn new_with_data(context: &Context, data: &[T]) -> Self
Creates a new instance buffer and fills it with the given data. The data should be in the same format as specified in the shader.
As an example, if specified as vec3
in the shader it needs to be specified as an array of Vector3<T>
where T
is a primitive type that implements BufferDataType, for example can be f16 or f32.
Sourcepub fn fill(&mut self, data: &[T])
pub fn fill(&mut self, data: &[T])
Fills the instance buffer with the given data. The data should be in the same format as specified in the shader.
As an example, if specified as vec3
in the shader it needs to be specified as an array of Vector3<T>
where T
is a primitive type that implements BufferDataType, for example can be f16 or f32.
This function will resize the buffer to have the same size as the data, if that is not desired, use fill_subset instead.
Sourcepub fn fill_subset(&mut self, offset: u32, data: &[T])
pub fn fill_subset(&mut self, offset: u32, data: &[T])
Fills the vertex buffer with the given data starting at the given offset. This will increase the size of the buffer if there’s not enough room. Otherwise, the size will remain unchanged.
Sourcepub fn instance_count(&self) -> u32
pub fn instance_count(&self) -> u32
The number of instance attributes in the buffer.