summaryrefslogtreecommitdiff
path: root/engine/src/rendering/backend/opengl.rs
diff options
context:
space:
mode:
Diffstat (limited to 'engine/src/rendering/backend/opengl.rs')
-rw-r--r--engine/src/rendering/backend/opengl.rs27
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],