librashader_runtime/
filter_pass.rs

1use librashader_common::ImageFormat;
2use librashader_presets::PassMeta;
3
4/// Trait for metadata about a filter pass.
5pub trait FilterPassMeta {
6    /// Gets the format of the framebuffer for the pass.
7    fn framebuffer_format(&self) -> ImageFormat;
8
9    /// Gets a reference to the filter pass config.
10    fn meta(&self) -> &PassMeta;
11
12    /// Gets the format of the filter pass framebuffer.
13    #[inline(always)]
14    fn get_format(&self) -> ImageFormat {
15        let fb_format = self.framebuffer_format();
16        if let Some(format) = self.meta().get_format_override() {
17            format
18        } else if fb_format == ImageFormat::Unknown {
19            ImageFormat::R8G8B8A8Unorm
20        } else {
21            fb_format
22        }
23    }
24}