Package: gdk

GEnum gdk:memory-format

Declaration

(gobject:define-genum "GdkMemoryFormat" memory-format
  (:export t
   :type-initializer "gdk_memory_format_get_type")
  :B8G8R8A8-PREMULTIPLIED
  :A8R8G8B8-PREMULTIPLIED
  :R8G8B8A8-PREMULTIPLIED
  :B8G8R8A8
  :A8R8G8B8
  :R8G8B8A8
  :A8B8G8R8
  :R8G8B8
  :B8G8R8
  :R16G16B16
  :R16G16B16A16-PREMULTIPLIED
  :R16G16B16A16
  :R16G16B16-FLOAT
  :R16G16B16A16-FLOAT-PREMULTIPLIED
  :R16G16B16A16-FLOAT
  :R32G32B32-FLOAT
  :R32G32B32A32-FLOAT-PREMULTIPLIED
  :R32G32B32A32-FLOAT
  :8A8-PREMULTIPLIED
  :G8A8
  :G8
  :G16A16-PREMULTIPLIED
  :G16A16
  :G16
  :A8
  :A16
  :A16-FLOAT
  :A32-FLOAT
  :A8B8G8R8-PREMULTIPLIED
  :B8G8R8X8
  :X8R8G8B8
  :R8G8B8X8
  :X8B8G8R8
  :G8-B8R8-420
  :G8-R8B8-420
  :G8-B8R8-422
  :G8-R8B8-422
  :G8-B8R8-444
  :G8-R8B8-444
  :G10X6-B10X6R10X6-420
  :G12X4-B12X4R12X4-420
  :G16-B16R16-420
  :G8-B8-R8-410
  :G8-R8-B8-410
  :G8-B8-R8-411
  :G8-R8-B8-411
  :G8-B8-R8-420
  :G8-R8-B8-420
  :G8-B8-R8-422
  :G8-R8-B8-422
  :G8-B8-R8-444
  :G8-R8-B8-444
  :G8B8G8R8-422
  :G8R8G8B8-422
  :R8G8B8G8-422
  :B8G8R8G8-422
  :X6G10-X6B10-X6R10-420
  :X6G10-X6B10-X6R10-422
  :X6G10-X6B10-X6R10-444
  :X4G12-X4B12-X4R12-420
  :X4G12-X4B12-X4R12-422
  :X4G12-X4B12-X4R12-444
  :G16-B16-R16-420
  :G16-B16-R16-422
  :G16-B16-R16-444
  :N-FORMATS)  

Values

