diff options
Diffstat (limited to 'engine/src/rendering/shader/default.rs')
| -rw-r--r-- | engine/src/rendering/shader/default.rs | 44 |
1 files changed, 33 insertions, 11 deletions
diff --git a/engine/src/rendering/shader/default.rs b/engine/src/rendering/shader/default.rs index 32cdc47..737916f 100644 --- a/engine/src/rendering/shader/default.rs +++ b/engine/src/rendering/shader/default.rs @@ -6,16 +6,21 @@ use crate::camera::{Active as ActiveCamera, Camera}; use crate::data_types::dimens::Dimens; use crate::draw_flags::NoDraw; use crate::ecs::actions::Actions; -use crate::ecs::query::term::{Traverse, TraverseUp, With, Without}; use crate::ecs::pair::ChildOf; +use crate::ecs::query::term::{Traverse, TraverseUp, With, Without}; use crate::ecs::sole::Single; use crate::ecs::Query; -use crate::lighting::{DirectionalLight, Environmental as EnvironmentalLighting, PointLight}; +use crate::lighting::{ + DirectionalLight, + Environmental as EnvironmentalLighting, + PointLight, +}; use crate::material::{Flags as MaterialFlags, Material}; use crate::matrix::Matrix; use crate::model::{MaterialSearchResult, Model}; use crate::projection::{ClipVolume as ProjectionClipVolume, Projection}; use crate::rendering::shader::cursor::{ + BindingTextureKind as ShaderBindingTextureKind, BindingValue as ShaderBindingValue, Cursor as ShaderCursor, }; @@ -64,17 +69,17 @@ pub fn enqueue_set_shader_bindings( &Camera, &WorldPosition, &ActiveCamera, - Traverse<(With<Scene>, With<ActiveScene>), TraverseUp, ChildOf> + Traverse<(With<Scene>, With<ActiveScene>), TraverseUp, ChildOf>, )>, window_query: Query<(&Window, &SurfaceSpec, With<RenderingTargetWindow>)>, point_light_query: Query<( &PointLight, &WorldPosition, - Traverse<(With<Scene>, With<ActiveScene>), TraverseUp, ChildOf> + Traverse<(With<Scene>, With<ActiveScene>), TraverseUp, ChildOf>, )>, directional_light_query: Query<( &DirectionalLight, - Traverse<(With<Scene>, With<ActiveScene>), TraverseUp, ChildOf> + Traverse<(With<Scene>, With<ActiveScene>), TraverseUp, ChildOf>, )>, assets: Single<Assets>, shader_context: Single<ShaderContext>, @@ -95,7 +100,15 @@ pub fn enqueue_set_shader_bindings( for ( entity_id, - (model, environmental_lighting, material_flags, world_pos, scale, shader, mut pending_shader_bindings), + ( + model, + environmental_lighting, + material_flags, + world_pos, + scale, + shader, + mut pending_shader_bindings, + ), ) in renderable_query.iter_with_euids() { let shader_asset = match &shader { @@ -173,7 +186,7 @@ pub fn enqueue_set_shader_bindings( let env_lighting = match &environmental_lighting { Some(env_lighting) => &env_lighting, - None => &EnvironmentalLighting::default() + None => &EnvironmentalLighting::default(), }; let model_3d_shader_cursor = shader_cursor.field("Uniforms").field("model_3d"); @@ -189,9 +202,7 @@ pub fn enqueue_set_shader_bindings( model_3d_shader_cursor .field("model_inverted") .binding(inverted_model_matrix.into())?, - model_3d_shader_cursor - .field("view") - .binding(view.into())?, + model_3d_shader_cursor.field("view").binding(view.into())?, lighting_shader_cursor .field("view_pos") .binding(camera_world_pos.position.into())?, @@ -319,6 +330,7 @@ pub fn enqueue_set_shader_bindings( }) .id() .into(), + ShaderBindingTextureKind::Texture2D, ))?, ); @@ -339,6 +351,7 @@ pub fn enqueue_set_shader_bindings( }) .id() .into(), + ShaderBindingTextureKind::Texture2D, ))?, ); @@ -359,6 +372,7 @@ pub fn enqueue_set_shader_bindings( }) .id() .into(), + ShaderBindingTextureKind::Texture2D, ))?, ); @@ -413,7 +427,15 @@ fn create_projection_matrix( type RenderableEntity<'a> = ( &'a Model, - Traverse<(Option<&'a EnvironmentalLighting>, With<Scene>, With<ActiveScene>), TraverseUp, ChildOf>, + Traverse< + ( + Option<&'a EnvironmentalLighting>, + With<Scene>, + With<ActiveScene>, + ), + TraverseUp, + ChildOf, + >, Option<&'a MaterialFlags>, Option<&'a WorldPosition>, Option<&'a Scale>, |
