]> 4ch.mooo.com Git - 16.git/blob - 16/w_modex/XBLITBUF.HPP
modified: 16/DOS_GFX.EXE
[16.git] / 16 / w_modex / XBLITBUF.HPP
1 #ifndef X_BLITBUF_HPP\r
2     #define X_BLITBUF_HPP\r
3 \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
10 \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
16 \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
26 \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
30 \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
34 \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
37 \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
41 \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
45 \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
49 \r
50 // PCX functions\r
51 void save_blitbufPCX(char *fname, blitbuf *buf);\r
52 int  load_blitbufPCX(char *fname, blitbuf *buf);\r
53 \r
54 // RAW file functions (320x200 only)\r
55 int  load_blitbufRAW(char *rawname, char *palname, blitbuf *buf);\r
56 \r
57 #endif\r
58 \r