Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1032 Lrz 1
//Load BMP by Veliant
2
 
3
struct readimage{
4
	dword func, param1, param2, size, buffer;
5
	byte z;
6
	dword name;
7
};
8
 
9
void Put_Image(dword x,y,w,h,name)
10
{
11
	int i, j, size, off, off2;
12
	byte r, g, b;
13
	readimage image;
14
	dword buf;
15
	size=w*h*3+100;
16
	buf=malloc(size);
17
	image.func = 0;
18
	image.param1 = 0;
19
	image.param2 = 0;
20
	image.size = size;
21
	image.buffer = buf;
22
	image.z = 0;
23
	image.name = #path;
24
	EAX = 70;
25
	EBX = #image;
26
	$int 0x40;
27
 
28
	for(i=0;i
29
		for (j=0;j
30
		{
31
			off=w*3*i+buf+0x36;
32
			off2=w-j*3+off;
33
			off=j*3+off;
34
 
35
			r=ESBYTE[off2-3];
36
			g=ESBYTE[off2-2];
37
			b=ESBYTE[off2-1];
38
			ESBYTE[off2-3]=ESBYTE[off];
39
			ESBYTE[off2-2]=ESBYTE[off+1];
40
			ESBYTE[off2-1]=ESBYTE[off+2];
41
			ESBYTE[off]=r;
42
			ESBYTE[off+1]=g;
43
			ESBYTE[off+2]=b;
44
		}
45
	size=w*h;
46
	for(i=0;i
47
	{
48
		off=buf+0x36;
49
		off2=size-i*3+off;
50
		off=i*3+off;
51
 
52
		r=ESBYTE[off2-3];
53
		g=ESBYTE[off2-2];
54
		b=ESBYTE[off2-1];
55
		ESBYTE[off2-3]=ESBYTE[off];
56
		ESBYTE[off2-2]=ESBYTE[off+1];
57
		ESBYTE[off2-1]=ESBYTE[off+2];
58
		ESBYTE[off]=r;
59
		ESBYTE[off+1]=g;
60
		ESBYTE[off+2]=b;
61
	}
62
	EAX = 7;
63
	EBX = buf+0x36;
64
	ECX = w<<16+h;
65
	EDX = x<<16+y+skin_width;
66
	$int 0x40
67
}