aboutsummaryrefslogtreecommitdiff
path: root/adapters/fparkan-render-vulkan/src/ffi/smoke.rs
diff options
context:
space:
mode:
Diffstat (limited to 'adapters/fparkan-render-vulkan/src/ffi/smoke.rs')
-rw-r--r--adapters/fparkan-render-vulkan/src/ffi/smoke.rs29
1 files changed, 9 insertions, 20 deletions
diff --git a/adapters/fparkan-render-vulkan/src/ffi/smoke.rs b/adapters/fparkan-render-vulkan/src/ffi/smoke.rs
index c3565e1..ac359c2 100644
--- a/adapters/fparkan-render-vulkan/src/ffi/smoke.rs
+++ b/adapters/fparkan-render-vulkan/src/ffi/smoke.rs
@@ -3,7 +3,7 @@
use ash::vk;
use fparkan_render::{LegacyDepthMode, LegacyPipelineState};
-use super::smoke_types::resolve_draw_texture_indices;
+use super::smoke_types::{resolve_draw_texture_indices, VulkanStaticMaterial};
use super::update_material_texture_descriptor;
use super::{
create_command_pool, create_frame_sync, create_index_buffer, create_static_mesh_index_buffer,
@@ -361,18 +361,7 @@ impl VulkanSmokeRenderer {
create_info
.materials
.iter()
- .map(|material| {
- let combiner_mode = if material.lightmap_mode {
- 3.0
- } else if material.sky_nebula_stars {
- 2.0
- } else if material.unlit {
- 1.0
- } else {
- 0.0
- };
- combiner_mode + if material.sky_far_depth { 4.0 } else { 0.0 }
- })
+ .map(VulkanStaticMaterial::encoded_material_mode)
.collect()
};
let material_specular = if create_info.materials.is_empty() {
@@ -862,9 +851,9 @@ impl VulkanSmokeRenderer {
/// Sets the native per-range alpha reference in legacy 0..=255 units.
///
- /// A value of zero selects the renderer's proven native default (one) for
- /// alpha-test ranges. The update is dynamic and does not recreate a
- /// graphics pipeline.
+ /// Zero remains an explicit value; use the native-default constant when
+ /// matching the renderer's initial state. The update is dynamic and does
+ /// not recreate a graphics pipeline.
pub fn set_draw_range_alpha_test_reference(
&mut self,
range_index: usize,
@@ -1091,10 +1080,10 @@ impl VulkanSmokeRenderer {
.chain(additive_rgb)
.chain(overlay_directional_rgb.into_iter().flatten())
.chain(overlay_additive_rgb.into_iter().flatten())
- .any(|value| !value.is_finite() || value < 0.0)
+ .any(|value| !value.is_finite())
{
return Err(VulkanSmokeRendererError::InvalidStaticMesh {
- context: "dynamic material lighting must be finite and non-negative",
+ context: "dynamic material lighting must be finite",
});
}
let lighting = self.material_lighting.get_mut(material_index).ok_or(
@@ -1155,10 +1144,10 @@ impl VulkanSmokeRenderer {
if specular_rgb
.into_iter()
.chain(overlay_specular_rgb.into_iter().flatten())
- .any(|value| !value.is_finite() || value < 0.0)
+ .any(|value| !value.is_finite())
{
return Err(VulkanSmokeRendererError::InvalidStaticMesh {
- context: "dynamic material specular RGB must be finite and non-negative",
+ context: "dynamic material specular RGB must be finite",
});
}
let specular = self.material_specular.get_mut(material_index).ok_or(