use molgfx_gpu::{BlendMode, ColorTarget, TextureFormat};
pub(crate) const AO_FORMAT: TextureFormat = TextureFormat::Rgba8Unorm;
pub(crate) const SHADOW_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(21);
pub(crate) const GBUFFER_ALBEDO_FORMAT: TextureFormat = TextureFormat::Rgba16Float;
pub(crate) const GBUFFER_NORMAL_FORMAT: TextureFormat = TextureFormat::Rgba16Float;
pub(crate) const GBUFFER_MOTION_FORMAT: TextureFormat = TextureFormat::Rg16Float;
pub(crate) const fn gbuffer_targets() -> [ColorTarget; 5] {
[
ColorTarget {
format: GBUFFER_ALBEDO_FORMAT,
blend: BlendMode::Replace,
},
ColorTarget {
format: GBUFFER_NORMAL_FORMAT,
blend: BlendMode::Replace,
},
ColorTarget {
format: TextureFormat::R32Uint,
blend: BlendMode::Replace,
},
ColorTarget {
format: TextureFormat::R32Uint,
blend: BlendMode::Replace,
},
ColorTarget {
format: GBUFFER_MOTION_FORMAT,
blend: BlendMode::Replace,
},
]
}
pub(crate) const fn segmentation_targets() -> [ColorTarget; 4] {
[
ColorTarget {
format: TextureFormat::Rgba16Float,
blend: BlendMode::Additive,
},
ColorTarget {
format: TextureFormat::R8Unorm,
blend: BlendMode::ReverseMultiply,
},
ColorTarget {
format: TextureFormat::R32Uint,
blend: BlendMode::Replace,
},
ColorTarget {
format: TextureFormat::R32Uint,
blend: BlendMode::Replace,
},
]
}
pub(crate) const ALBEDO_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(1);
pub(crate) const NORMAL_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(2);
pub(crate) const ENTITY_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(3);
pub(crate) const STRUCTURE_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(4);
pub(crate) const SEGMENT_VOLUME_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(19);
pub(crate) const SEGMENT_LABEL_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(20);
pub(crate) const AO_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(5);
pub(crate) const HDR_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(6);
pub(crate) const HISTORY_A_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(7);
pub(crate) const HISTORY_B_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(8);
pub(crate) const OIT_ACCUM_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(9);
pub(crate) const OIT_REVEAL_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(10);
pub(crate) const COMPOSITE_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(11);
pub(crate) const DOF_TILE_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(12);
pub(crate) const DOF_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(13);
pub(crate) const MOTION_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(14);
pub(crate) const AO_DENOISED_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(18);
pub(crate) const BLOOM_A_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(15);
pub(crate) const BLOOM_B_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(16);
pub(crate) const BLOOM_C_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(17);
pub(crate) const MOTION_BLUR_RESOURCE: crate::graph::ResourceId = crate::graph::ResourceId(22);
#[cfg(test)]
#[path = "resources_tests.rs"]
mod tests;