summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2026-04-18 16:26:27 +0200
committerHampusM <hampus@hampusmat.com>2026-04-18 16:26:27 +0200
commitbb2929df6b013fba82a866cc1dc14e842e94d0af (patch)
tree9757beacee4b5ce4a9e55d1de5074fe4b2ad6a8a
parent250cb67defcdfc789bfc0b4fa26fce194e3f67cd (diff)
feat(engine): add depth testing on/off to renderer draw props
-rw-r--r--engine/src/renderer.rs17
-rw-r--r--engine/src/renderer/opengl.rs10
2 files changed, 26 insertions, 1 deletions
diff --git a/engine/src/renderer.rs b/engine/src/renderer.rs
index 1a77f9e..3b6bdf0 100644
--- a/engine/src/renderer.rs
+++ b/engine/src/renderer.rs
@@ -215,13 +215,27 @@ pub enum MeshUsage
Dynamic,
}
-#[derive(Debug, Default, Clone, PartialEq, Eq)]
+#[derive(Debug, Clone, PartialEq, Eq)]
#[non_exhaustive]
pub struct DrawProperties
{
pub polygon_mode_config: PolygonModeConfig,
pub blending_enabled: bool,
pub blending_config: BlendingConfig,
+ pub depth_test_enabled: bool,
+}
+
+impl Default for DrawProperties
+{
+ fn default() -> Self
+ {
+ Self {
+ polygon_mode_config: PolygonModeConfig::default(),
+ blending_enabled: false,
+ blending_config: BlendingConfig::default(),
+ depth_test_enabled: true,
+ }
+ }
}
bitflags! {
@@ -231,6 +245,7 @@ bitflags! {
const POLYGON_MODE_CONFIG = 1 << 0;
const BLENDING_CONFIG = 1 << 1;
const BLENDING_ENABLED = 1 << 2;
+ const DEPTH_TEST_ENABLED = 1 << 3;
}
}
diff --git a/engine/src/renderer/opengl.rs b/engine/src/renderer/opengl.rs
index c4d335c..df57b84 100644
--- a/engine/src/renderer/opengl.rs
+++ b/engine/src/renderer/opengl.rs
@@ -1193,6 +1193,16 @@ fn handle_commands(
)),
);
}
+
+ if draw_props_update_flags
+ .contains(DrawPropertiesUpdateFlags::DEPTH_TEST_ENABLED)
+ {
+ set_enabled(
+ curr_gl_ctx,
+ Capability::DepthTest,
+ draw_props.depth_test_enabled,
+ );
+ }
}
}
}