diff options
| author | Valentin Popov <valentin@popov.link> | 2026-07-18 06:56:49 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-07-18 06:56:49 +0300 |
| commit | b915554f3c5695bd8b9707359ffaa51ea8742341 (patch) | |
| tree | acc3dd51b4fbe33e0c3f32d5c5e0d06b5b57dac2 /adapters/fparkan-render-vulkan/src/ffi/smoke.rs | |
| parent | 116e7716b922dfe402d228f778085dc7b1c1606f (diff) | |
| download | fparkan-b915554f3c5695bd8b9707359ffaa51ea8742341.tar.xz fparkan-b915554f3c5695bd8b9707359ffaa51ea8742341.zip | |
feat(render): preserve original mesh batch draws
Diffstat (limited to 'adapters/fparkan-render-vulkan/src/ffi/smoke.rs')
| -rw-r--r-- | adapters/fparkan-render-vulkan/src/ffi/smoke.rs | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/adapters/fparkan-render-vulkan/src/ffi/smoke.rs b/adapters/fparkan-render-vulkan/src/ffi/smoke.rs index d8cc0d5..a071e74 100644 --- a/adapters/fparkan-render-vulkan/src/ffi/smoke.rs +++ b/adapters/fparkan-render-vulkan/src/ffi/smoke.rs @@ -211,7 +211,7 @@ impl VulkanSmokeRenderer { vertex_buffer: Some(vertex_buffer), index_buffer: Some(index_buffer), texture, - index_count: u32::try_from(create_info.mesh.indices.len()).unwrap_or(u32::MAX), + draw_ranges: create_info.mesh.draw_ranges.clone(), frame_sync: Vec::new(), images_in_flight: Vec::new(), current_frame: 0, @@ -640,9 +640,16 @@ impl VulkanSmokeRenderer { 0, vk::IndexType::UINT16, ); - device - .device() - .cmd_draw_indexed(command_buffer, self.index_count, 1, 0, 0, 0); + for range in &self.draw_ranges { + device.device().cmd_draw_indexed( + command_buffer, + range.index_count, + 1, + range.first_index, + 0, + 0, + ); + } device.device().cmd_end_render_pass(command_buffer); } |
