forked from KolibriOS/kolibrios
Function 25 - put image area on the background layer
git-svn-id: svn://kolibrios.org@2509 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
378aed908b
commit
a540a71a13
@ -145,7 +145,7 @@ iglobal
|
||||
dd sys_settime ; 22-setting date,time,clock and alarm-clock
|
||||
dd sys_wait_event_timeout ; 23-TimeOutWaitForEvent
|
||||
dd syscall_cdaudio ; 24-PlayCdTrack,StopCd and GetCdPlaylist
|
||||
dd undefined_syscall ; 25-reserved
|
||||
dd syscall_putarea_backgr ; 25-Put Area to background
|
||||
dd sys_getsetup ; 26-GetMidiBase,GetKeymap,GetShiftKeymap,.
|
||||
dd undefined_syscall ; 27-reserved
|
||||
dd undefined_syscall ; 28-reserved
|
||||
|
@ -1506,6 +1506,26 @@ dd 1675
|
||||
* ”γ<CEB3>ζ¨ο ―®¤¤¥ΰ¦¨Ά ¥βαο β®«μ<C2AB>® ¤«ο ATAPI-γαβΰ®©αβΆ (CD ¨ DVD).
|
||||
* <20>ਬ¥ΰ®¬ ¨α―®«μ§®Ά ¨ο δγ<CEB3>樨 οΆ«ο¥βαο ―ΰ¨«®¦¥¨¥ CD_tray.
|
||||
|
||||
======================================================================
|
||||
========== ”ãªæ¨ï 25 - § ¯¨á âì ®¡« áâì á«®© ä® . ===============
|
||||
======================================================================
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 25 - ®¬¥à äãªæ¨¨
|
||||
* ebx = 㪠§ â¥«ì ¯à¥¤¢ à¨â¥«ì® ¢ë¤¥«¥ãî ®¡« áâì ¯ ¬ïâ¨,
|
||||
£¤¥ à §¬¥é¥® ¨á室®¥ ¨§®¡à ¦¥¨¥ ¢ ä®à¬ ⥠BBGGRRTTBBGGRRTT...
|
||||
* ecx = [à §¬¥à ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ y]
|
||||
* edx = [ª®®à¤¨ â ¯® ®á¨ x]*65536 + [ª®®à¤¨ â ¯® ®á¨ y]
|
||||
‚®§¢à é ¥¬®¥ § 票¥:
|
||||
* äãªæ¨ï ¥ ¢®§¢à é ¥â § 票ï
|
||||
‡ ¬¥ç ¨ï:
|
||||
* Š®®à¤¨ âë ®¡« á⨠- íâ® ª®®à¤¨ âë ¢¥à奣® «¥¢®£® 㣫
|
||||
®¡« á⨠®â®á¨â¥«ì® íªà .
|
||||
* <20> §¬¥à ¨§®¡à ¦¥¨ï ¢ ¡ ©â å ¥áâì 4*xsize*ysize.
|
||||
* TT - ¡ ©â 㪠§ â¥«ì ¯à®§à ç®áâ¨, ¢ áâ®ï饥 ¢à¥¬ï:
|
||||
®â 1 ¤® FF - ¥¯à®§à ç®, ®â 0 - ¯à®§à ç®.
|
||||
* ”ãªæ¨ï à §¬¥é ¥â ¨§®¡à ¦¥¨¥ ¥ ä®®¢®¥ ¨§®¡à ¦¥¨¥ (ä.15),
|
||||
¯àï¬ãî ¢ LFB. Ž¯æ¨¨ ä.15 ¤«ï ä. 25 ¥ ¨¬¥îâ á¬ëá« .
|
||||
|
||||
======================================================================
|
||||
===== ”γ<CEB3>ζ¨ο 26, ―®¤δγ<CEB3>ζ¨ο 1 - ―®«γη¨βμ ΅ §®Άλ© ―®ΰβ MPU MIDI. =====
|
||||
======================================================================
|
||||
|
@ -1491,6 +1491,26 @@ Returned value:
|
||||
Remarks:
|
||||
* The function is supported only for ATAPI devices (CD and DVD).
|
||||
* An example of usage of the function is the application CD_tray.
|
||||
|
||||
======================================================================
|
||||
======= Function 25 - put image area on the background layer. ========
|
||||
======================================================================
|
||||
Paramters:
|
||||
* eax = 25 - function number
|
||||
* ebx = pointer to the previously allocated memory area,
|
||||
where placed the source images in a format BBGGRRTTBBGGRRTT...
|
||||
* ecx = [size on axis x]*65536 + [size on axis y]
|
||||
* edx = [coordinate on axis x]*65536 + [coordinate on axis y]
|
||||
Returned value:
|
||||
* function does not return value
|
||||
Remarks:
|
||||
* Coordinates of the image are coordinates of the upper left corner
|
||||
of the image relative to the screen.
|
||||
* Size of the image in bytes is 4*xsize*ysize
|
||||
* TT - byte pointer of transparency, at current version:
|
||||
1 to FF - opaque, 0 - transparent.
|
||||
* The function places the image directly to LFB. It is not for
|
||||
background image f.15. Options f.15 to f.25 does not make sense.
|
||||
|
||||
======================================================================
|
||||
======== Function 26, subfunction 1 - get MPU MIDI base port. ========
|
||||
|
@ -4687,9 +4687,8 @@ syscall_getpixel: ; GetPixel
|
||||
call dword [GETPIXEL]; eax - x, ebx - y
|
||||
mov [esp + 32], ecx
|
||||
ret
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
align 4
|
||||
|
||||
syscall_getarea:
|
||||
;eax = 36
|
||||
;ebx = pointer to bufer for img BBGGRRBBGGRR...
|
||||
@ -4725,9 +4724,12 @@ syscall_getarea:
|
||||
add ebp, edi
|
||||
|
||||
add ebx, edx
|
||||
|
||||
;--------------------------------------
|
||||
align 4
|
||||
.start_y:
|
||||
push ecx edx
|
||||
;--------------------------------------
|
||||
align 4
|
||||
.start_x:
|
||||
push eax ebx ecx
|
||||
add eax, ecx
|
||||
@ -4749,9 +4751,89 @@ syscall_getarea:
|
||||
jnz .start_y
|
||||
popad
|
||||
ret
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
align 4
|
||||
syscall_putarea_backgr:
|
||||
;eax = 25
|
||||
;ebx = pointer to bufer for img BBGGRRBBGGRR...
|
||||
;ecx = [size x]*65536 + [size y]
|
||||
;edx = [start x]*65536 + [start y]
|
||||
pushad
|
||||
mov edi, ebx
|
||||
mov eax, edx
|
||||
shr eax, 16
|
||||
mov ebx, edx
|
||||
and ebx, 0xffff
|
||||
dec eax
|
||||
dec ebx
|
||||
; eax - x, ebx - y
|
||||
mov edx, ecx
|
||||
shr ecx, 16
|
||||
and edx, 0xffff
|
||||
mov esi, ecx
|
||||
; ecx - size x, edx - size y
|
||||
mov ebp, edx
|
||||
dec ebp
|
||||
shl ebp, 2
|
||||
|
||||
imul ebp, esi
|
||||
|
||||
mov esi, ecx
|
||||
dec esi
|
||||
shl esi, 2
|
||||
|
||||
add ebp, esi
|
||||
add ebp, edi
|
||||
|
||||
add ebx, edx
|
||||
;--------------------------------------
|
||||
align 4
|
||||
.start_y:
|
||||
push ecx edx
|
||||
;--------------------------------------
|
||||
align 4
|
||||
.start_x:
|
||||
push eax ecx
|
||||
add eax, ecx
|
||||
|
||||
mov ecx, [ebp]
|
||||
rol ecx, 8
|
||||
test cl, cl ; transparensy = 0
|
||||
jz .no_put
|
||||
|
||||
xor cl, cl
|
||||
ror ecx, 8
|
||||
|
||||
pushad
|
||||
mov edx, [d_width_calc_area + ebx*4]
|
||||
add edx, [_WinMapAddress]
|
||||
movzx edx, byte [eax+edx]
|
||||
cmp dl, byte 1
|
||||
jne @f
|
||||
|
||||
call dword [PUTPIXEL]; eax - x, ebx - y
|
||||
;--------------------------------------
|
||||
align 4
|
||||
@@:
|
||||
popad
|
||||
;--------------------------------------
|
||||
align 4
|
||||
.no_put:
|
||||
pop ecx eax
|
||||
|
||||
sub ebp, 4
|
||||
dec ecx
|
||||
jnz .start_x
|
||||
|
||||
pop edx ecx
|
||||
dec ebx
|
||||
dec edx
|
||||
jnz .start_y
|
||||
|
||||
popad
|
||||
ret
|
||||
;-----------------------------------------------------------------------------
|
||||
align 4
|
||||
syscall_drawline: ; DrawLine
|
||||
|
||||
mov edi, [TASK_BASE]
|
||||
|
Loading…
Reference in New Issue
Block a user