pub enum DynamicRangeLimit {
Standard,
ConstrainedHigh,
NoLimit,
}Expand description
How much of the output’s HDR headroom an image draw may use.
Mirrors CSS dynamic-range-limit.
Backends remaster image content whose measured peak exceeds the
resolved limit: a hue-preserving BT.2390 roll-off maps the image’s
luminance range into the limit at sample time, re-derived live when
the output’s headroom changes (window moves, HDR toggles). Content
that already fits renders untouched — ordinary SDR art never pays
for this. See docs/COLOR_MANAGEMENT.md.
Variants§
Standard
Tonemap to SDR: the image may not exceed reference white.
ConstrainedHigh
Bright but bounded: at most Self::CONSTRAINED_HIGH_HEADROOM×
reference white (less when the output offers less). For grids /
feeds of HDR content where full-blast highlights would be
hostile. (CSS constrained-high; the exact ceiling is
UA-defined there too.)
NoLimit
Use the output’s full headroom — remaster only what the panel cannot show. Default, matching the CSS initial value.
Implementations§
Source§impl DynamicRangeLimit
impl DynamicRangeLimit
Sourcepub const CONSTRAINED_HIGH_HEADROOM: f32 = 2.0
pub const CONSTRAINED_HIGH_HEADROOM: f32 = 2.0
The ConstrainedHigh headroom ceiling, in multiples of
reference white.
Trait Implementations§
Source§impl Clone for DynamicRangeLimit
impl Clone for DynamicRangeLimit
Source§fn clone(&self) -> DynamicRangeLimit
fn clone(&self) -> DynamicRangeLimit
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for DynamicRangeLimit
Source§impl Debug for DynamicRangeLimit
impl Debug for DynamicRangeLimit
Source§impl Default for DynamicRangeLimit
impl Default for DynamicRangeLimit
Source§fn default() -> DynamicRangeLimit
fn default() -> DynamicRangeLimit
impl Eq for DynamicRangeLimit
Source§impl PartialEq for DynamicRangeLimit
impl PartialEq for DynamicRangeLimit
Source§fn eq(&self, other: &DynamicRangeLimit) -> bool
fn eq(&self, other: &DynamicRangeLimit) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for DynamicRangeLimit
Auto Trait Implementations§
impl Freeze for DynamicRangeLimit
impl RefUnwindSafe for DynamicRangeLimit
impl Send for DynamicRangeLimit
impl Sync for DynamicRangeLimit
impl Unpin for DynamicRangeLimit
impl UnsafeUnpin for DynamicRangeLimit
impl UnwindSafe for DynamicRangeLimit
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.