diff options
Diffstat (limited to 'engine/src')
| -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, + ); + } } } } |
