Rev 7229 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5598 | pavelyakov | 1 | #ifndef INCLUDE_LIBIMG_LOAD_SKIN_H |
2 | #define INCLUDE_LIBIMG_LOAD_SKIN_H |
||
3 | |||
4 | #ifndef INCLUDE_LIBIMG_H |
||
7049 | leency | 5 | #include "../lib/obj/libimg.h" |
5598 | pavelyakov | 6 | #endif |
7 | |||
5773 | leency | 8 | :struct libimg_image { |
7156 | leency | 9 | dword image, w, h, imgsrc; |
5773 | leency | 10 | } skin; |
5408 | leency | 11 | |
5409 | leency | 12 | :void Libimg_LoadImage(dword struct_pointer, file_path) |
5408 | leency | 13 | { |
5409 | leency | 14 | dword image_pointer; |
5408 | leency | 15 | image_pointer = load_image(file_path); |
5421 | leency | 16 | if (!image_pointer) notify("'Error: Image not loaded' -E"); |
5408 | leency | 17 | ESDWORD[struct_pointer] = image_pointer; |
18 | ESDWORD[struct_pointer+4] = DSWORD[image_pointer+4]; |
||
19 | ESDWORD[struct_pointer+8] = DSWORD[image_pointer+8]; |
||
7156 | leency | 20 | ESDWORD[struct_pointer+12] = ESDWORD[image_pointer+24]; |
5409 | leency | 21 | } |
22 | |||
7229 | leency | 23 | :void Libimg_ReplaceColor(dword struct_pointer, w, h, old_color, new_color) |
5409 | leency | 24 | { |
25 | dword i, max_i, image_data; |
||
26 | image_data = ESDWORD[struct_pointer + 24]; |
||
27 | max_i = w * h * 4 + image_data; |
||
7229 | leency | 28 | for (i = image_data; i < max_i; i += 4) if (DSDWORD[i]==old_color) DSDWORD[i] = new_color; |
5598 | pavelyakov | 29 | } |
30 | |||
7229 | leency | 31 | :void Libimg_FillTransparent(dword struct_pointer, w, h, new_color) |
7054 | leency | 32 | { |
7229 | leency | 33 | Libimg_ReplaceColor(struct_pointer, w, h, 0, new_color); |
7054 | leency | 34 | } |
35 | |||
7229 | leency | 36 | :libimg_image icons32draw; |
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"); |
||
41 | Libimg_FillTransparent(icons32draw.image, icons32draw.w, icons32draw.h, bg); |
||
42 | } |
||
43 | if (icon_n>=0) img_draw stdcall(icons32draw.image, x, y, 32, 32, 0, icon_n*32); |
||
44 | } |
||
45 | |||
7906 | leency | 46 | :libimg_image icons16draw; |
47 | :void DrawIcon16(dword x,y, bg, icon_n) { |
||
48 | //load_dll(libimg, #libimg_init,1); |
||
49 | if (!icons16draw.image) { |
||
50 | Libimg_LoadImage(#icons16draw, "/sys/icons16.png"); |
||
51 | Libimg_ReplaceColor(icons16draw.image, icons16draw.w, icons16draw.h, 0xffFFFfff, bg); |
||
52 | Libimg_ReplaceColor(icons16draw.image, icons16draw.w, icons16draw.h, 0xffCACBD6, MixColors(bg, 0, 220)); |
||
53 | } |
||
54 | if (icon_n>=0) img_draw stdcall(icons16draw.image, x, y, 16, 16, 0, icon_n*16); |
||
55 | } |
||
56 | |||
5598 | pavelyakov | 57 | #endif> |