5093,6 → 5093,20 |
;ecx = [size x]*65536 + [size y] |
;edx = [start x]*65536 + [start y] |
pushad |
inc [mouse_pause] |
; Check of use of the hardware cursor. |
cmp [disable_mouse],__sys_disable_mouse |
jne @f |
; Since the test for the coordinates of the mouse should not be used, |
; then use the call [disable_mouse] is not possible! |
cmp dword [MOUSE_VISIBLE],dword 0 |
jne @f |
pushf |
cli |
call draw_mouse_under |
popf |
mov [MOUSE_VISIBLE],dword 1 |
@@: |
mov edi,ebx |
mov eax,edx |
shr eax,16 |
5105,38 → 5119,48 |
and edx,0xffff |
mov esi,ecx |
; ecx - size x, edx - size y |
|
mov ebp,edx |
dec ebp |
lea ebp,[ebp*3] |
|
imul ebp,esi |
|
mov esi,ecx |
dec esi |
lea esi,[esi*3] |
|
add ebp,esi |
add ebp,edi |
|
add ebx,edx |
|
.start_y: |
push ecx |
push ecx edx |
.start_x: |
push eax ebx ecx edx esi edi |
push eax ebx ecx |
add eax,ecx |
add ebx,edx |
|
call dword [GETPIXEL] ; eax - x, ebx - y |
pop edi esi |
|
mov eax,ecx |
pop edx ecx |
mov [ebp],cx |
shr ecx,16 |
mov [ebp+2],cl |
|
push ecx edx |
|
dec edx |
lea edx,[edx*3] |
imul edx,esi |
pop ecx ebx eax |
sub ebp,3 |
dec ecx |
lea ecx,[ecx*3] |
add edx,ecx |
add edx,edi |
mov [edx],ax |
shr eax,16 |
mov [edx+2],al |
|
pop edx ecx ebx eax |
|
dec ecx |
jnz .start_x |
pop ecx |
pop edx ecx |
dec ebx |
dec edx |
jnz .start_y |
dec [mouse_pause] |
; Check of use of the hardware cursor. |
cmp [disable_mouse],__sys_disable_mouse |
jne @f |
call [draw_pointer] |
@@: |
popad |
ret |
|