diff options
Diffstat (limited to 'src/common/overlay/throwshade.rs')
| -rw-r--r-- | src/common/overlay/throwshade.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/common/overlay/throwshade.rs b/src/common/overlay/throwshade.rs new file mode 100644 index 0000000..d7ac430 --- /dev/null +++ b/src/common/overlay/throwshade.rs @@ -0,0 +1,23 @@ +use teleia::*; + +const VERT: &'static str = include_str!("assets/shaders/throwshade/vert.glsl"); +const FRAG: &'static str = include_str!("assets/shaders/throwshade/frag.glsl"); + +pub struct ThrowShade { + pub shader: Option<shader::Shader>, +} +impl ThrowShade { + pub fn new() -> Self { + Self { + shader: None, + } + } + pub fn set(&mut self, ctx: &context::Context, src: &str) { + let fsrc = format!("{}\n{}\n", FRAG, src); + if let Some(s) = &mut self.shader { + s.replace(ctx, VERT, &fsrc); + } else { + self.shader = Some(shader::Shader::new_nolib(ctx, VERT, &fsrc)); + } + } +} |
