diff options
| author | HampusM <hampus@hampusmat.com> | 2026-08-19 22:56:49 +0200 |
|---|---|---|
| committer | HampusM <hampus@hampusmat.com> | 2026-08-19 22:56:49 +0200 |
| commit | f93ea96df00f31416589e5e5a09debf10d5a4bba (patch) | |
| tree | 98cc47a2a5fafba33cce02271bdec3bb0aa9608f /engine/src/rendering | |
| parent | e7f503a1e545aa83535e67eceafb0462780bfc2d (diff) | |
feat(engine): lossily convert color shader bindings to rgb
Diffstat (limited to 'engine/src/rendering')
| -rw-r--r-- | engine/src/rendering/main_render_pass.rs | 14 | ||||
| -rw-r--r-- | engine/src/rendering/shader/cursor.rs | 17 |
2 files changed, 23 insertions, 8 deletions
diff --git a/engine/src/rendering/main_render_pass.rs b/engine/src/rendering/main_render_pass.rs index 225b89a..db1569d 100644 --- a/engine/src/rendering/main_render_pass.rs +++ b/engine/src/rendering/main_render_pass.rs @@ -501,15 +501,15 @@ fn add_set_3d_shader_bindings( } else { &env_lighting.ambient_color } - .clone()) + .to_rgb_lossy()) .into(), )?, material_shader_cursor .field("diffuse") - .binding(material.diffuse.clone().into())?, + .binding(material.diffuse.to_rgb_lossy().into())?, material_shader_cursor .field("specular") - .binding(material.specular.clone().into())?, + .binding(material.specular.to_rgb_lossy().into())?, shader_cursor .field("ambient_map") .binding(ShaderBindingValue::Texture( @@ -606,10 +606,10 @@ fn add_set_3d_shader_bindings( [ phong_shader_cursor .field("diffuse") - .binding(point_light.diffuse.clone().into())?, + .binding(point_light.diffuse.to_rgb_lossy().into())?, phong_shader_cursor .field("specular") - .binding(point_light.specular.clone().into())?, + .binding(point_light.specular.to_rgb_lossy().into())?, point_light_shader_cursor.field("position").binding( (point_light_transform.position + point_light.local_position).into(), )?, @@ -644,10 +644,10 @@ fn add_set_3d_shader_bindings( [ phong_shader_cursor .field("diffuse") - .binding(directional_light.diffuse.clone().into())?, + .binding(directional_light.diffuse.to_rgb_lossy().into())?, phong_shader_cursor .field("specular") - .binding(directional_light.specular.clone().into())?, + .binding(directional_light.specular.to_rgb_lossy().into())?, directional_light_shader_cursor .field("direction") .binding(directional_light.direction.into())?, diff --git a/engine/src/rendering/shader/cursor.rs b/engine/src/rendering/shader/cursor.rs index 82b5ec0..49f6b47 100644 --- a/engine/src/rendering/shader/cursor.rs +++ b/engine/src/rendering/shader/cursor.rs @@ -4,7 +4,7 @@ use std::hint::cold_path; use circular_buffer::FixedCircularBuffer; -use crate::color::Color; +use crate::color::{Color, Rgb, Rgba}; use crate::data_types::matrix::Matrix; use crate::data_types::vector::Vec3; use crate::rendering::object::Id as RenderingObjectId; @@ -319,6 +319,21 @@ impl From<Color<f32>> for BindingValue BindingValue::Color(color) } } +impl From<Rgb<f32>> for BindingValue +{ + fn from(color: Rgb<f32>) -> Self + { + BindingValue::Color(color.into()) + } +} + +impl From<Rgba<f32>> for BindingValue +{ + fn from(color: Rgba<f32>) -> Self + { + BindingValue::Color(color.into()) + } +} impl From<Matrix<f32, 4, 4>> for BindingValue { |
