Types of supported pixel formats
#include <screen/screen.h>
enum { SCREEN_FORMAT_BYTE = 1, SCREEN_FORMAT_RGBA4444 = 2, SCREEN_FORMAT_RGBX4444 = 3, SCREEN_FORMAT_RGBA5551 = 4, SCREEN_FORMAT_RGBX5551 = 5, SCREEN_FORMAT_RGB565 = 6, SCREEN_FORMAT_RGB888 = 7, SCREEN_FORMAT_RGBA8888 = 8, SCREEN_FORMAT_RGBX8888 = 9, SCREEN_FORMAT_YVU9 = 10, SCREEN_FORMAT_YUV420 = 11, SCREEN_FORMAT_NV12 = 12, SCREEN_FORMAT_YV12 = 13, SCREEN_FORMAT_UYVY = 14, SCREEN_FORMAT_YUY2 = 15, SCREEN_FORMAT_YVYU = 16, SCREEN_FORMAT_V422 = 17, SCREEN_FORMAT_AYUV = 18, SCREEN_FORMAT_NFORMATS };
This pixel format represents each pixel in the following order (high byte to low byte): RRRR RGGG GGGB BBBB
8-bit Y plane and 8-bit 4x4 subsampled U and V planes. Registered by Intel.
8-bit Y plane and 2x2 subsampled, interleaved U and V planes.
8-bit Y plane and 8-bit 2x2 subsampled U and V planes.
YUV 4:2:2 - Y sampled at every pixel, U and V sampled at every second pixel horizontally on each line. A macropixel contains 2 pixels in 1 uint32.
YUV 4:2:2 - as in UYVY, but with different component ordering within the uint32 macropixel.
YUV 4:2:2 - as in UYVY, but with different component ordering within the uint32 macropixel.
Inverted version of UYVY.
Combined YUV and alpha
Formats with an alpha channel will have source alpha enabled automatically. Applications that want the Screen API to disregard the alpha channel can choose a pixel format with an X.