Expand description
Hassle
This crate provides an FFI layer and idiomatic rust wrappers for the new DirectXShaderCompiler library.
Simple example
use hassle_rs::compile_hlsl;
let code = "
Texture2D<float4> g_input : register(t0, space0);
RWTexture2D<float4> g_output : register(u0, space0);
[numthreads(8, 8, 1)]
void copyCs(uint3 dispatchThreadId : SV_DispatchThreadID)
{
g_output[dispatchThreadId.xy] = g_input[dispatchThreadId.xy];
}";
let ir = compile_hlsl(
"shader_filename.hlsl",
code,
"copyCs",
"cs_6_1",
&vec!["-spirv"],
&vec![
("MY_DEFINE", Some("Value")),
("OTHER_DEFINE", None)
],
);
Re-exports
pub use crate::utils::compile_hlsl;
pub use crate::utils::fake_sign_dxil_in_place;
pub use crate::utils::validate_dxil;
pub use crate::utils::HassleError;
pub use crate::utils::Result;
pub use crate::ffi::*;
pub use crate::wrapper::*;