MCPcopy Create free account
hub / github.com/PerroEngine/Perro / push_ui_mesh

Function push_ui_mesh

perro_source/render_stack/perro_graphics/src/ui/gpu.rs:895–916  ·  view source on GitHub ↗
(
    meshes: &mut Vec<UiMeshGpu>,
    index_start: u32,
    index_count: u32,
    clip_rect: [u32; 4],
    texture_id: TextureId,
)

Source from the content-addressed store, hash-verified

893 }
894 if let Some(new_capacity) = self
895 .shrink_indices
896 .tick(self.index_capacity_bytes as usize, UI_MIN_INDEX_BYTES)
897 {
898 let new_capacity = align_buffer_bytes(new_capacity);
899 if let Some(buffer) = self.index_buffer.take() {
900 self.index_buffer = Some(shrink_buffer_preserving(
901 device,
902 queue,
903 &buffer,
904 "perro_ui_indices",
905 new_capacity as u64,
906 wgpu::BufferUsages::INDEX
907 | wgpu::BufferUsages::COPY_DST
908 | wgpu::BufferUsages::COPY_SRC,
909 ));
910 }
911 self.index_capacity_bytes = new_capacity as u64;
912 self.indices
913 .shrink_to(new_capacity / std::mem::size_of::<u32>());
914 }
915 if self.used_since_shrink_tick {
916 self.used_since_shrink_tick = false;
917 self.supersample_idle_ticks = 0;
918 return;
919 }

Callers 2

prepareMethod · 0.85

Calls 1

pushMethod · 0.45