use super::primitive::TextureRef;
#[derive(Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
pub struct DecalConfig {
#[serde(default)]
pub texture: Option<TextureRef>,
#[serde(default = "default_alpha")]
pub alpha: f32,
#[serde(default)]
pub blend_mode: DecalBlendMode,
}
impl Default for DecalConfig {
fn default() -> Self {
Self {
texture: None,
alpha: 1.0,
blend_mode: DecalBlendMode::default(),
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
pub enum DecalBlendMode {
#[default]
AlphaBlend,
}
fn default_alpha() -> f32 {
1.0
}