use awsm_renderer_materials::MaterialShaderId;
use crate::{
dynamic_materials::ShadingBase,
render_passes::geometry::shader::{
cache_key::DynamicVertexShaderInfo, masked_cache_key::DynamicAlphaShaderInfo,
},
render_passes::shader_cache_key::ShaderCacheKeyRenderPass,
shaders::ShaderCacheKey,
};
#[derive(Hash, Debug, Clone, PartialEq, Eq)]
pub struct ShaderCacheKeyGeometryMaskedCustomVertex {
pub shader_id: MaterialShaderId,
pub base: ShadingBase,
pub dynamic_vertex: DynamicVertexShaderInfo,
pub dynamic_alpha: Option<DynamicAlphaShaderInfo>,
pub texture_pool_arrays_len: u32,
pub texture_pool_samplers_len: u32,
pub msaa_samples: Option<u32>,
}
impl From<ShaderCacheKeyGeometryMaskedCustomVertex> for ShaderCacheKey {
fn from(key: ShaderCacheKeyGeometryMaskedCustomVertex) -> Self {
ShaderCacheKey::RenderPass(ShaderCacheKeyRenderPass::GeometryMaskedCustomVertex(key))
}
}