Function 34 - who owner the pixel on the screen

git-svn-id: svn://kolibrios.org@2511 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Marat Zakiyanov (Mario79)
2012-03-27 13:25:30 +00:00
parent 8cdca726a0
commit a787d74980
4 changed files with 48 additions and 3 deletions

View File

@@ -154,7 +154,7 @@ iglobal
dd undefined_syscall ; 31-reserved
dd undefined_syscall ; 32-reserved
dd undefined_syscall ; 33-reserved
dd undefined_syscall ; 34-reserved
dd syscall_getpixel_WinMap ; 34-GetPixel WinMap
dd syscall_getpixel ; 35-GetPixel
dd syscall_getarea ; 36-GetArea
dd readmousepos ; 37-GetMousePosition_ScreenRelative,.

View File

@@ -1723,6 +1723,19 @@ dd 1675
* <20><><EFBFBD><><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><><E2A5AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
<><EFBFBD>.
======================================================================
========= <20><EFBFBD><E3ADAA><EFBFBD> 34 - 㧭<><E3A7AD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><E0A8AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><20><><EFBFBD>. =========
======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* eax = 34 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
* ebx = x-<2D><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> (<28><EFBFBD><E2ADAE>⥫쭮 <20><><EFBFBD>)
* ecx = y-<2D><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> (<28><EFBFBD><E2ADAE>⥫쭮 <20><><EFBFBD>)
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
* eax = 0x000000XX - <20><><20><EFBFBD><E0A8AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1ABAE> <20><><EFBFBD><EFBFBD> N
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A5AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD><EFBFBD> ebx <20> ecx <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0
* <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [_WinMapAddress]
======================================================================
============ <20><EFBFBD><E3ADAA><EFBFBD> 35 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><><20><> <20><><EFBFBD>. ============
======================================================================

View File

@@ -1701,6 +1701,19 @@ Remarks:
* At process/thread creation the current folder will be inherited
from the parent.
======================================================================
========= Function 34 - who owner the pixel on the screen. ===========
======================================================================
Parameters:
* eax = 34 - function number
* ebx = x-coordinate (relative to the display)
* ecx = y-coordinate (relative to the display)
Returned value:
* eax = 0x000000XX - owner of pixel the slot window N
If incorrect values ebx and ecx then function returns 0
* The function takes the value from the area [_WinMapAddress]
======================================================================
======= Function 35 - read the color of a pixel on the screen. =======
======================================================================

View File

@@ -4672,9 +4672,28 @@ syscall_cdaudio: ; CD
call .free
; pop eax
ret
;-----------------------------------------------------------------------------
align 4
syscall_getpixel_WinMap: ; GetPixel WinMap
cmp ebx, [Screen_Max_X]
jbe @f
cmp ecx, [Screen_Max_Y]
jbe @f
xor eax, eax
jmp .store
;--------------------------------------
align 4
@@:
mov eax, [d_width_calc_area + ecx*4]
add eax, [_WinMapAddress]
movzx eax, byte[eax+ebx] ; get value for current point
;--------------------------------------
align 4
.store:
mov [esp + 32], eax
ret
;-----------------------------------------------------------------------------
align 4
syscall_getpixel: ; GetPixel
mov ecx, [Screen_Max_X]
inc ecx