Subversion Repositories Kolibri OS

Rev

Rev 6342 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6342 Rev 6369
Line 1... Line 1...
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:
-
 
Line -... Line 11...
-
 
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]
-
 
24
	add esi,[PointerToPicture]
15
	add esi,[PointerToPicture]
25
	mov edi,[PointerToSpriteBufer]
16
	mov ebx,[SpriteSizeY]
26
	mov ebx,[SpriteSizeY]
Line 17... Line 27...
17
	mov [counter],ecx
27
	mov [counter],ecx
18
 
28
 
-
 
29
	.next_line_sprite_save:
19
	next_line_sprite_save:
30
	mov ecx,[counter]
20
	mov ecx,[counter]
-
 
21
 
31
align 4
22
	next_pixel_sprite_save:
32
	@@:
23
	movsw
33
	movsw
24
	movsb
34
	movsb
Line 25... Line 35...
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
 
-
 
32
	ret
-
 
33
;-----------------------------------------------------------
-
 
Line -... Line 41...
-
 
41
.end_f:
34
;-------------------PutFonForSprite-------------------------
42
	ret
35
;-----------------------------------------------------------
43
;-----------------------------------------------------------
-
 
44
 
-
 
45
align 4
36
PutFonForSprite:
46
PutFonForSprite:
37
 
47
	mov ecx,[SpriteSizeX]
38
	mov esi,[PointerToSpriteBufer]
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]
-
 
54
	add edi,[SpriteOldCoordinatX]
44
	add edi,[SpriteOldCoordinatX]
55
	lea edx,[edx+edx*2]
45
	lea edx,[edx+edx*2]
56
	lea edi,[edi+edi*2]
Line 46... Line 57...
46
	lea edi,[edi+edi*2]
57
	add edi,[PointerToPicture]
47
	add edi,[PointerToPicture]
58
	mov esi,[PointerToSpriteBufer]
-
 
59
	mov ebx,[SpriteSizeY]
48
	mov ebx,[SpriteSizeY]
60
	mov [counter],ecx
49
	mov [counter],ecx
-
 
50
 
61
 
51
	next_line_sprite_put:
62
	.next_line_sprite_put:
52
	mov ecx,[counter]
63
	mov ecx,[counter]
53
 
64
align 4
Line 54... Line 65...
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
-
 
61
	dec ebx
-
 
62
	jnz next_line_sprite_put
-
 
Line -... Line 71...
-
 
71
	add edi,edx
63
 
72
	dec ebx
64
	ret
73
	jnz .next_line_sprite_put
-
 
74
.end_f:
-
 
75
	ret
65
;-----------------------------------------------------------
76
;-----------------------------------------------------------
66
;------------------DrawFonForSprite-------------------------
77
 
67
;-----------------------------------------------------------
78
align 4
68
DrawSprite:
79
DrawSprite:
69
 
80
	mov ecx,[SpriteSizeX]
70
	mov esi,[PointerToEditBufer]
81
	or ecx,ecx
71
	mov ecx,[SpriteSizeX]
82
	jz .end_f
72
	mov edx,[Picture_SizeX]
83
	mov edx,[Picture_SizeX]
-
 
84
	sub edx,ecx
73
	sub edx,[SpriteSizeX]
85
	mov edi,[SpriteCoordinatY]
74
	mov edi,[SpriteCoordinatY]
86
	imul edi,[Picture_SizeX]
Line 75... Line 87...
75
	imul edi,[Picture_SizeX]
87
	add edi,[SpriteCoordinatX]
76
	add edi,[SpriteCoordinatX]
88
	lea edx,[edx+edx*2]
-
 
89
	lea edi,[edi+edi*2]
77
	lea edx,[edx+edx*2]
90
	add edi,[PointerToPicture]
78
	lea edi,[edi+edi*2]
-
 
79
	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
 
Line 83... Line 95...
83
	next_line_sprite_draw:
95
	.next_line_sprite_draw:
84
	mov ecx,[counter]
96
	mov ecx,[counter]
85
 
97
align 4
86
	next_pixel_sprite_draw:
98
	@@:
87
	movsw
99
	movsw