53,14 → 53,6 |
; eax = x |
; ebx = y |
;-------------------------------------- |
; check for hardware cursor |
cmp [_display.select_cursor], 0 |
je @f |
cmp [_display.select_cursor], select_cursor |
jne .no_mouseunder |
;-------------------------------------- |
align 4 |
@@: |
; check mouse area for putpixel |
test ecx, 0x04000000 ; don't load to mouseunder area |
jnz .no_mouseunder |
67,8 → 59,6 |
call [_display.check_m_pixel] |
test ecx, ecx ;0xff000000 |
jnz @f |
;-------------------------------------- |
align 4 |
.no_mouseunder: |
;-------------------------------------- |
; imul ebx, [BytesPerScanLine] ; ebx = y * y multiplier |
86,14 → 76,6 |
align 4 |
Vesa20_getpixel32: |
;-------------------------------------- |
; check for hardware cursor |
cmp [_display.select_cursor], 0 |
je @f |
cmp [_display.select_cursor], select_cursor |
jne .no_mouseunder |
;-------------------------------------- |
align 4 |
@@: |
; check mouse area for putpixel |
test ecx, 0x04000000 ; don't load to mouseunder area |
jnz .no_mouseunder |
100,8 → 82,6 |
call [_display.check_m_pixel] |
test ecx, ecx ;0xff000000 |
jnz @f |
;-------------------------------------- |
align 4 |
.no_mouseunder: |
;-------------------------------------- |
; imul ebx, [BytesPerScanLine] ; ebx = y * y multiplier |
300,9 → 280,6 |
cmp [ebp], bl |
jne .skip |
;-------------------------------------- |
; check for hardware cursor |
cmp [_display.select_cursor], 0 |
jne .no_mouseunder |
push ecx |
|
neg ecx |
314,9 → 291,6 |
; check mouse area for putpixel |
call check_mouse_area_for_putpixel |
pop ecx |
;-------------------------------------- |
align 4 |
.no_mouseunder: |
; store to real LFB |
mov [LFB_BASE+edx], ax |
shr eax, 16 |
371,10 → 345,6 |
cmp [ebp], bl |
jne .skip |
;-------------------------------------- |
; check for hardware cursor |
cmp [_display.select_cursor], select_cursor |
jne .no_mouseunder |
|
push ecx |
mov ecx, [putimg.real_sy_and_abs_cy + 4] |
sub ecx, edi |
403,9 → 373,6 |
align 4 |
.no_mouse_area: |
pop ecx |
;-------------------------------------- |
align 4 |
.no_mouseunder: |
; store to real LFB |
mov [LFB_BASE+edx], ax |
shr eax, 16 |
458,10 → 425,6 |
cmp [ebp], bl |
jne .skip |
;-------------------------------------- |
; check for hardware cursor |
cmp [_display.select_cursor], 0 |
jne .no_mouseunder |
|
push ecx |
|
neg ecx |
473,9 → 436,6 |
; check mouse area for putpixel |
call check_mouse_area_for_putpixel |
pop ecx |
;-------------------------------------- |
align 4 |
.no_mouseunder: |
; store to real LFB |
mov [LFB_BASE+edx], eax |
;-------------------------------------- |
535,9 → 495,6 |
cmp [ebp], bl |
jne .skip |
;-------------------------------------- |
; check for hardware cursor |
cmp [_display.select_cursor], select_cursor |
jne .no_mouseunder |
push ecx |
mov ecx, [putimg.real_sy_and_abs_cy + 4] |
sub ecx, edi |
566,9 → 523,6 |
align 4 |
.no_mouse_area: |
pop ecx |
;-------------------------------------- |
align 4 |
.no_mouseunder: |
; store to real LFB |
mov [LFB_BASE+edx], eax |
;-------------------------------------- |
666,9 → 620,6 |
lea edi, [eax+eax*2]; edi = x*3 |
mov eax, [esp+32-8+4] |
;-------------------------------------- |
; check for hardware cursor |
cmp [_display.select_cursor], 0 |
jne @f |
; check mouse area for putpixel |
test eax, 0x04000000 |
jnz @f |
697,9 → 648,6 |
lea edi, [eax+eax*2]; edi = x*3 |
mov eax, [esp+32-8+4] |
;-------------------------------------- |
; check for hardware cursor |
cmp [_display.select_cursor], select_cursor |
jne @f |
; check mouse area for putpixel |
test eax, 0x04000000 |
jnz @f |
745,9 → 693,6 |
lea edi, [ebx+eax*4]; edi = x*4+(y*y multiplier) |
mov eax, [esp+32-8+4]; eax = color |
;-------------------------------------- |
; check for hardware cursor |
cmp [_display.select_cursor], 0 |
jne @f |
; check mouse area for putpixel |
test eax, 0x04000000 |
jnz @f |
775,9 → 720,6 |
lea edi, [ebx+eax*4]; edi = x*4+(y*y multiplier) |
mov eax, [esp+32-8+4]; eax = color |
;-------------------------------------- |
; check for hardware cursor |
cmp [_display.select_cursor], select_cursor |
jne @f |
; check mouse area for putpixel |
test eax, 0x04000000 |
jnz @f |
1211,10 → 1153,6 |
cmp byte [ebp], bl |
jne .skip |
;-------------------------------------- |
; check for hardware cursor |
cmp [_display.select_cursor], 0 |
jne .no_mouseunder |
|
mov ecx, [drbar.real_sx_and_abs_cx] |
sub ecx, edi |
shl ecx, 16 |
1223,9 → 1161,6 |
|
; check mouse area for putpixel |
call check_mouse_area_for_putpixel |
;-------------------------------------- |
align 4 |
.no_mouseunder: |
; store to real LFB |
mov [edx], ax |
shr eax, 16 |
1273,10 → 1208,6 |
cmp byte [ebp], bl |
jne .skip |
;-------------------------------------- |
; check for hardware cursor |
cmp [_display.select_cursor], select_cursor |
jne .no_mouse_area |
|
mov ecx, [drbar.real_sy_and_abs_cy] |
sub ecx, esi |
;-------------------------------------- |
1357,10 → 1288,6 |
cmp byte [ebp], bl |
jne .skip |
;-------------------------------------- |
; check for hardware cursor |
cmp [_display.select_cursor], 0 |
jne .no_mouseunder |
|
mov ecx, [drbar.real_sx_and_abs_cx] |
sub ecx, edi |
shl ecx, 16 |
1369,9 → 1296,6 |
|
; check mouse area for putpixel |
call check_mouse_area_for_putpixel |
;-------------------------------------- |
align 4 |
.no_mouseunder: |
; store to real LFB |
mov [edx], eax |
mov eax, [drbar.color] |
1424,10 → 1348,6 |
cmp byte [ebp], bl |
jne .skip |
;-------------------------------------- |
; check for hardware cursor |
cmp [_display.select_cursor], select_cursor |
jne .no_mouse_area |
|
mov ecx, [drbar.real_sy_and_abs_cy] |
sub ecx, esi |
;-------------------------------------- |
1563,21 → 1483,9 |
add ecx, ebx |
|
mov eax, [esi] |
|
; check for hardware cursor |
cmp [_display.select_cursor], 0 |
je @f |
cmp [_display.select_cursor], select_cursor |
jne .no_mouseunder |
;-------------------------------------- |
align 4 |
@@: |
and eax, 0xffffff |
; check mouse area for putpixel |
call [_display.check_mouse] |
;-------------------------------------- |
align 4 |
.no_mouseunder: |
; store to real LFB |
mov [edi], ax |
shr eax, 16 |
1765,22 → 1673,11 |
align 4 |
.novert: |
push ecx |
; check for hardware cursor |
cmp [_display.select_cursor], 0 |
jne @f |
cmp [_display.select_cursor], select_cursor |
jne .no_mouseunder |
;-------------------------------------- |
align 4 |
@@: |
mov ecx, [esp+20+4] ;x |
shl ecx, 16 |
add ecx, [esp+24+4] ;y |
; check mouse area for putpixel |
call [_display.check_mouse] |
;-------------------------------------- |
align 4 |
.no_mouseunder: |
; store to real LFB |
mov [LFB_BASE+edi], ax |
shr eax, 16 |