adding fast blur function
[dosdemo] / src / gfxutil.h
index 603c11d..cf64487 100644 (file)
@@ -1,8 +1,12 @@
 #ifndef GFXUTIL_H_
 #define GFXUTIL_H_
 
+#include "inttypes.h"
+
 #define PACK_RGB16(r, g, b) \
-       (((((r) >> 3) & 0x1f) << 11) | ((((g) >> 2) & 0x3f) << 5) | (((b) >> 3) & 0x1f))
+       (((((uint16_t)(r) >> 3) & 0x1f) << 11) | \
+        ((((uint16_t)(g) >> 2) & 0x3f) << 5) | \
+        (((uint16_t)(b) >> 3) & 0x1f))
 
 #define UNPACK_R16(c)  (((c) >> 8) & 0xf8)
 #define UNPACK_G16(c)  (((c) >> 3) & 0xfc)
@@ -14,4 +18,7 @@
 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, unsigned short color);
 
+void blur_grey_horiz(uint16_t *dest, uint16_t *src, int xsz, int ysz, int radius);
+void blur_grey_vert(uint16_t *dest, uint16_t *src, int xsz, int ysz, int radius);
+
 #endif /* GFXUTIL_H_ */