use wesl::include_wesl;
use crate::low_level::RayTracingShader;
pub struct High;
unsafe impl RayTracingShader for High {
fn new() -> Self {
Self
}
fn shader_source_without_intersection_handler() -> String {
include_wesl!("high_path_tracing").to_string()
}
#[cfg(debug_assertions)]
fn label() -> &'static str {
"Ray-Tracing High shader"
}
}
pub struct Medium;
unsafe impl RayTracingShader for Medium {
fn new() -> Self {
Self
}
fn shader_source_without_intersection_handler() -> String {
include_wesl!("medium_path_tracing").to_string()
}
#[cfg(debug_assertions)]
fn label() -> &'static str {
"Ray-Tracing Medium shader"
}
}
pub struct Low;
unsafe impl RayTracingShader for Low {
fn new() -> Self {
Self
}
fn shader_source_without_intersection_handler() -> String {
include_wesl!("low_path_tracing").to_string()
}
#[cfg(debug_assertions)]
fn label() -> &'static str {
"Ray-Tracing Low shader"
}
}