Rev 255 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 255 | Rev 1643 | ||
---|---|---|---|
1 | ;----------------------------------------------------------- |
1 | ;----------------------------------------------------------- |
2 | ;-------analizing picture to palette------------------------ |
2 | ;-------analizing picture to palette------------------------ |
3 | ;----------------------------------------------------------- |
3 | ;----------------------------------------------------------- |
4 | analizing_picture_to_palette: |
4 | analizing_picture_to_palette: |
5 | - | ||
6 | mov eax,[Picture_SizeX] |
5 | mov eax,[Picture_SizeX] |
7 | mov ebx,[Picture_SizeY] |
6 | mov ebx,[Picture_SizeY] |
8 | imul eax,ebx |
7 | imul eax,ebx |
9 | mov ecx,eax |
8 | mov ecx,eax |
10 | mov edx,[PointerToPicture] |
9 | mov edx,[PointerToPicture] |
11 | mov esi,1 ;counter colors in palette |
10 | mov esi,1 ;counter colors in palette |
12 | 11 | ||
13 | ;put firs color of picture how one color in palette |
12 | ;put firs color of picture how one color in palette |
14 | mov ebp,[PointerToPalette] |
13 | mov ebp,[PointerToPalette] |
15 | mov eax,[edx] |
14 | mov eax,[edx] |
16 | and eax,0xffffff |
15 | and eax,0xffffff |
17 | mov [ebp],eax |
16 | mov [ebp],eax |
18 | 17 | ||
19 | analizing_to_palette: |
18 | analizing_to_palette: |
20 | mov eax,[edx] |
19 | mov eax,[edx] |
21 | and eax,0xffffff |
20 | and eax,0xffffff |
22 | - | ||
23 | mov edi,esi |
21 | mov edi,esi |
24 | mov ebp,[PointerToPalette] |
22 | mov ebp,[PointerToPalette] |
- | 23 | ||
25 | next_color_in_palette: |
24 | next_color_in_palette: |
26 | mov ebx,[ebp] |
25 | mov ebx,[ebp] |
27 | and ebx,0xffffff |
26 | and ebx,0xffffff |
28 | cmp ebx,eax ;this is color have in palette |
27 | cmp ebx,eax ;this is color have in palette |
29 | je exit_loop_palette |
28 | je exit_loop_palette |
- | 29 | ||
30 | add ebp,4 |
30 | add ebp,4 |
31 | dec edi |
31 | dec edi |
32 | jnz next_color_in_palette |
32 | jnz next_color_in_palette |
33 | 33 | ||
34 | inc esi |
34 | inc esi |
35 | cmp esi,256 ;256 colors |
35 | cmp esi,256 ;256 colors |
36 | ja more_than_256_colors |
36 | ja more_than_256_colors |
- | 37 | ||
37 | mov ebp,[PointerToPalette] |
38 | mov ebp,[PointerToPalette] |
38 | mov ebx,esi |
39 | mov ebx,esi |
39 | dec ebx |
40 | dec ebx |
40 | shl ebx,2 |
41 | shl ebx,2 |
41 | add ebp,ebx |
42 | add ebp,ebx |
42 | mov [ebp],ax |
43 | mov [ebp],ax |
43 | shr eax,16 |
44 | shr eax,16 |
44 | mov [ebp+2],al |
45 | mov [ebp+2],al |
45 | 46 | ||
46 | exit_loop_palette: |
47 | exit_loop_palette: |
47 | - | ||
48 | add edx,3 |
48 | add edx,3 |
49 | dec ecx |
49 | dec ecx |
50 | jnz analizing_to_palette |
50 | jnz analizing_to_palette |
51 | - | ||
52 | 51 | ||
53 | more_than_256_colors: |
52 | more_than_256_colors: |
54 | mov eax,esi |
- | |
55 | 53 | mov eax,esi |
|
56 | ret |
54 | ret |