44 lines
1.4 KiB
C
44 lines
1.4 KiB
C
#ifndef PIXEL_H
|
|
#define PIXEL_H
|
|
|
|
#define PIXELCHANNELS 3
|
|
#ifdef PIX16
|
|
# define PIXELSIZE 2
|
|
# define PIXPACK(x) ((((x)>>8)&0xF800)|(((x)>>5)&0x07E0)|(((x)>>3)&0x001F)) //16bit RGB in 16bit int: ????
|
|
# define PIXRGB(r,g,b) ((((r)<<8)&0xF800)|(((g)<<3)&0x07E0)|(((b)>>3)&0x001F))
|
|
# define PIXR(x) (((x)>>8)&0xF8)
|
|
# define PIXG(x) (((x)>>3)&0xFC)
|
|
# define PIXB(x) (((x)<<3)&0xF8)
|
|
#else
|
|
# define PIXELSIZE 4
|
|
# ifdef PIX32BGRA
|
|
# define PIXPACK(x) ((((x)>>16)&0x0000FF)|((x)&0x00FF00)|(((x)<<16)&0xFF0000)) //24bit BGR in 32bit int: 00BBGGRR
|
|
# define PIXRGB(r,g,b) (((b)<<16)|((g)<<8)|((r)))// (((b)<<16)|((g)<<8)|(r))
|
|
# define PIXR(x) ((x)&0xFF)
|
|
# define PIXG(x) (((x)>>8)&0xFF)
|
|
# define PIXB(x) ((x)>>16)
|
|
# else
|
|
# ifdef PIX32BGRA
|
|
# define PIXPACK(x) ((((x)>>8)&0x0000FF00)|(((x)<<8)&0x00FF0000)|(((x)<<24)&0xFF000000)) //32bit BGRA in 32bit int: BBGGRRAA
|
|
# define PIXRGB(r,g,b) (((b)<<24)|((g)<<16)|((r)<<8))
|
|
# define PIXR(x) (((x)>>8)&0xFF)
|
|
# define PIXG(x) (((x)>>16)&0xFF)
|
|
# define PIXB(x) (((x)>>24)&0xFF)
|
|
# else
|
|
# define PIXPACK(x) (x) //24bit RGB in 32bit int: 00RRGGBB.
|
|
# define PIXRGB(r,g,b) (((r)<<16)|((g)<<8)|(b))
|
|
# define PIXR(x) (((x)>>16)&0xFF)
|
|
# define PIXG(x) (((x)>>8)&0xFF)
|
|
# define PIXB(x) ((x)&0xFF)
|
|
# endif
|
|
# endif
|
|
#endif
|
|
|
|
#ifdef PIX16
|
|
typedef unsigned short pixel;
|
|
#else
|
|
typedef unsigned int pixel;
|
|
#endif
|
|
|
|
#endif // PIXEL_H
|