class PixelFormatModifier

Defined at line 49 of file fidling/gen/sdk/fidl/fuchsia.images2/fuchsia.images2/hlcpp/fuchsia/images2/cpp/fidl.h

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.

Public Members

static PixelFormatModifier DO_NOT_CARE
static PixelFormatModifier INVALID
static PixelFormatModifier LINEAR
static PixelFormatModifier INTEL_I915_X_TILED
static PixelFormatModifier INTEL_I915_Y_TILED
static PixelFormatModifier INTEL_I915_YF_TILED
static PixelFormatModifier INTEL_I915_Y_TILED_CCS
static PixelFormatModifier INTEL_I915_YF_TILED_CCS
static PixelFormatModifier ARM_AFBC_16X16
static PixelFormatModifier ARM_AFBC_32X8
static PixelFormatModifier ARM_LINEAR_TE
static PixelFormatModifier ARM_AFBC_16X16_TE
static PixelFormatModifier ARM_AFBC_32X8_TE
static PixelFormatModifier ARM_AFBC_16X16_YUV_TILED_HEADER
static PixelFormatModifier ARM_AFBC_16X16_SPLIT_BLOCK_SPARSE_YUV
static PixelFormatModifier ARM_AFBC_16X16_SPLIT_BLOCK_SPARSE_YUV_TE
static PixelFormatModifier ARM_AFBC_16X16_SPLIT_BLOCK_SPARSE_YUV_TILED_HEADER
static PixelFormatModifier ARM_AFBC_16X16_SPLIT_BLOCK_SPARSE_YUV_TE_TILED_HEADER
static PixelFormatModifier GOOGLE_GOLDFISH_OPTIMAL

Public Methods

void PixelFormatModifier ()

Defined at line 51 of file fidling/gen/sdk/fidl/fuchsia.images2/fuchsia.images2/hlcpp/fuchsia/images2/cpp/fidl.h

void PixelFormatModifier (uint64_t value)

Defined at line 52 of file fidling/gen/sdk/fidl/fuchsia.images2/fuchsia.images2/hlcpp/fuchsia/images2/cpp/fidl.h

uint64_t operator unsigned long ()

Defined at line 53 of file fidling/gen/sdk/fidl/fuchsia.images2/fuchsia.images2/hlcpp/fuchsia/images2/cpp/fidl.h

bool IsUnknown ()

Defined at line 55 of file fidling/gen/sdk/fidl/fuchsia.images2/fuchsia.images2/hlcpp/fuchsia/images2/cpp/fidl.h

PixelFormatModifier Unknown ()

Defined at line 100 of file fidling/gen/sdk/fidl/fuchsia.images2/fuchsia.images2/hlcpp/fuchsia/images2/cpp/fidl.h