#[repr(u64)]pub enum PixelFormatModifier {
Show 20 variants
DoNotCare = 72_057_594_037_927_934,
Invalid = 72_057_594_037_927_935,
Linear = 0,
IntelI915XTiled = 72_057_594_037_927_937,
IntelI915YTiled = 72_057_594_037_927_938,
IntelI915YfTiled = 72_057_594_037_927_939,
IntelI915YTiledCcs = 72_057_594_054_705_154,
IntelI915YfTiledCcs = 72_057_594_054_705_155,
ArmAfbc16X16 = 576_460_752_303_423_489,
ArmAfbc32X8 = 576_460_752_303_423_490,
ArmLinearTe = 576_460_752_303_427_584,
ArmAfbc16X16Te = 576_460_752_303_427_585,
ArmAfbc32X8Te = 576_460_752_303_427_586,
ArmAfbc16X16YuvTiledHeader = 576_460_752_303_431_697,
ArmAfbc16X16SplitBlockSparseYuv = 576_460_752_303_423_601,
ArmAfbc16X16SplitBlockSparseYuvTe = 576_460_752_303_427_697,
ArmAfbc16X16SplitBlockSparseYuvTiledHeader = 576_460_752_303_431_793,
ArmAfbc16X16SplitBlockSparseYuvTeTiledHeader = 576_460_752_303_435_889,
GoogleGoldfishOptimal = 7_421_932_185_906_577_409,
UnknownOrdinal_(u64),
}Expand description
The upper 8 bits are a vendor code. The lower 56 bits are vendor-defined.
The defined PixelFormatModifier values are specific, complete, and valid
values (except for INVALID and DO_NOT_CARE which have their own
meanings).
Some other valid or potentially-valid pixel_format_modifier values are not
defined as a PixelFormatModifier value, typically because the value isn’t
used in practice (or potentially is newly used but not yet defined in
PixelFormatModifier). It is permitted to specify such a value as a
PixelFormatModifier value in a pixel_format_modifier field, despite the
lack of corresponding defined PixelFormatModifier value. If such a value
is used outside test code, please consider adding it as a defined value in
PixelFormatModifier. All such values must conform to the upper 8 bits
vendor code (don’t define/use values outside the/an appropriate vendor
code).
The separately-defined FORMAT_MODIFIER_* uint64 values are vendor-specific
bit field values, not complete valid values on their own. These uint64
values can be used to help create or interpret a PixelFormatModifier value
in terms of vendor-specific bitfields.
When the pixel_format_modifier is set to a supported value (excluding
DO_NOT_CARE, INVALID, LINEAR), the arrangement of pixel data otherwise
specified by the pixel_format field is “modified”, typically to allow for
some combination of tiling, compression (typically lossless, typically for
memory bandwidth reduction not framebuffer size reduction), transaction
elimination, dirt tracking, but typically not modifying the bit depth of the
pixel_format. In some cases there’s a per-image or per-tile header
involved, or similar. The pixel_format field often still needs to be set
to a valid supported value that works in combination with the
pixel_format_modifier, and that pixel_format value can also contribute
to the overall meaning of the ImageFormat. In other words, the “modifier”
part of the name is more accurate than “override” would be.
Variants§
DoNotCare = 72_057_594_037_927_934
Invalid = 72_057_594_037_927_935
Linear = 0
IntelI915XTiled = 72_057_594_037_927_937
IntelI915YTiled = 72_057_594_037_927_938
IntelI915YfTiled = 72_057_594_037_927_939
IntelI915YTiledCcs = 72_057_594_054_705_154
IntelI915YfTiledCcs = 72_057_594_054_705_155
ArmAfbc16X16 = 576_460_752_303_423_489
ArmAfbc32X8 = 576_460_752_303_423_490
ArmLinearTe = 576_460_752_303_427_584
ArmAfbc16X16Te = 576_460_752_303_427_585
ArmAfbc32X8Te = 576_460_752_303_427_586
ArmAfbc16X16YuvTiledHeader = 576_460_752_303_431_697
ArmAfbc16X16SplitBlockSparseYuv = 576_460_752_303_423_601
ArmAfbc16X16SplitBlockSparseYuvTe = 576_460_752_303_427_697
ArmAfbc16X16SplitBlockSparseYuvTiledHeader = 576_460_752_303_431_793
ArmAfbc16X16SplitBlockSparseYuvTeTiledHeader = 576_460_752_303_435_889
GoogleGoldfishOptimal = 7_421_932_185_906_577_409
UnknownOrdinal_(u64)
Trait Implementations§
Source§impl Clone for PixelFormatModifier
impl Clone for PixelFormatModifier
Source§fn clone(&self) -> PixelFormatModifier
fn clone(&self) -> PixelFormatModifier
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PixelFormatModifier
impl Debug for PixelFormatModifier
Source§impl<'a, ___E> Encode<PixelFormatModifier, ___E> for &'a PixelFormatModifierwhere
___E: ?Sized,
impl<'a, ___E> Encode<PixelFormatModifier, ___E> for &'a PixelFormatModifierwhere
___E: ?Sized,
Source§fn encode(
self,
encoder: &mut ___E,
out: &mut MaybeUninit<PixelFormatModifier>,
_: (),
) -> Result<(), EncodeError>
fn encode( self, encoder: &mut ___E, out: &mut MaybeUninit<PixelFormatModifier>, _: (), ) -> Result<(), EncodeError>
§const COPY_OPTIMIZATION: CopyOptimization<Self, W> = _
const COPY_OPTIMIZATION: CopyOptimization<Self, W> = _
Source§impl<___E> Encode<PixelFormatModifier, ___E> for PixelFormatModifierwhere
___E: ?Sized,
impl<___E> Encode<PixelFormatModifier, ___E> for PixelFormatModifierwhere
___E: ?Sized,
Source§fn encode(
self,
encoder: &mut ___E,
out: &mut MaybeUninit<PixelFormatModifier>,
_: (),
) -> Result<(), EncodeError>
fn encode( self, encoder: &mut ___E, out: &mut MaybeUninit<PixelFormatModifier>, _: (), ) -> Result<(), EncodeError>
§const COPY_OPTIMIZATION: CopyOptimization<Self, W> = _
const COPY_OPTIMIZATION: CopyOptimization<Self, W> = _
Source§impl From<PixelFormatModifier> for PixelFormatModifier
impl From<PixelFormatModifier> for PixelFormatModifier
Source§fn from(wire: PixelFormatModifier) -> PixelFormatModifier
fn from(wire: PixelFormatModifier) -> PixelFormatModifier
Source§impl From<PixelFormatModifier> for PixelFormatModifier
impl From<PixelFormatModifier> for PixelFormatModifier
Source§fn from(natural: PixelFormatModifier) -> PixelFormatModifier
fn from(natural: PixelFormatModifier) -> PixelFormatModifier
Source§impl From<u64> for PixelFormatModifier
impl From<u64> for PixelFormatModifier
Source§fn from(value: u64) -> PixelFormatModifier
fn from(value: u64) -> PixelFormatModifier
Source§impl FromWire<PixelFormatModifier> for PixelFormatModifier
impl FromWire<PixelFormatModifier> for PixelFormatModifier
Source§fn from_wire(wire: PixelFormatModifier) -> PixelFormatModifier
fn from_wire(wire: PixelFormatModifier) -> PixelFormatModifier
§const COPY_OPTIMIZATION: CopyOptimization<W, Self> = _
const COPY_OPTIMIZATION: CopyOptimization<W, Self> = _
Source§impl FromWireRef<PixelFormatModifier> for PixelFormatModifier
impl FromWireRef<PixelFormatModifier> for PixelFormatModifier
Source§fn from_wire_ref(wire: &PixelFormatModifier) -> PixelFormatModifier
fn from_wire_ref(wire: &PixelFormatModifier) -> PixelFormatModifier
Source§impl Hash for PixelFormatModifier
impl Hash for PixelFormatModifier
Source§impl Ord for PixelFormatModifier
impl Ord for PixelFormatModifier
Source§fn cmp(&self, other: &PixelFormatModifier) -> Ordering
fn cmp(&self, other: &PixelFormatModifier) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for PixelFormatModifier
impl PartialEq for PixelFormatModifier
Source§fn eq(&self, other: &PixelFormatModifier) -> bool
fn eq(&self, other: &PixelFormatModifier) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialOrd for PixelFormatModifier
impl PartialOrd for PixelFormatModifier
impl Copy for PixelFormatModifier
impl Eq for PixelFormatModifier
impl StructuralPartialEq for PixelFormatModifier
Auto Trait Implementations§
impl Freeze for PixelFormatModifier
impl RefUnwindSafe for PixelFormatModifier
impl Send for PixelFormatModifier
impl Sync for PixelFormatModifier
impl Unpin for PixelFormatModifier
impl UnsafeUnpin for PixelFormatModifier
impl UnwindSafe for PixelFormatModifier
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, W> FromWireOption<Box<'_, W>> for Twhere
T: FromWire<W>,
impl<T, W> FromWireOption<Box<'_, W>> for Twhere
T: FromWire<W>,
§fn from_wire_option(wire: Box<'_, W>) -> Option<T>
fn from_wire_option(wire: Box<'_, W>) -> Option<T>
§impl<T, W> FromWireOptionRef<Box<'_, W>> for Twhere
T: FromWireRef<W>,
impl<T, W> FromWireOptionRef<Box<'_, W>> for Twhere
T: FromWireRef<W>,
§fn from_wire_option_ref(wire: &Box<'_, W>) -> Option<T>
fn from_wire_option_ref(wire: &Box<'_, W>) -> Option<T>
§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
T to [Self]