pub struct FrameResources {
pub vertex_buffer: Option<Buffer>,
pub index_buffer: Option<Buffer>,
pub vertex_buffer_host: Option<Vec<u8>>,
pub index_buffer_host: Option<Vec<u8>>,
pub vertex_buffer_size: usize,
pub index_buffer_size: usize,
}Expand description
Per-frame resources
This corresponds to the FrameResources struct in the C++ implementation. Each frame in flight has its own set of vertex and index buffers.
Fields§
§vertex_buffer: Option<Buffer>GPU vertex buffer
index_buffer: Option<Buffer>GPU index buffer
vertex_buffer_host: Option<Vec<u8>>Host-side vertex buffer (for staging)
index_buffer_host: Option<Vec<u8>>Host-side index buffer (for staging)
vertex_buffer_size: usizeCurrent vertex buffer size in vertices
index_buffer_size: usizeCurrent index buffer size in indices
Implementations§
Source§impl FrameResources
impl FrameResources
Sourcepub fn ensure_vertex_buffer_capacity(
&mut self,
device: &Device,
required_vertices: usize,
) -> RendererResult<()>
pub fn ensure_vertex_buffer_capacity( &mut self, device: &Device, required_vertices: usize, ) -> RendererResult<()>
Ensure vertex buffer can hold the required number of vertices
Sourcepub fn ensure_index_buffer_capacity(
&mut self,
device: &Device,
required_indices: usize,
) -> RendererResult<()>
pub fn ensure_index_buffer_capacity( &mut self, device: &Device, required_indices: usize, ) -> RendererResult<()>
Ensure index buffer can hold the required number of indices
Sourcepub fn upload_vertex_data(
&mut self,
queue: &Queue,
vertices: &[DrawVert],
) -> RendererResult<()>
pub fn upload_vertex_data( &mut self, queue: &Queue, vertices: &[DrawVert], ) -> RendererResult<()>
Upload vertex data to the GPU buffer
Sourcepub fn upload_index_data(
&mut self,
queue: &Queue,
indices: &[DrawIdx],
) -> RendererResult<()>
pub fn upload_index_data( &mut self, queue: &Queue, indices: &[DrawIdx], ) -> RendererResult<()>
Upload index data to the GPU buffer
Sourcepub fn vertex_buffer(&self) -> Option<&Buffer>
pub fn vertex_buffer(&self) -> Option<&Buffer>
Get the vertex buffer for rendering
Sourcepub fn index_buffer(&self) -> Option<&Buffer>
pub fn index_buffer(&self) -> Option<&Buffer>
Get the index buffer for rendering
Sourcepub fn stats(&self) -> FrameResourcesStats
pub fn stats(&self) -> FrameResourcesStats
Get buffer statistics for debugging
Trait Implementations§
Auto Trait Implementations§
impl Freeze for FrameResources
impl !RefUnwindSafe for FrameResources
impl Send for FrameResources
impl Sync for FrameResources
impl Unpin for FrameResources
impl UnsafeUnpin for FrameResources
impl !UnwindSafe for FrameResources
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