class CanvasEndianness

Defined at line 150 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

Describes the byte ordering ("endianness") in each 128-bit (16-bytes) chunk

of pixel data.

The default byte ordering for canvas images is called "128-bit

little-endian". For example, each little-endian chunk in an R8G8B8A8 image

contains 4 pixels, laid out as follows:

R0, G0, B0, A0, R1, G1, B1, A1, R2, G2, B2, A2, R3, G3, B3, A3.

Hardware modules may write to the memory interface using different byte

orderings. The byte ordering (endianness) is expressed as a sequence of

pairwise swaps of all 8/16/32/64-bit sub-chunks in a chunk. These swap

operations are commutative, so their ordering does not matter.

For example, if hardware writes images in 64-bit (8-byte) big-endian,

[`SWAP_8BIT_PAIRS`], [`SWAP_16BIT_PAIRS`] and [`SWAP_32BIT_PAIRS`] will be

needed:

The original bytes written by the hardware:

A1, B1, G1, R1, A0, B0, G0, R0, A3, B3, G3, R3, A2, B2, G2, R2,...

Swapping every 8-bit pair we get:

B1, A1, R1, G1, B0, A0, R0, G0, B3, A3, R3, G3, B2, A2, R2, G2,...

Then we swap every 16-bit pair:

R1, G1, B1, A1, R0, G0, B0, A0, R3, G3, B3, A3, R2, G2, B2, A2,...

Then we swap every 32-bit pair:

R0, G0, B0, A0, R1, G1, B1, A1, R2, G2, B2, A2, R3, G3, B3, A3,...

to get the correct interpretation.

|CanvasEndianness| is flexible, hence may contain unknown members not

defined in the FIDL schema.

Public Members

static CanvasEndianness kSwap8BitPairs
static CanvasEndianness kSwap16BitPairs
static CanvasEndianness kSwap32BitPairs
static CanvasEndianness kSwap64BitPairs
static CanvasEndianness kMask

Public Methods

void CanvasEndianness ()

Defined at line 152 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

void CanvasEndianness (uint32_t value)

Constructs an instance of |CanvasEndianness| from an underlying primitive value,

preserving any bit member not defined in the FIDL schema.

Defined at line 156 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

uint32_t operator unsigned int ()

Defined at line 163 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

bool operator bool ()

Defined at line 164 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

bool operator== (const CanvasEndianness & other)

Defined at line 165 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

bool operator!= (const CanvasEndianness & other)

Defined at line 166 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

std::optional<CanvasEndianness> TryFrom (uint32_t value)

Constructs an instance of |CanvasEndianness| from an underlying primitive value

if the primitive does not contain any unknown members not defined in the

FIDL schema. Otherwise, returns |std::nullopt|.

Defined at line 180 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

CanvasEndianness TruncatingUnknown (uint32_t value)

Constructs an instance of |CanvasEndianness| from an underlying primitive value,

clearing any bit member not defined in the FIDL schema.

Defined at line 189 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

CanvasEndianness unknown_bits ()

Defined at line 192 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

bool has_unknown_bits ()

Defined at line 195 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

CanvasEndianness operator~ ()

Defined at line 210 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

CanvasEndianness operator| (const CanvasEndianness & other)

Defined at line 214 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

CanvasEndianness operator& (const CanvasEndianness & other)

Defined at line 219 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

CanvasEndianness operator^ (const CanvasEndianness & other)

Defined at line 224 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

CanvasEndianness operator- (const CanvasEndianness & other)

Defined at line 229 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

void operator|= (const CanvasEndianness & other)

Defined at line 234 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

void operator&= (const CanvasEndianness & other)

Defined at line 239 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

void operator^= (const CanvasEndianness & other)

Defined at line 244 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h

void operator-= (const CanvasEndianness & other)

Defined at line 249 of file fidling/gen/sdk/fidl/fuchsia.hardware.amlogiccanvas/fuchsia.hardware.amlogiccanvas/cpp/fidl/fuchsia.hardware.amlogiccanvas/cpp/common_types.h