#[non_exhaustive]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct NegotiationPolicy {
pub prefer_native_resolution: bool,
pub prefer_color_fidelity: bool,
pub prefer_high_refresh: bool,
pub penalize_dsc: bool,
}
impl NegotiationPolicy {
pub const BEST_QUALITY: Self = Self {
prefer_native_resolution: true,
prefer_color_fidelity: true,
prefer_high_refresh: false,
penalize_dsc: true,
};
pub const BEST_PERFORMANCE: Self = Self {
prefer_native_resolution: true,
prefer_color_fidelity: false,
prefer_high_refresh: true,
penalize_dsc: false,
};
pub const POWER_SAVING: Self = Self {
prefer_native_resolution: true,
prefer_color_fidelity: false,
prefer_high_refresh: false,
penalize_dsc: true,
};
}
impl Default for NegotiationPolicy {
fn default() -> Self {
Self::BEST_QUALITY
}
}