mod hello_triangle;
use librashader_common::shader_features::ShaderFeatures;
use librashader_runtime_gl::options::FilterChainOptionsGL;
use librashader_runtime_gl::FilterChainGL;
use std::sync::Arc;
#[test]
fn triangle_gl_hdr() {
use glfw::{fail_on_errors, Context};
use librashader_common::ColorSpace;
use librashader_presets::{PresetColorSpace, ShaderPreset};
let preset =
ShaderPreset::try_parse("../test/shaders_slang/hdr/hdr.slangp", ShaderFeatures::NONE)
.unwrap();
assert_eq!(preset.color_space().unwrap(), ColorSpace::ScRgb);
let mut glfw = glfw::init(fail_on_errors!()).unwrap();
glfw.window_hint(glfw::WindowHint::ContextVersion(3, 3));
glfw.window_hint(glfw::WindowHint::OpenGlProfile(
glfw::OpenGlProfileHint::Core,
));
glfw.window_hint(glfw::WindowHint::OpenGlForwardCompat(true));
glfw.window_hint(glfw::WindowHint::Visible(false));
let (mut window, _events) = glfw
.create_window(1, 1, "hdr-test", glfw::WindowMode::Windowed)
.unwrap();
window.make_current();
let context = Arc::new(unsafe {
glow::Context::from_loader_function(|ptr| window.get_proc_address(ptr))
});
let _filter = unsafe {
FilterChainGL::load_from_preset(
preset,
Arc::clone(&context),
Some(&FilterChainOptionsGL {
glsl_version: 330,
use_dsa: false,
force_no_mipmaps: false,
disable_cache: true,
save_gl_state: false,
}),
)
}
.unwrap();
}
#[test]
fn triangle_gl() {
let (glfw, window, events, shader, vao, context) = hello_triangle::gl3::setup();
unsafe {
let mut filter = FilterChainGL::load_from_path(
"../test/shaders_slang/crt/crt-royale.slangp",
ShaderFeatures::NONE,
Arc::clone(&context),
Some(&FilterChainOptionsGL {
glsl_version: 0,
use_dsa: false,
force_no_mipmaps: false,
disable_cache: true,
..Default::default()
}),
)
.expect("Failed to load filter chain");
hello_triangle::gl3::do_loop(&context, glfw, window, events, shader, vao, &mut filter);
}
}
#[test]
fn triangle_gl46() {
let (glfw, window, events, shader, vao, context) = hello_triangle::gl46::setup();
unsafe {
let mut filter = FilterChainGL::load_from_path(
"../test/shaders_slang/sonkun/slot-mask/flat-screen/1080p/test.slangp",
ShaderFeatures::NONE,
Arc::clone(&context),
Some(&FilterChainOptionsGL {
glsl_version: 330,
use_dsa: true,
force_no_mipmaps: false,
disable_cache: false,
..Default::default()
}),
)
.unwrap();
hello_triangle::gl46::do_loop(&context, glfw, window, events, shader, vao, &mut filter);
}
}