From 7d578207c76a9fd51c370cd06839410675f28e03 Mon Sep 17 00:00:00 2001 From: HampusM Date: Sat, 18 Apr 2026 15:50:04 +0200 Subject: feat(engine): add renderer draw properties --- engine/src/renderer/opengl.rs | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'engine/src/renderer/opengl.rs') diff --git a/engine/src/renderer/opengl.rs b/engine/src/renderer/opengl.rs index f1ca7a5..f80237a 100644 --- a/engine/src/renderer/opengl.rs +++ b/engine/src/renderer/opengl.rs @@ -79,10 +79,12 @@ use crate::renderer::opengl::glutin_compat::{ }; use crate::renderer::opengl::graphics_mesh::GraphicsMesh; use crate::renderer::{ + ActiveDrawProperties, BufferClearMask, Command as RendererCommand, CommandQueue as RendererCommandQueue, CtxUsedByWindow as RendererCtxUsedByWindow, + DrawPropertiesUpdateFlags, GraphicsProperties, PRE_RENDER_PHASE, RENDER_PHASE, @@ -655,6 +657,7 @@ fn init_window_graphics( .relation::() .target_id(window_ent_id) .build(), + ActiveDrawProperties::default(), )); actions.add_components( @@ -1137,17 +1140,24 @@ fn handle_commands( tracing::error!("Failed to draw mesh: {err}"); }; } - RendererCommand::SetPolygonModeConfig(polygon_mode_config) => { + RendererCommand::UpdateDrawProperties( + draw_props, + draw_props_update_flags, + ) => { let Some(curr_gl_ctx) = &opt_curr_gl_ctx else { tracing::error!("No GL context is current"); continue; }; - opengl_bindings::misc::set_polygon_mode( - &curr_gl_ctx, - polygon_mode_config.face, - polygon_mode_config.mode, - ); + if draw_props_update_flags + .contains(DrawPropertiesUpdateFlags::POLYGON_MODE_CONFIG) + { + opengl_bindings::misc::set_polygon_mode( + &curr_gl_ctx, + draw_props.polygon_mode_config.face, + draw_props.polygon_mode_config.mode, + ); + } } } } -- cgit v1.2.3-18-g5258