librashader/librashader-reflect/src/reflect/mod.rs

36 lines
896 B
Rust
Raw Normal View History

use crate::error::ShaderReflectError;
use semantics::ShaderSemantics;
/// Reflection via spirv-cross.
2022-11-07 16:25:11 +11:00
pub mod cross;
2022-11-22 08:21:50 +11:00
/// Shader semantics and reflection information.
2022-11-22 08:21:50 +11:00
pub mod semantics;
/// Reflection helpers for reflecting and compiling shaders as part of a shader preset.
pub mod presets;
mod helper;
#[cfg(feature = "naga")]
2023-12-13 11:02:49 +11:00
pub mod naga;
/// A trait for compilation outputs that can provide reflection information.
pub trait ReflectShader {
/// Reflect the shader as the given pass within the shader preset, against the provided
/// semantic map.
fn reflect(
&mut self,
2022-11-20 10:48:54 +11:00
pass_number: usize,
semantics: &ShaderSemantics,
) -> Result<ShaderReflection, ShaderReflectError>;
}
pub use semantics::ShaderReflection;
#[inline(always)]
/// Give a size aligned to 16 byte boundary
const fn align_uniform_size(size: u32) -> u32 {
(size + 0xf) & !0xf
2022-11-30 17:38:05 +11:00
}