1 #ifndef X_BLITBUF_HPP
\r
2 #define X_BLITBUF_HPP
\r
4 // Basic BlitBuf functions
\r
5 void clear_blitbuf(blitbuf *buf);
\r
6 void fill_blitbuf(BYTE color, blitbuf *buf);
\r
7 void alloc_blitbuf(blitbuf *buf, DIST xsize, DIST ysize);
\r
8 void lin_2_pln_blitbuf(blitbuf *buf);
\r
9 void pln_2_lin_blitbuf(blitbuf *buf);
\r
11 // Adjust color in blitbuf
\r
12 void greyscale_blitbuf(blitbuf *buf);
\r
13 void RGB_blitbuf(blitbuf *buf);
\r
14 void brighten_blitbuf(SBYTE factor, blitbuf *buf);
\r
15 void stretch_blitbuf(BYTE factor, blitbuf *buf); // factor = 1/16 units
\r
17 // Image processing: These expect a linear blitbuf
\r
18 void scale_blitbuf(DIST dest_x, DIST dest_y,
\r
19 blitbuf *buf1, blitbuf *buf2 = NULL);
\r
20 void vertical_scale_blitbuf(DIST dest_y, blitbuf *buf1, blitbuf *buf2 = NULL);
\r
21 void flip_vertical_blitbuf(blitbuf *buf);
\r
22 void flip_horizontal_blitbuf(blitbuf *buf);
\r
23 void pixelize(DIST pixfactor, blitbuf *buf); // Not written yet
\r
24 void scale_scanline(BYTE *source, BYTE *dest, DIST smap_size,
\r
25 DIST dmap_size, DIST dline_size);
\r
27 // Image Convolution by a 3x3 kernel (linear)
\r
28 void GREYconvolve_blitbuf(BYTE *kernel, blitbuf *buf); // Not written yet
\r
29 void RGBconvolve_blitbuf(BYTE *kernel, blitbuf *buf); // Not written yet
\r
31 // Vanilla blits can be any size, anywhere
\r
32 void vanilla_bitblitX(COORD x, COORD y, blitbuf *buf);
\r
33 void vanilla_getblitX(COORD x, COORD y, blitbuf *buf);
\r
35 // Transparent blits must be aligned and 0 is the "transparent" value
\r
36 void transparent_bitblitX(COORD x, COORD y, blitbuf *buf);
\r
38 // Aligned blits must have X and XSIZE evenly divisible by 4
\r
39 void aligned_bitblitX(COORD x, COORD y, blitbuf *buf);
\r
40 void aligned_getblitX(COORD x, COORD y, blitbuf *buf);
\r
42 // Planar blits must be aligned and also be ordered in 4-planar fashion
\r
43 void planar_bitblitX(COORD x, COORD y, blitbuf *buf);
\r
44 void planar_getblitX(COORD x, COORD y, blitbuf *buf);
\r
46 // Wide blits must be planar and are assumed to be as wide as the screen
\r
47 void wide_bitblitX(COORD y, blitbuf *buf);
\r
48 void wide_getblitX(COORD y, blitbuf *buf);
\r
51 void save_blitbufPCX(char *fname, blitbuf *buf);
\r
52 int load_blitbufPCX(char *fname, blitbuf *buf);
\r
54 // RAW file functions (320x200 only)
\r
55 int load_blitbufRAW(char *rawname, char *palname, blitbuf *buf);
\r