
#ifndef ka_screen_h
#define ka_screen_h

#include "inttypes.h"

typedef enum
{ ka_col_depth_256    = 0
, ka_col_depth_NV12
, ka_col_depth_NV21
, ka_col_depth_UYVY
, ka_col_depth_YUY2
, ka_col_depth_YV12
, ka_col_depth_YV16
, ka_col_depth_TBGR12
, ka_col_depth_TBGR15
, ka_col_depth_TBGR16
, ka_col_depth_TBGR32
, ka_col_depth_TRGB12
, ka_col_depth_TRGB15
, ka_col_depth_TRGB16
, ka_col_depth_TRGB32
, ka_col_depth_ABGR12
, ka_col_depth_ABGR15
, ka_col_depth_ABGR16
, ka_col_depth_ABGR32
, ka_col_depth_ARGB12
, ka_col_depth_ARGB15
, ka_col_depth_ARGB16
, ka_col_depth_ARGB32
, ka_col_depth_count
} ka_col_depth;

typedef struct
{
  int width;               // in pixels
  int height;              // in pixels or lines
  ka_col_depth col_depth;  // number of colours (output type)
  int bytesperrow;         // width in bytes
  int log2Bpp;             // log 2 bytes per pixel
  int bytes_per_pixel;     // bytes per pixel
  int xeig;                // desktop x scaling factor
  int yeig;                // desktop y scaling factor
  int greyscale;           // 1 if palette is 256 greys, 0 otherwise
  uint32_t palette[256];   // Palette for 256 colours modes
} ka_screen_t;

#endif
