diff options
Diffstat (limited to 'engine/src/rendering/backend/opengl.rs')
| -rw-r--r-- | engine/src/rendering/backend/opengl.rs | 27 |
1 files changed, 23 insertions, 4 deletions
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<crate::rendering::shader::Context>, + mut shader_context: Single<ShaderContext>, 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], |
