The layout of the data structures described here are assumed to be little-endian for the purposes of data transfer, but may be implemented in the natural endianness of the platform for internal use.
The data format descriptor consists of a contiguous area of memory, divided into one or more descriptor blocks which are tagged by the type of descriptor that they contain. The size of the data format descriptor varies according to its content.
Table 5. Data Format Descriptor layout
| totalSize |
Descriptor block | First descriptor |
Descriptor block | Second descriptor (optional) etc. |
The totalSize field, measured in bytes, allows the full format descriptor
to be copied without need for details of the descriptor to be interpreted.
totalSize includes its own uint32_t
, not just the following
descriptor blocks.
For example, we will see below that a four-sample Khronos Basic
Data Format Descriptor Block occupies 88 bytes; if there are no
other descriptor blocks in the data format descriptor, the totalSize
field would then indicate 88 + 4 bytes (for the totalSize field
itself) for a final value of 92.