Subversion Repositories Kolibri OS

Rev

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