BufferForDraw

Trait BufferForDraw 

Source
pub trait BufferForDraw<T>:
    Clone
    + Send
    + Sync
    + Debug
    + Any
where T: BufferVecItem,
{ // Required methods fn create( device: Arc<VulkanDevice>, data: &[T], cmdbuf: VkCommandBuffer, usage: VkBufferUsageFlags, ) -> Result<Self, VulkanError>; fn get_vk_buffer(&self) -> VkBuffer; fn get_device(&self) -> Arc<VulkanDevice>; fn set_data(&mut self, data: &[T]) -> Result<(), VulkanError>; fn len(&self) -> usize; fn convert_to_buffer_vec(self) -> BufferVec<T>; fn convert_to_buffer_with_type(self) -> BufferWithType<T>; // Provided methods fn flush(&mut self, _cmdbuf: VkCommandBuffer) -> Result<(), VulkanError> { ... } fn discard_staging_buffer(&self) { ... } fn is_empty(&self) -> bool { ... } }
Expand description

The trait for the mesh to hold buffers

Required Methods§

Source

fn create( device: Arc<VulkanDevice>, data: &[T], cmdbuf: VkCommandBuffer, usage: VkBufferUsageFlags, ) -> Result<Self, VulkanError>

Used to create the buffer

Source

fn get_vk_buffer(&self) -> VkBuffer

Must be able to get the VkBuffer handle

Source

fn get_device(&self) -> Arc<VulkanDevice>

Get the device

Source

fn set_data(&mut self, data: &[T]) -> Result<(), VulkanError>

Set data to be flushed

Source

fn len(&self) -> usize

Get the number of the items in the buffer

Source

fn convert_to_buffer_vec(self) -> BufferVec<T>

Convert to BufferVec<T>

Source

fn convert_to_buffer_with_type(self) -> BufferWithType<T>

Convert to BufferWithType<T>

Provided Methods§

Source

fn flush(&mut self, _cmdbuf: VkCommandBuffer) -> Result<(), VulkanError>

Flush staging buffer data to GPU

Source

fn discard_staging_buffer(&self)

Discard staging buffer if the buffer’s staging buffer is discardable

Source

fn is_empty(&self) -> bool

Check if the buffer is empty

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§