summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rw-r--r--engine/src/draw_flags.rs2
-rw-r--r--engine/src/rendering.rs10
-rw-r--r--engine/src/rendering/backend/opengl.rs7
-rw-r--r--engine/src/scene.rs4
-rw-r--r--engine/src/ui/dear_imgui.rs2
-rw-r--r--engine/src/ui/view/world.rs13
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;