summaryrefslogtreecommitdiff
path: root/engine/src/renderer
diff options
context:
space:
mode:
Diffstat (limited to 'engine/src/renderer')
-rw-r--r--engine/src/renderer/opengl.rs22
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,
+ );
+ }
}
}
}