aboutsummaryrefslogtreecommitdiffstats
path: root/src/shader.rs
blob: 47a16216f8f1f7038d0c285ae45bb51ffb689d61 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use anyhow::Result;
use std::path::Path;

pub struct ShaderManager {
    shader_dir: String,
}

impl ShaderManager {
    pub fn new(shader_dir: &str) -> Self {
        Self {
            shader_dir: shader_dir.to_string(),
        }
    }

    pub fn load_shader(&self, name: &str) -> Result<String> {
        let path = Path::new(&self.shader_dir).join(name);
        std::fs::read_to_string(path).map_err(|e| e.into())
    }

    pub fn watch_shaders(&self) -> Result<()> {
        // TODO: Implement shader hot-reloading with notify crate
        Ok(())
    }
}