shadeable/src/main.rs

71 lines
1.4 KiB
Rust

use pixel_format::Rgba64;
use rhai::{EvalAltResult, Scope};
use crate::{
engine_internals::engine_startup,
pixel_format::{rgba_div, RGBA},
};
pub const SHADER: &str = include_str!("../example_shaders/simple.shade");
mod engine_internals;
pub mod pixel_format;
fn main() -> Result<(), Box<EvalAltResult>> {
let rgba: Rgba64 = 0xffffffff;
let rgba_2: Rgba64 = 0x02010101;
println!("{}", rgba_div(rgba, rgba_2));
/*
pixel_format::get_g(rgba);
pixel_format::get_b(rgba);
pixel_format::get_a(rgba);
*/
let engine = engine_startup();
let ast = engine.compile(SHADER)?;
let mut scope = Scope::new();
let a = vec![
RGBA {
r: 255,
g: 0,
b: 0,
a: 0,
},
RGBA {
r: 0,
g: 255,
b: 0,
a: 0,
},
RGBA {
r: 0,
g: 0,
b: 255,
a: 0,
},
RGBA {
r: 0,
g: 0,
b: 0,
a: 255,
},
];
let mut index = 0;
/*
for pixel in a {
scope.push("PIXEL_X", 0); // add constant variable
scope.push("PIXEL_Y", index); // add constant variable
scope.push("PIXEL_RGBA", pixel);
let result: RGBA = engine.call_fn(&mut scope, &ast, "main", ())?;
println!("Pixel {}: {:?}", index, result); // prints 42
index += 1;
}
*/
Ok(())
}