Subversion Repositories Kolibri OS

Rev

Rev 6050 | Rev 6176 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6050 Rev 6052
Line 2... Line 2...
2
{
2
{
3
	byte r,g,b;
3
	byte r,g,b;
4
	void DwordToRgb();
4
	void DwordToRgb();
5
	dword RgbToDword();
5
	dword RgbToDword();
6
};
6
} rgb;
7
 
7
 
Line 8... Line 8...
8
void _rgb::DwordToRgb(dword _dword)
8
void _rgb::DwordToRgb(dword _dword)
9
{
9
{
10
	r = _dword & 0xFF; _dword >>= 8;
10
	r = _dword & 0xFF; _dword >>= 8;
11
	g = _dword & 0xFF; _dword >>= 8;
11
	g = _dword & 0xFF; _dword >>= 8;
Line 19... Line 19...
19
	_g = g << 8;
19
	_g = g << 8;
20
	return _b + _g + r;
20
	return _b + _g + r;
21
}
21
}
22
 
22
 
Line 23... Line 23...
23
dword MixColors(dword _base, _overlying, byte a) 
23
:dword MixColors(dword _base, _overlying, byte a) 
24
{
24
{
25
	_rgb rgb1, rgb2, rgb;
25
	_rgb rgb1, rgb2, rgb_final;
26
	byte n_a;
26
	byte n_a;
Line 27... Line 27...
27
 
27
 
28
	rgb1.DwordToRgb(_base);
28
	rgb1.DwordToRgb(_base);
Line 29... Line 29...
29
	rgb2.DwordToRgb(_overlying);
29
	rgb2.DwordToRgb(_overlying);
Line 30... Line 30...
30
 
30
 
31
	n_a = 255 - a;
31
	n_a = 255 - a;
32
 
32
 
Line 33... Line 33...
33
	rgb.b = calc(rgb1.b*a/255) + calc(rgb2.b*n_a/255);
33
	rgb_final.b = calc(rgb1.b*a/255) + calc(rgb2.b*n_a/255);
34
	rgb.g = calc(rgb1.g*a/255) + calc(rgb2.g*n_a/255);
34
	rgb_final.g = calc(rgb1.g*a/255) + calc(rgb2.g*n_a/255);