diff options
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/src/draw_flags.rs | 2 | ||||
| -rw-r--r-- | engine/src/rendering.rs | 10 | ||||
| -rw-r--r-- | engine/src/rendering/backend/opengl.rs | 7 | ||||
| -rw-r--r-- | engine/src/scene.rs | 4 | ||||
| -rw-r--r-- | engine/src/ui/dear_imgui.rs | 2 | ||||
| -rw-r--r-- | engine/src/ui/view/world.rs | 13 |
6 files changed, 28 insertions, 10 deletions
diff --git a/engine/src/draw_flags.rs b/engine/src/draw_flags.rs index e58eea0..b32bb14 100644 --- a/engine/src/draw_flags.rs +++ b/engine/src/draw_flags.rs @@ -54,5 +54,5 @@ pub enum PolygonModeFace } /// Component that makes a object not be drawn. -#[derive(Debug, Clone, Copy, Component, Reflection)] +#[derive(Debug, Default, Clone, Copy, Component, Reflection)] pub struct NoDraw; diff --git a/engine/src/rendering.rs b/engine/src/rendering.rs index ffb5a4f..140d99e 100644 --- a/engine/src/rendering.rs +++ b/engine/src/rendering.rs @@ -108,7 +108,7 @@ impl Default for Extension } /// Marker component for windows that should be renderer to. -#[derive(Debug, Clone, Copy, Component)] +#[derive(Debug, Default, Clone, Copy, Component, Reflection)] pub struct TargetWindow; builder! { @@ -632,12 +632,20 @@ pub enum SrgbaTextureDataType #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] #[non_exhaustive] +pub enum DepthTextureDataType +{ + Float32, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +#[non_exhaustive] pub enum TexturePixelDataFormat { Rgb(RgbTextureDataType), Rgba(RgbaTextureDataType), Srgb(SrgbTextureDataType), Srgba(SrgbaTextureDataType), + Depth(DepthTextureDataType), } impl TexturePixelDataFormat diff --git a/engine/src/rendering/backend/opengl.rs b/engine/src/rendering/backend/opengl.rs index 444c757..381a609 100644 --- a/engine/src/rendering/backend/opengl.rs +++ b/engine/src/rendering/backend/opengl.rs @@ -1577,6 +1577,13 @@ fn tex_pixel_data_format_into_gl( } }) } + TexturePixelDataFormat::Depth(data_type) => { + GlTexturePixelDataFormat::DepthComponent(match data_type { + crate::rendering::DepthTextureDataType::Float32 => { + opengl_bindings::texture::DepthComponentDataType::Float32 + } + }) + } } } diff --git a/engine/src/scene.rs b/engine/src/scene.rs index 77c274c..2a66c3f 100644 --- a/engine/src/scene.rs +++ b/engine/src/scene.rs @@ -1,8 +1,8 @@ use crate::ecs::Component; use crate::reflection::Reflection; -#[derive(Debug, Clone, Component, Reflection)] +#[derive(Debug, Default, Clone, Copy, Component, Reflection)] pub struct Scene; -#[derive(Debug, Clone, Copy, Component, Reflection)] +#[derive(Debug, Default, Clone, Copy, Component, Reflection)] pub struct Active; diff --git a/engine/src/ui/dear_imgui.rs b/engine/src/ui/dear_imgui.rs index d3ca4dc..0ae8a3b 100644 --- a/engine/src/ui/dear_imgui.rs +++ b/engine/src/ui/dear_imgui.rs @@ -315,7 +315,7 @@ fn update( Ok(()) } -#[derive(Debug, Component, Reflection)] +#[derive(Debug, Default, Clone, Copy, Component, Reflection)] pub struct TargetWindow; #[derive(Debug, Default, Component)] diff --git a/engine/src/ui/view/world.rs b/engine/src/ui/view/world.rs index ff4c13a..143ff84 100644 --- a/engine/src/ui/view/world.rs +++ b/engine/src/ui/view/world.rs @@ -608,7 +608,9 @@ fn enter_add_component_popup_state( .query::<(&ComponentInfo,)>() .iter_with_euids() .map(|(id, (component_info,))| { - let user_creatable = if component_info.type_reflection.is_none() { + let user_creatable = if component_info.is_sole { + ComponentUserCreatable::No { reason: "is a sole" } + } else if component_info.type_reflection.is_none() { ComponentUserCreatable::No { reason: "no type reflection" } } else if component_info .type_reflection @@ -796,10 +798,11 @@ fn show_add_component_popup( { actions.add_components( add_component_popup_state.target_entity_id, - [ComponentParts::builder() - .name(new_component_info.name) - .type_reflection(new_component_info.type_reflection) - .build_with_any_data(new_component_id, new_component_data)], + [ComponentParts::from_component_info( + &new_component_info, + new_component_id, + new_component_data, + )], ); return true; |
