mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-12-15 19:33:59 +03:00
112 lines
2.3 KiB
PHP
112 lines
2.3 KiB
PHP
|
;-----------------------------------------------------------
|
||
|
;------------------SaveFonForSprite-------------------------
|
||
|
;-----------------------------------------------------------
|
||
|
SaveFonForSprite:
|
||
|
|
||
|
mov edi,[PointerToSpriteBufer]
|
||
|
mov ecx,[SpriteSizeX]
|
||
|
mov edx,[Picture_SizeX]
|
||
|
sub edx,[SpriteSizeX]
|
||
|
mov esi,[SpriteCoordinatY]
|
||
|
imul esi,[Picture_SizeX]
|
||
|
add esi,[SpriteCoordinatX]
|
||
|
lea edx,[edx+edx*2]
|
||
|
lea esi,[esi+esi*2]
|
||
|
add esi,[PointerToPicture]
|
||
|
mov ebx,[SpriteSizeY]
|
||
|
mov [counter],ecx
|
||
|
|
||
|
next_line_sprite_save:
|
||
|
mov ecx,[counter]
|
||
|
|
||
|
next_pixel_sprite_save:
|
||
|
mov eax,[esi]
|
||
|
and eax,0xffffff
|
||
|
mov [edi],ax
|
||
|
shr eax,16
|
||
|
mov [edi+2],al
|
||
|
add esi,3
|
||
|
add edi,3
|
||
|
dec ecx
|
||
|
jnz next_pixel_sprite_save
|
||
|
|
||
|
add esi,edx
|
||
|
dec ebx
|
||
|
jnz next_line_sprite_save
|
||
|
|
||
|
ret
|
||
|
;-----------------------------------------------------------
|
||
|
;-------------------PutFonForSprite-------------------------
|
||
|
;-----------------------------------------------------------
|
||
|
PutFonForSprite:
|
||
|
|
||
|
mov esi,[PointerToSpriteBufer]
|
||
|
mov ecx,[SpriteSizeX]
|
||
|
mov edx,[Picture_SizeX]
|
||
|
sub edx,[SpriteSizeX]
|
||
|
mov edi,[SpriteOldCoordinatY]
|
||
|
imul edi,[Picture_SizeX]
|
||
|
add edi,[SpriteOldCoordinatX]
|
||
|
lea edx,[edx+edx*2]
|
||
|
lea edi,[edi+edi*2]
|
||
|
add edi,[PointerToPicture]
|
||
|
mov ebx,[SpriteSizeY]
|
||
|
mov [counter],ecx
|
||
|
|
||
|
next_line_sprite_put:
|
||
|
mov ecx,[counter]
|
||
|
|
||
|
next_pixel_sprite_put:
|
||
|
mov eax,[esi]
|
||
|
and eax,0xffffff
|
||
|
mov [edi],ax
|
||
|
shr eax,16
|
||
|
mov [edi+2],al
|
||
|
add esi,3
|
||
|
add edi,3
|
||
|
dec ecx
|
||
|
jnz next_pixel_sprite_put
|
||
|
|
||
|
add edi,edx
|
||
|
dec ebx
|
||
|
jnz next_line_sprite_put
|
||
|
|
||
|
ret
|
||
|
;-----------------------------------------------------------
|
||
|
;------------------DrawFonForSprite-------------------------
|
||
|
;-----------------------------------------------------------
|
||
|
DrawSprite:
|
||
|
|
||
|
mov esi,[PointerToEditBufer]
|
||
|
mov ecx,[SpriteSizeX]
|
||
|
mov edx,[Picture_SizeX]
|
||
|
sub edx,[SpriteSizeX]
|
||
|
mov edi,[SpriteCoordinatY]
|
||
|
imul edi,[Picture_SizeX]
|
||
|
add edi,[SpriteCoordinatX]
|
||
|
lea edx,[edx+edx*2]
|
||
|
lea edi,[edi+edi*2]
|
||
|
add edi,[PointerToPicture]
|
||
|
mov ebx,[SpriteSizeY]
|
||
|
mov [counter],ecx
|
||
|
|
||
|
next_line_sprite_draw:
|
||
|
mov ecx,[counter]
|
||
|
|
||
|
next_pixel_sprite_draw:
|
||
|
mov eax,[esi]
|
||
|
and eax,0xffffff
|
||
|
mov [edi],ax
|
||
|
shr eax,16
|
||
|
mov [edi+2],al
|
||
|
add esi,3
|
||
|
add edi,3
|
||
|
dec ecx
|
||
|
jnz next_pixel_sprite_draw
|
||
|
|
||
|
add edi,edx
|
||
|
dec ebx
|
||
|
jnz next_line_sprite_draw
|
||
|
|
||
|
ret
|