summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-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,
+ );
+ }
}
}
}