use glam::Mat4;
use crate::{
decals::{gpu::AwsmDecalError, Decal, DecalKey},
AwsmRenderer,
};
impl AwsmRenderer {
pub fn insert_decal(
&mut self,
transform: Mat4,
texture_index: u32,
alpha: f32,
) -> Result<DecalKey, AwsmDecalError> {
let decal = Decal::new(transform, texture_index, alpha);
match self.decals.as_mut() {
Some(decals) => decals.insert(decal),
None => Err(AwsmDecalError::FeatureNotEnabled),
}
}
pub fn update_decal(&mut self, key: DecalKey, f: impl FnOnce(&mut Decal)) {
if let Some(decals) = self.decals.as_mut() {
decals.update(key, f);
}
}
pub fn remove_decal(&mut self, key: DecalKey) -> bool {
match self.decals.as_mut() {
Some(decals) => decals.remove(key),
None => false,
}
}
}