:B8G8R8A8-PREMULTIPLIED
4 bytes for blue, green, red, alpha. The color values are premultiplied with the alpha value. This is the default memory format for little endianness.
:A8R8G8B8-PREMULTIPLIED
4 bytes for alpha, red, green, blue. The color values are premultiplied with the alpha value. This is the default memory format for big endianness.
:R8G8B8A8-PREMULTIPLIED
4 bytes for red, green, blue, alpha The color values are premultiplied with the alpha value.
:B8G8R8A8
4 bytes for blue, green, red, alpha.
:A8R8G8B8
4 bytes for alpha, red, green, blue.
:R8G8B8A8
4 bytes for red, green, blue, alpha.
:A8B8G8R8
4 bytes for alpha, blue, green, red.
:R8G8B8
3 bytes for red, green, blue. The data is opaque.
:B8G8R8
3 bytes for blue, green, red. The data is opaque.
:R16G16B16
3 guint16 values for red, green, blue. Since 4.6
:R16G16B16A16-PREMULTIPLIED
4 guint16 values for red, green, blue, alpha. The color values are premultiplied with the alpha value. Since 4.6
:R16G16B16A16
4 guint16 values for red, green, blue, alpha. Since 4.6
:R16G16B16-FLOAT
3 half-float values for red, green, blue. The data is opaque. Since 4.6
:R16G16B16A16-FLOAT-PREMULTIPLIED
4 half-float values for red, green, blue and alpha. The color values are premultiplied with the alpha value. Since 4.6
:R16G16B16A16-FLOAT
4 half-float values for red, green, blue and alpha. Since 4.6
:R32G32B32-FLOAT
3 float values for red, green, blue.
:R32G32B32A32-FLOAT-PREMULTIPLIED
4 float values for red, green, blue and alpha. The color values are premultiplied with the alpha value. Since 4.6
:R32G32B32A32-FLOAT
4 float values for red, green, blue and alpha. Since 4.6
:8A8-PREMULTIPLIED
2 bytes for grayscale, alpha. The color values are premultiplied with the alpha value. Since 4.12
:G8A8
2 bytes for grayscale, alpha. Since 4.12
:G8
One byte for grayscale. The data is opaque. Since 4.12
:G16A16-PREMULTIPLIED
2 guint16 values for grayscale, alpha. The color values are premultiplied with the alpha value. Since 4.12
:G16A16
2 guint16 values for grayscale, alpha. Since 4.12
:G16
One guint16 value for grayscale. The data is opaque. Since 4.12
:A8
One byte for alpha. Since 4.12
:A16
One guint16 value for alpha. Since 4.12
:A16-FLOAT
One half-float value for alpha. Since 4.12
:A32-FLOAT
One float value for alpha. Since 4.12
:A8B8G8R8-PREMULTIPLIED
4 bytes for alpha, blue, green, red. The color values are premultiplied with the alpha value. Since 4.14
:B8G8R8X8
4 bytes for blue, green, red, unused. Since 4.14
:X8R8G8B8
4 bytes for unused, red, green, blue. Since 4.14
:R8G8B8X8
4 bytes for red, green, blue, unused. Since 4.14
:X8B8G8R8
4 bytes for unused, blue, green, red. Since 4.14
:G8-B8R8-420
Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cb followed by Cr. Subsampled in both the X and Y direction. Commonly known by the fourcc NV12. Since 4.20
:G8-R8B8-420
Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. Subsampled in both the X and Y direction. Commonly known by the fourcc NV21. Since 4.20
:G8-B8R8-422
Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cb followed by Cr. Subsampled in the X direction. Commonly known by the fourcc NV16. Since 4.20
:G8-R8B8-422
Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. Subsampled in the X direction. Commonly known by the fourcc NV61. Since 4.20
:G8-B8R8-444
Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cb followed by Cr. This format is not subsampled. Commonly known by the fourcc NV24. Since 4.20
:G8-R8B8-444
Multiplane format with 2 planes. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. This format is not subsampled. Commonly known by the fourcc NV42. Since 4.20
:G10X6-B10X6R10X6-420
Multiplane format with 2 planes. Each channel is a 16 bit integer, but only the highest 10 bits are used. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. This format is not subsampled. Commonly known by the fourcc P010. Since 4.20
:G12X4-B12X4R12X4-420
Multiplane format with 2 planes. Each channel is a 16 bit integer, but only the highest 10 bits are used. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. This format is not subsampled. Commonly known by the fourcc P012. Since 4.20
:G16-B16R16-420
Multiplane format with 2 planes. Each channel is a 16 bit integer. The first plane contains the first channel, usually containing luma values. The second plane with interleaved chroma values, Cr followed by Cb. This format is not subsampled. Commonly known by the fourcc P016. Since 4.20
:G8-B8-R8-410
Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction with 4:1 ratio. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction with 4:1 ratio. It is mapped into the 1st channel. Commonly known by the fourcc YUV410. Since 4.20
:G8-R8-B8-410
Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in both the X and Y direction with 4:1 ratio. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in both the X and Y direction with 4:1 ratio. It is mapped into the 3rd channel. Commonly known by the fourcc YVU410. Since 4.20
:G8-B8-R8-411
Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction with 4:1 ratio. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction with 4:1 ratio. It is mapped into the 1st channel. Commonly known by the fourcc YUV411. Since 4.20
:G8-R8-B8-411
Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in the X direction with 4:1 ratio. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in the X direction with 4:1 ratio. It is mapped into the 3rd channel. Commonly known by the fourcc YVU411. Since 4.20
:G8-B8-R8-420
Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. Commonly known by the fourcc YUV420. Since 4.20
:G8-R8-B8-420
Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. Commonly known by the fourcc YVU420. Since 4.20
:G8-B8-R8-422
Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction. It is mapped into the 1st channel. Commonly known by the fourcc YUV422. Since 4.20
:G8-R8-B8-422
Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in the X direction. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in the X direction. It is mapped into the 3rd channel. Commonly known by the fourcc YVU422.
:G8-B8-R8-444
Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. It is mapped into the 1st channel. Commonly known by the fourcc YUV444. Since 4.20
:G8-R8-B8-444
Multiplane format with 3 planes. Each channel is a 8 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the second chroma chanel. Subsampled in the X direction. It is mapped into the 1st channel. The third plane usually contains the first chroma channel. Subsampled in the X direction. It is mapped into the 3rd channel. Commonly known by the fourcc YVU444. Since 4.20
:G8B8G8R8-422
Packed format with subsampled channels. Each channel is a 8 bit integer. The red and blue/chroma channels are subsampled and interleaved with the green/luma channel. Each block contains 2 pixels, so the width must be a multiple of 2. Commonly known by the fourcc YUYV. Since 4.20
:G8R8G8B8-422
Packed format with subsampled channels. Each channel is a 8 bit integer. The red and blue/chroma channels are subsampled and interleaved with the green/luma channel. Each block contains 2 pixels, so the width must be a multiple of 2. Commonly known by the fourcc YVYU. Since 4.20
:R8G8B8G8-422
Packed format with subsampled channels. Each channel is a 8 bit integer. The red and blue/chroma channels are subsampled and interleaved with the green/luma channel. Each block contains 2 pixels, so the width must be a multiple of 2. Commonly known by the fourcc VYUY. Since 4.20
:B8G8R8G8-422
Packed format with subsampled channels. Each channel is a 8 bit integer. The red and blue/chroma channels are subsampled and interleaved with the green/luma channel. Each block contains 2 pixels, so the width must be a multiple of 2. Commonly known by the fourcc UYVY. Since 4.20
:X6G10-X6B10-X6R10-420
Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 10 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. Commonly known by the fourcc S010. Since 4.20
:X6G10-X6B10-X6R10-422
Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 10 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction. It is mapped into the 1st channel. Commonly known by the fourcc S210. Since 4.20
:X6G10-X6B10-X6R10-444
Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 10 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. It is mapped into the 1st channel. Commonly known by the fourcc S410. Since 4.20
:X4G12-X4B12-X4R12-420
Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 12 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. Commonly known by the fourcc S012. Since 4.20
:X4G12-X4B12-X4R12-422
Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 12 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction. It is mapped into the 1st channel. Commonly known by the fourcc S212. Since 4.20
:X4G12-X4B12-X4R12-444
Multiplane format with 3 planes. Each channel is a 16 bit integer. Only the 12 lower bits are used. The remaining ones must be set to 0 by the producer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. It is mapped into the 1st channel. Commonly known by the fourcc S412. Since 4.20
:G16-B16-R16-420
Multiplane format with 3 planes. Each channel is a 16 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in both the X and Y direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in both the X and Y direction. It is mapped into the 1st channel. Commonly known by the fourcc S016. Since 4.20
:G16-B16-R16-422
Multiplane format with 3 planes. Each channel is a 16 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. Subsampled in the X direction. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. Subsampled in the X direction. It is mapped into the 1st channel. Commonly known by the fourcc S216. Since 4.20
:G16-B16-R16-444
Multiplane format with 3 planes. Each channel is a 16 bit integer. The first plane usually contains the luma channel. It is mapped into the 2nd channel. The second plane usually contains the first chroma chanel. It is mapped into the 3rd channel. The third plane usually contains the second chroma channel. It is mapped into the 1st channel. Commonly known by the fourcc S416. Since 4.20
:N-FORMATS
The number of formats. This value will change as more formats get added, so do not rely on its concrete integer.

Details

The gdk:memory-format enumeration describes a format that bytes can have in memory. It describes formats by listing the contents of the memory passed to it. So :A8R8G8B8 will be 1 byte (8 bits) of alpha, followed by a byte each of red, green and blue. It is not endian-dependent, so the :argb32 value of the cairo:format-t enumeration is represented by different memory format values on architectures with different endiannesses.

Its naming is modelled after VkFormat.
 

See also

2025-11-02