#![cfg(target_os = "windows")] //! librashader Direct3D 11 runtime //! //! This crate should not be used directly. //! See [`librashader::runtime::d3d11`](https://docs.rs/librashader/latest/librashader/runtime/d3d11/index.html) instead. #![feature(type_alias_impl_trait)] #![feature(let_chains)] #[cfg(test)] mod hello_triangle; mod draw_quad; pub mod error; mod filter_chain; mod filter_pass; mod framebuffer; pub mod options; mod parameters; mod render_target; mod samplers; mod texture; mod util; pub use filter_chain::FilterChainD3D11; pub use texture::D3D11InputView; pub use texture::D3D11OutputView; #[cfg(test)] mod tests { use super::*; use crate::options::FilterChainOptionsD3D11; use librashader_runtime::image::{Image, UVDirection}; use std::env; // "../test/slang-shaders/scalefx/scalefx-9x.slangp", // "../test/slang-shaders/bezel/koko-aio/monitor-bloom.slangp", // "../test/slang-shaders/presets/crt-geom-ntsc-upscale-sharp.slangp", const FILTER_PATH: &str = "../test/slang-shaders/bezel/Mega_Bezel/Presets/MBZ__0__SMOOTH-ADV.slangp"; // "../test/null.slangp", // const FILTER_PATH: &str = "../test/slang-shaders/scalefx/scalefx-9x.slangp"; // const FILTER_PATH: &str = "../test/slang-shaders/bezel/Mega_Bezel/Presets/MBZ__0__SMOOTH-ADV.slangp"; const IMAGE_PATH: &str = "../test/finalfightlong.png"; // #[test] // fn triangle_d3d11_args() { // let mut args = env::args(); // let _ = args.next(); // let _ = args.next(); // let filter = args.next(); // let image = args // .next() // .and_then(|f| Image::load(f, UVDirection::TopLeft).ok()) // .or_else(|| Some(Image::load(IMAGE_PATH, UVDirection::TopLeft).unwrap())) // .unwrap(); // // let sample = hello_triangle::d3d11_hello_triangle::Sample::new( // filter.as_deref().unwrap_or(FILTER_PATH), // Some(&FilterChainOptionsD3D11 { // use_deferred_context: false, // force_no_mipmaps: false, // }), // // replace below with 'None' for the triangle // Some(image), // ) // .unwrap(); // // let sample = hello_triangle_old::d3d11_hello_triangle::Sample::new( // // "../test/slang-shaders/bezel/Mega_Bezel/Presets/MBZ__0__SMOOTH-ADV.slangp", // // Some(&FilterChainOptions { // // use_deferred_context: true, // // }) // // ) // // .unwrap(); // // // let sample = hello_triangle_old::d3d11_hello_triangle::Sample::new("../test/basic.slangp").unwrap(); // // hello_triangle::main(sample).unwrap(); // } #[test] fn triangle_d3d11() { let sample = hello_triangle::d3d11_hello_triangle::Sample::new( FILTER_PATH, Some(&FilterChainOptionsD3D11 { use_deferred_context: false, force_no_mipmaps: false, }), // replace below with 'None' for the triangle // None, Some(Image::load(IMAGE_PATH, UVDirection::TopLeft).unwrap()), ) .unwrap(); // let sample = hello_triangle_old::d3d11_hello_triangle::Sample::new( // "../test/slang-shaders/bezel/Mega_Bezel/Presets/MBZ__0__SMOOTH-ADV.slangp", // Some(&FilterChainOptions { // use_deferred_context: true, // }) // ) // .unwrap(); // let sample = hello_triangle_old::d3d11_hello_triangle::Sample::new("../test/basic.slangp").unwrap(); hello_triangle::main(sample).unwrap(); } }