aboutsummaryrefslogtreecommitdiff
path: root/adapters/fparkan-render-vulkan/src/ffi/smoke.rs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-10-30 17:28:45 +0300
committerValentin Popov <valentin@popov.link>2026-10-30 17:28:45 +0300
commit2e5058078c586e2dd0dcf3bbcf149223e5f0daeb (patch)
tree878cccd811aa54fa2046928b45e6cc9c435d13bc /adapters/fparkan-render-vulkan/src/ffi/smoke.rs
parentbce6e3b2639d8771e50e2f907cdfa110671717b1 (diff)
downloadfparkan-2e5058078c586e2dd0dcf3bbcf149223e5f0daeb.tar.xz
fparkan-2e5058078c586e2dd0dcf3bbcf149223e5f0daeb.zip
fix(render): preserve native world viewport depth range
Diffstat (limited to 'adapters/fparkan-render-vulkan/src/ffi/smoke.rs')
-rw-r--r--adapters/fparkan-render-vulkan/src/ffi/smoke.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/adapters/fparkan-render-vulkan/src/ffi/smoke.rs b/adapters/fparkan-render-vulkan/src/ffi/smoke.rs
index a2481f7..90bce14 100644
--- a/adapters/fparkan-render-vulkan/src/ffi/smoke.rs
+++ b/adapters/fparkan-render-vulkan/src/ffi/smoke.rs
@@ -1808,6 +1808,7 @@ impl VulkanSmokeRenderer {
0,
vk::IndexType::UINT32,
);
+ let mut viewport_depth = None;
for &range_index in &self.draw_order {
let range = self.draw_ranges.get(range_index).ok_or(
VulkanSmokeRendererError::InvariantViolation {
@@ -1929,6 +1930,17 @@ impl VulkanSmokeRenderer {
} else {
*material_mode
};
+ let viewport = super::swapchain_resources::draw_viewport(
+ swapchain.report.plan.extent,
+ material_mode,
+ );
+ let next_viewport_depth = [viewport.min_depth, viewport.max_depth];
+ if viewport_depth != Some(next_viewport_depth) {
+ device
+ .device()
+ .cmd_set_viewport(command_buffer, 0, &[viewport]);
+ viewport_depth = Some(next_viewport_depth);
+ }
let material_mode = [material_mode.to_ne_bytes()];
device.device().cmd_push_constants(
command_buffer,