summaryrefslogtreecommitdiff
path: root/engine/src/rendering/backend/opengl.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2026-11-03 09:48:04 +0100
committerHampusM <hampus@hampusmat.com>2026-11-03 09:48:04 +0100
commit51c85583a0d3eda5e8cf41273ecfa9b6d994e59c (patch)
tree1913605835d236a2e7cc8040e10fa460e71a4b22 /engine/src/rendering/backend/opengl.rs
parent1529915d58524ab4de3eaa0b3441fc09c1dcf4f0 (diff)
feat(engine): add shader context session initialization options
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],