diff options
Diffstat (limited to 'engine/src/renderer/opengl.rs')
| -rw-r--r-- | engine/src/renderer/opengl.rs | 22 |
1 files changed, 16 insertions, 6 deletions
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::<RendererCtxUsedByWindow>() .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, + ); + } } } } |
