fixed bugs, added progress bar, and more
[dosdemo] / src / gfxutil.h
index cf64487..b46f813 100644 (file)
@@ -4,8 +4,8 @@
 #include "inttypes.h"
 
 #define PACK_RGB16(r, g, b) \
-       (((((uint16_t)(r) >> 3) & 0x1f) << 11) | \
-        ((((uint16_t)(g) >> 2) & 0x3f) << 5) | \
+       ((((uint16_t)(r) << 8) & 0xf800) | \
+        (((uint16_t)(g) << 3) & 0x7e0) | \
         (((uint16_t)(b) >> 3) & 0x1f))
 
 #define UNPACK_R16(c)  (((c) >> 8) & 0xf8)
 #define PACK_RGB32(r, g, b) \
        ((((r) & 0xff) << 16) | (((g) & 0xff) << 8) | ((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, 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);
+/* scale in 24.8 fixed point */
+void blur_grey_horiz(uint16_t *dest, uint16_t *src, int xsz, int ysz, int radius, int scale);
+void blur_grey_vert(uint16_t *dest, uint16_t *src, int xsz, int ysz, int radius, int scale);
+
+void convimg_rgb24_rgb16(uint16_t *dest, unsigned char *src, int xsz, int ysz);
+
+void blitfb(uint16_t *dest, uint16_t *src, int xsz, int ysz, int pitch_pix);
+void blitfb_key(uint16_t *dest, uint16_t *src, int xsz, int ysz, int pitch_pix, uint16_t key);
 
 #endif /* GFXUTIL_H_ */