X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=bootcensus;a=blobdiff_plain;f=src%2Fcensus%2Fgfxutil.h;fp=src%2Fcensus%2Fgfxutil.h;h=feb4d01c102ae2465cc71715ae3e84ba237704c7;hp=0000000000000000000000000000000000000000;hb=10843571c724084c68d33d0438167d400cc8de2e;hpb=f9194c22d8073b69b3e64fc26b9e245b6b54d009 diff --git a/src/census/gfxutil.h b/src/census/gfxutil.h new file mode 100644 index 0000000..feb4d01 --- /dev/null +++ b/src/census/gfxutil.h @@ -0,0 +1,33 @@ +#ifndef GFXUTIL_H_ +#define GFXUTIL_H_ + +#include "inttypes.h" + +#define PACK_RGB16(r, g, b) \ + ((((uint16_t)(r) << 8) & 0xf800) | \ + (((uint16_t)(g) << 3) & 0x7e0) | \ + (((uint16_t)(b) >> 3) & 0x1f)) + +#define UNPACK_R16(c) (((c) >> 8) & 0xf8) +#define UNPACK_G16(c) (((c) >> 3) & 0xfc) +#define UNPACK_B16(c) (((c) << 3) & 0xf8) + +#define PACK_RGB32(r, g, b) \ + ((((uint32_t)(r) & 0xff) << 16) | \ + (((uint32_t)(g) & 0xff) << 8) | \ + ((uint32_t)(b) & 0xff)) + +#define UNPACK_R32(c) (((c) >> 16) & 0xff) +#define UNPACK_G32(c) (((c) >> 8) & 0xff) +#define UNPACK_B32(c) ((c) & 0xff) + +int clip_line(int *x0, int *y0, int *x1, int *y1, int xmin, int ymin, int xmax, int ymax); +void draw_line(int x0, int y0, int x1, int y1, uint32_t color); + +/* scale in 24.8 fixed point */ +void blur_grey_horiz(uint32_t *dest, uint32_t *src, int xsz, int ysz, int radius, int scale); +void blur_grey_vert(uint32_t *dest, uint32_t *src, int xsz, int ysz, int radius, int scale); + +void convimg_rgb24_rgb16(uint16_t *dest, unsigned char *src, int xsz, int ysz); + +#endif /* GFXUTIL_H_ */