librashader/librashader-runtime-gl/src/lib.rs

63 lines
1.9 KiB
Rust
Raw Normal View History

2022-11-19 17:55:49 +11:00
#![feature(strict_provenance)]
2022-11-20 17:09:05 +11:00
#![feature(type_alias_impl_trait)]
2022-11-19 17:55:49 +11:00
2022-11-20 10:48:54 +11:00
mod binding;
mod filter_chain;
2022-11-20 15:16:57 +11:00
mod filter_pass;
mod framebuffer;
2022-11-20 15:16:19 +11:00
mod render_target;
2022-11-20 15:16:57 +11:00
mod util;
2022-11-14 16:14:05 +11:00
2022-11-30 17:38:05 +11:00
mod gl;
pub mod options;
2022-11-27 08:47:48 +11:00
mod samplers;
2022-11-30 16:39:42 +11:00
mod texture;
2022-11-27 08:47:48 +11:00
2022-11-30 16:39:42 +11:00
pub mod error;
2022-11-21 18:56:03 +11:00
pub use filter_chain::FilterChain;
2022-11-22 08:21:50 +11:00
pub use framebuffer::Viewport;
2022-11-21 18:56:03 +11:00
2022-11-30 16:39:42 +11:00
pub mod gl3 {
pub use super::framebuffer::GLImage;
pub type FilterChain = super::filter_chain::FilterChain<super::gl::gl3::CompatibilityGL>;
2022-11-30 17:38:05 +11:00
pub type Viewport<'a> = super::framebuffer::Viewport<
'a,
<super::gl::gl3::CompatibilityGL as super::gl::GLInterface>::Framebuffer,
>;
2022-11-30 16:39:42 +11:00
}
pub mod gl46 {
pub use super::framebuffer::GLImage;
pub type FilterChain = super::filter_chain::FilterChain<super::gl::gl46::DirectStateAccessGL>;
2022-11-30 17:38:05 +11:00
pub type Viewport<'a> = super::framebuffer::Viewport<
'a,
<super::gl::gl46::DirectStateAccessGL as super::gl::GLInterface>::Framebuffer,
>;
2022-11-30 16:39:42 +11:00
}
2022-11-22 17:56:39 +11:00
2022-11-09 17:11:25 +11:00
#[cfg(test)]
mod tests {
use super::*;
2022-11-20 15:16:57 +11:00
use crate::filter_chain::FilterChain;
2022-11-09 17:11:25 +11:00
#[test]
2022-11-22 17:56:39 +11:00
fn triangle_gl() {
2022-11-30 16:39:42 +11:00
let (glfw, window, events, shader, vao) = gl::gl3::hello_triangle::setup();
2022-11-22 08:21:50 +11:00
let mut filter =
2022-11-30 17:38:05 +11:00
FilterChain::load_from_path("../test/slang-shaders/vhs/VHSPro.slangp", None)
// FilterChain::load_from_path("../test/slang-shaders/bezel/Mega_Bezel/Presets/MBZ__0__SMOOTH-ADV.slangp", None)
2022-11-22 08:21:50 +11:00
.unwrap();
2022-11-30 16:39:42 +11:00
gl::gl3::hello_triangle::do_loop(glfw, window, events, shader, vao, &mut filter);
}
#[test]
fn triangle_gl46() {
let (glfw, window, events, shader, vao) = gl::gl46::hello_triangle::setup();
let mut filter =
FilterChain::load_from_path("../test/slang-shaders/vhs/VHSPro.slangp", None)
// FilterChain::load_from_path("../test/slang-shaders/bezel/Mega_Bezel/Presets/MBZ__0__SMOOTH-ADV.slangp", None)
.unwrap();
gl::gl46::hello_triangle::do_loop(glfw, window, events, shader, vao, &mut filter);
}
2022-11-09 17:11:25 +11:00
}