Rev 6052 | Rev 6266 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6052 | Rev 6176 | ||
---|---|---|---|
- | 1 | #ifndef INCLUDE_RGB_H |
|
- | 2 | #define INCLUDE_RGB_H |
|
- | 3 | #print "[include |
|
1 | struct _rgb |
4 | |
2 | { |
5 | struct _rgb |
3 | byte r,g,b; |
6 | { |
4 | void DwordToRgb(); |
7 | byte r,g,b; |
5 | dword RgbToDword(); |
8 | void DwordToRgb(); |
6 | } rgb; |
9 | dword RgbToDword(); |
7 | 10 | } rgb; |
|
8 | void _rgb::DwordToRgb(dword _dword) |
11 | |
9 | { |
12 | void _rgb::DwordToRgb(dword _dword) |
10 | r = _dword & 0xFF; _dword >>= 8; |
13 | { |
11 | g = _dword & 0xFF; _dword >>= 8; |
14 | r = _dword & 0xFF; _dword >>= 8; |
12 | b = _dword & 0xFF; _dword >>= 8; |
15 | g = _dword & 0xFF; _dword >>= 8; |
13 | } |
16 | b = _dword & 0xFF; _dword >>= 8; |
14 | 17 | } |
|
15 | dword _rgb::RgbToDword() |
18 | |
16 | { |
19 | dword _rgb::RgbToDword() |
17 | dword _b, _g; |
20 | { |
18 | _b = b << 16; |
21 | dword _b, _g; |
19 | _g = g << 8; |
22 | _b = b << 16; |
20 | return _b + _g + r; |
23 | _g = g << 8; |
21 | } |
24 | return _b + _g + r; |
22 | 25 | } |
|
23 | :dword MixColors(dword _base, _overlying, byte a) |
26 | |
24 | { |
27 | :dword MixColors(dword _base, _overlying, byte a) |
25 | _rgb rgb1, rgb2, rgb_final; |
28 | { |
26 | byte n_a; |
29 | _rgb rgb1, rgb2, rgb_final; |
27 | 30 | byte n_a; |
|
28 | rgb1.DwordToRgb(_base); |
31 | |
29 | rgb2.DwordToRgb(_overlying); |
32 | rgb1.DwordToRgb(_base); |
30 | 33 | rgb2.DwordToRgb(_overlying); |
|
31 | n_a = 255 - a; |
34 | |
32 | 35 | n_a = 255 - a; |
|
33 | rgb_final.b = calc(rgb1.b*a/255) + calc(rgb2.b*n_a/255); |
36 | |
34 | rgb_final.g = calc(rgb1.g*a/255) + calc(rgb2.g*n_a/255); |
37 | rgb_final.b = calc(rgb1.b*a/255) + calc(rgb2.b*n_a/255); |
35 | rgb_final.r = calc(rgb1.r*a/255) + calc(rgb2.r*n_a/255); |
38 | rgb_final.g = calc(rgb1.g*a/255) + calc(rgb2.g*n_a/255); |
36 | 39 | rgb_final.r = calc(rgb1.r*a/255) + calc(rgb2.r*n_a/255); |
|
37 | return rgb_final.RgbToDword(); |
40 | |
38 | }><>><> |
41 | return rgb_final.RgbToDword(); |
39 | 42 | } |
|
- | 43 | ||
- | 44 | #endif><>><> |
|
40 | 45 |