diff options
| author | HampusM <hampus@hampusmat.com> | 2026-04-18 16:26:27 +0200 |
|---|---|---|
| committer | HampusM <hampus@hampusmat.com> | 2026-04-18 16:26:27 +0200 |
| commit | bb2929df6b013fba82a866cc1dc14e842e94d0af (patch) | |
| tree | 9757beacee4b5ce4a9e55d1de5074fe4b2ad6a8a /engine | |
| parent | 250cb67defcdfc789bfc0b4fa26fce194e3f67cd (diff) | |
feat(engine): add depth testing on/off to renderer draw props
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/src/renderer.rs | 17 | ||||
| -rw-r--r-- | engine/src/renderer/opengl.rs | 10 |
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, + ); + } } } } |
