Rev 7156 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7156 | Rev 7229 | ||
---|---|---|---|
Line 18... | Line 18... | ||
18 | ESDWORD[struct_pointer+4] = DSWORD[image_pointer+4]; |
18 | ESDWORD[struct_pointer+4] = DSWORD[image_pointer+4]; |
19 | ESDWORD[struct_pointer+8] = DSWORD[image_pointer+8]; |
19 | ESDWORD[struct_pointer+8] = DSWORD[image_pointer+8]; |
20 | ESDWORD[struct_pointer+12] = ESDWORD[image_pointer+24]; |
20 | ESDWORD[struct_pointer+12] = ESDWORD[image_pointer+24]; |
21 | } |
21 | } |
Line 22... | Line 22... | ||
22 | 22 | ||
23 | :void Libimg_FillTransparent(dword struct_pointer, w, h, new_transparent_color) |
23 | :void Libimg_ReplaceColor(dword struct_pointer, w, h, old_color, new_color) |
24 | { |
24 | { |
25 | dword i, max_i, image_data; |
25 | dword i, max_i, image_data; |
26 | image_data = ESDWORD[struct_pointer + 24]; |
26 | image_data = ESDWORD[struct_pointer + 24]; |
27 | max_i = w * h * 4 + image_data; |
27 | max_i = w * h * 4 + image_data; |
28 | for (i = image_data; i < max_i; i += 4) if (DSDWORD[i]==0) DSDWORD[i] = new_transparent_color; |
28 | for (i = image_data; i < max_i; i += 4) if (DSDWORD[i]==old_color) DSDWORD[i] = new_color; |
Line 29... | Line 29... | ||
29 | } |
29 | } |
30 | 30 | ||
- | 31 | :void Libimg_FillTransparent(dword struct_pointer, w, h, new_color) |
|
- | 32 | { |
|
- | 33 | Libimg_ReplaceColor(struct_pointer, w, h, 0, new_color); |
|
31 | :void Libimg_ReplaceColor(dword struct_pointer, w, h, old_color, new_color) |
34 | } |
- | 35 | ||
32 | { |
36 | :libimg_image icons32draw; |
33 | dword i, max_i, image_data; |
37 | :void DrawIcon32(dword x,y, bg, icon_n) { |
- | 38 | //load_dll(libimg, #libimg_init,1); |
|
- | 39 | if (!icons32draw.image) { |
|
- | 40 | Libimg_LoadImage(#icons32draw, "/sys/icons32.png"); |
|
34 | image_data = ESDWORD[struct_pointer + 24]; |
41 | Libimg_FillTransparent(icons32draw.image, icons32draw.w, icons32draw.h, bg); |
35 | max_i = w * h * 4 + image_data; |
42 | } |
Line 36... | Line 43... | ||
36 | for (i = image_data; i < max_i; i += 4) if (DSDWORD[i]==old_color) DSDWORD[i] = new_color; |
43 | if (icon_n>=0) img_draw stdcall(icons32draw.image, x, y, 32, 32, 0, icon_n*32); |
37 | } |
44 | } |