Subversion Repositories Kolibri OS

Rev

Rev 6342 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6342 Rev 6369
1
;-----------------------------------------------------------
1
;-----------------------------------------------------------
-
 
2
;SaveFonForSprite:
-
 
3
; PointerToPicture -> PointerToSpriteBufer
-
 
4
;
-
 
5
;PutFonForSprite:
2
;------------------SaveFonForSprite-------------------------
6
; PointerToSpriteBufer -> PointerToPicture
-
 
7
;
-
 
8
;DrawSprite:
-
 
9
; PointerToEditBufer -> PointerToPicture
3
;-----------------------------------------------------------
10
;-----------------------------------------------------------
4
SaveFonForSprite:
-
 
-
 
11
 
5
 
12
align 4
6
	mov edi,[PointerToSpriteBufer]
13
SaveFonForSprite:
-
 
14
	mov ecx,[SpriteSizeX]
-
 
15
	or ecx,ecx
7
	mov ecx,[SpriteSizeX]
16
	jz .end_f
8
	mov edx,[Picture_SizeX]
17
	mov edx,[Picture_SizeX]
9
	sub edx,[SpriteSizeX]
18
	sub edx,ecx
10
	mov esi,[SpriteCoordinatY]
19
	mov esi,[SpriteCoordinatY]
11
	imul esi,[Picture_SizeX]
20
	imul esi,[Picture_SizeX]
12
	add esi,[SpriteCoordinatX]
21
	add esi,[SpriteCoordinatX]
13
	lea edx,[edx+edx*2]
22
	lea edx,[edx+edx*2]
14
	lea esi,[esi+esi*2]
23
	lea esi,[esi+esi*2]
15
	add esi,[PointerToPicture]
24
	add esi,[PointerToPicture]
-
 
25
	mov edi,[PointerToSpriteBufer]
16
	mov ebx,[SpriteSizeY]
26
	mov ebx,[SpriteSizeY]
17
	mov [counter],ecx
27
	mov [counter],ecx
18
 
28
 
19
	next_line_sprite_save:
29
	.next_line_sprite_save:
-
 
30
	mov ecx,[counter]
20
	mov ecx,[counter]
31
align 4
21
 
-
 
22
	next_pixel_sprite_save:
32
	@@:
23
	movsw
33
	movsw
24
	movsb
34
	movsb
25
	dec ecx
35
	dec ecx
26
	jnz next_pixel_sprite_save
36
	jnz @b
27
 
37
 
28
	add esi,edx
38
	add esi,edx
29
	dec ebx
39
	dec ebx
30
	jnz next_line_sprite_save
40
	jnz .next_line_sprite_save
31
 
41
.end_f:
32
	ret
42
	ret
33
;-----------------------------------------------------------
43
;-----------------------------------------------------------
34
;-------------------PutFonForSprite-------------------------
-
 
35
;-----------------------------------------------------------
-
 
36
PutFonForSprite:
-
 
-
 
44
 
37
 
45
align 4
38
	mov esi,[PointerToSpriteBufer]
46
PutFonForSprite:
-
 
47
	mov ecx,[SpriteSizeX]
-
 
48
	or ecx,ecx
39
	mov ecx,[SpriteSizeX]
49
	jz .end_f
40
	mov edx,[Picture_SizeX]
50
	mov edx,[Picture_SizeX]
41
	sub edx,[SpriteSizeX]
51
	sub edx,ecx
42
	mov edi,[SpriteOldCoordinatY]
52
	mov edi,[SpriteOldCoordinatY]
43
	imul edi,[Picture_SizeX]
53
	imul edi,[Picture_SizeX]
44
	add edi,[SpriteOldCoordinatX]
54
	add edi,[SpriteOldCoordinatX]
45
	lea edx,[edx+edx*2]
55
	lea edx,[edx+edx*2]
46
	lea edi,[edi+edi*2]
56
	lea edi,[edi+edi*2]
47
	add edi,[PointerToPicture]
57
	add edi,[PointerToPicture]
-
 
58
	mov esi,[PointerToSpriteBufer]
48
	mov ebx,[SpriteSizeY]
59
	mov ebx,[SpriteSizeY]
49
	mov [counter],ecx
60
	mov [counter],ecx
50
 
61
 
51
	next_line_sprite_put:
62
	.next_line_sprite_put:
-
 
63
	mov ecx,[counter]
52
	mov ecx,[counter]
64
align 4
53
 
-
 
54
	next_pixel_sprite_put:
65
	@@:
55
	movsw
66
	movsw
56
	movsb
67
	movsb
57
	dec ecx
68
	dec ecx
58
	jnz next_pixel_sprite_put
69
	jnz @b
59
 
70
 
60
	add edi,edx
71
	add edi,edx
61
	dec ebx
72
	dec ebx
62
	jnz next_line_sprite_put
73
	jnz .next_line_sprite_put
63
 
74
.end_f:
64
	ret
75
	ret
65
;-----------------------------------------------------------
76
;-----------------------------------------------------------
66
;------------------DrawFonForSprite-------------------------
-
 
67
;-----------------------------------------------------------
-
 
68
DrawSprite:
-
 
-
 
77
 
69
 
78
align 4
70
	mov esi,[PointerToEditBufer]
79
DrawSprite:
-
 
80
	mov ecx,[SpriteSizeX]
-
 
81
	or ecx,ecx
71
	mov ecx,[SpriteSizeX]
82
	jz .end_f
72
	mov edx,[Picture_SizeX]
83
	mov edx,[Picture_SizeX]
73
	sub edx,[SpriteSizeX]
84
	sub edx,ecx
74
	mov edi,[SpriteCoordinatY]
85
	mov edi,[SpriteCoordinatY]
75
	imul edi,[Picture_SizeX]
86
	imul edi,[Picture_SizeX]
76
	add edi,[SpriteCoordinatX]
87
	add edi,[SpriteCoordinatX]
77
	lea edx,[edx+edx*2]
88
	lea edx,[edx+edx*2]
78
	lea edi,[edi+edi*2]
89
	lea edi,[edi+edi*2]
79
	add edi,[PointerToPicture]
90
	add edi,[PointerToPicture]
-
 
91
	mov esi,[PointerToEditBufer]
80
	mov ebx,[SpriteSizeY]
92
	mov ebx,[SpriteSizeY]
81
	mov [counter],ecx
93
	mov [counter],ecx
82
 
94
 
83
	next_line_sprite_draw:
95
	.next_line_sprite_draw:
-
 
96
	mov ecx,[counter]
84
	mov ecx,[counter]
97
align 4
85
 
-
 
86
	next_pixel_sprite_draw:
98
	@@:
87
	movsw
99
	movsw
88
	movsb
100
	movsb
89
	dec ecx
101
	dec ecx
90
	jnz next_pixel_sprite_draw
102
	jnz @b
91
 
103
 
92
	add edi,edx
104
	add edi,edx
93
	dec ebx
105
	dec ebx
94
	jnz next_line_sprite_draw
106
	jnz .next_line_sprite_draw
95
 
107
.end_f:
96
	ret
108
	ret