From 51c85583a0d3eda5e8cf41273ecfa9b6d994e59c Mon Sep 17 00:00:00 2001 From: HampusM Date: Tue, 3 Nov 2026 09:48:04 +0100 Subject: feat(engine): add shader context session initialization options --- engine/src/rendering/backend/opengl.rs | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'engine/src/rendering/backend') diff --git a/engine/src/rendering/backend/opengl.rs b/engine/src/rendering/backend/opengl.rs index bdaa555..2926cde 100644 --- a/engine/src/rendering/backend/opengl.rs +++ b/engine/src/rendering/backend/opengl.rs @@ -119,8 +119,15 @@ use crate::rendering::shader::cursor::{ }; use crate::rendering::shader::reflection::Stage as ShaderStage; use crate::rendering::shader::{ + CompileTarget as ShaderCompileTarget, + CompileTargetFormat as ShaderCompileTargetFormat, + Context as ShaderContext, + ContextSessionInitOpts as ShaderContextSessionInitOpts, + DebugInfoLevel as ShaderDebugInfoLevel, EntrypointFlags as ShaderEntrypointFlags, Error as ShaderError, + LineDirectiveMode as ShaderLineDirectiveMode, + OptimizationLevel as ShaderOptimizationLevel, Program as ShaderProgram, VertexDescCreationError as ShaderVertexDescCreationError, VertexDescription as ShaderVertexDescription, @@ -521,15 +528,27 @@ impl crate::ecs::extension::Extension for Extension } fn init( - mut shader_context: Single, + mut shader_context: Single, mut actions: Actions, ) -> Result<(), crate::Error> { let shader_context = shader_context.get_mut()?; - let shader_target_ids = shader_context - .init_session(&[&crate::rendering::shader::CompileTarget::default() - .format(crate::rendering::shader::CompileTargetFormat::Glsl)])?; + let shader_target_ids = shader_context.init_session( + &if cfg!(debug_assertions) { + ShaderContextSessionInitOpts::default() + .optimization_level(ShaderOptimizationLevel::Default) + .debug_info_level(ShaderDebugInfoLevel::Maximal) + .line_directive_mode(ShaderLineDirectiveMode::Standard) + .no_mangle(true) + } else { + ShaderContextSessionInitOpts::default() + .optimization_level(ShaderOptimizationLevel::High) + .debug_info_level(ShaderDebugInfoLevel::None) + .line_directive_mode(ShaderLineDirectiveMode::None) + }, + &[&ShaderCompileTarget::default().format(ShaderCompileTargetFormat::Glsl)], + )?; actions.create_sole(BackendProperties { shader_target_id: shader_target_ids[0], -- cgit v1.2.3-18-g5258