diff options
| author | HampusM <hampus@hampusmat.com> | 2026-09-07 00:24:09 +0200 |
|---|---|---|
| committer | HampusM <hampus@hampusmat.com> | 2026-09-07 00:24:09 +0200 |
| commit | 6eefb4d3a03d8ba4f3e7f5494831d6417b8dcc12 (patch) | |
| tree | 92bb8b4ca6aa751338f2902a425c5c9401a30c31 /engine/src/rendering | |
| parent | 5cb923fe13818192ad75d8b62899671d72cacb18 (diff) | |
feat(engine): add face culling mode to rendering::DrawProperties
Diffstat (limited to 'engine/src/rendering')
| -rw-r--r-- | engine/src/rendering/backend/opengl.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/engine/src/rendering/backend/opengl.rs b/engine/src/rendering/backend/opengl.rs index 32afd8f..25583b5 100644 --- a/engine/src/rendering/backend/opengl.rs +++ b/engine/src/rendering/backend/opengl.rs @@ -50,10 +50,12 @@ use opengl_bindings::misc::{ get_viewport as gl_get_viewport, set_depth_function as gl_set_depth_function, set_enabled, + set_face_culling_mode as gl_set_face_culling_mode, set_viewport as gl_set_viewport, BufferClearMask as GlBufferClearMask, Capability, DepthFunction as GlDepthFunction, + FaceCullingMode as GlFaceCullingMode, }; use opengl_bindings::shader::{ Error as GlShaderError, @@ -126,6 +128,7 @@ use crate::rendering::{ DrawMeshOptions, DrawProperties, DrawPropertiesUpdateFlags, + FaceCullingMode, FramebufferProperties, FramebufferPropertiesUpdateFlags, GraphicsProperties, @@ -1388,6 +1391,17 @@ fn update_draw_properties( ); } + if update_flags.contains(DrawPropertiesUpdateFlags::FACE_CULLING_MODE) { + gl_set_face_culling_mode( + gl_context, + match properties.face_culling_mode { + FaceCullingMode::Front => GlFaceCullingMode::Front, + FaceCullingMode::Back => GlFaceCullingMode::Back, + FaceCullingMode::FrontAndBack => GlFaceCullingMode::FrontAndBack, + }, + ); + } + 'if_draw_fb: { if update_flags.contains(DrawPropertiesUpdateFlags::DRAW_FRAMEBUFFER) { let Some(framebuffer_obj_id) = properties.draw_framebuffer else { |
