#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct FormatHint {
pub preferred: PixelFormatPreference,
pub alpha: AlphaHandling,
pub changes_dimensions: bool,
pub is_neighborhood: bool,
}
impl Default for FormatHint {
fn default() -> Self {
Self {
preferred: PixelFormatPreference::Any,
alpha: AlphaHandling::Process,
changes_dimensions: false,
is_neighborhood: false,
}
}
}
#[non_exhaustive]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub enum PixelFormatPreference {
#[default]
Any,
OklabF32,
LinearF32,
PremulLinearF32,
Srgb8,
SceneLinearF32,
}
#[non_exhaustive]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub enum AlphaHandling {
#[default]
Process,
Skip,
RequirePremul,
ModifyAlpha,
}