forked from KolibriOS/kolibrios
flag client relative for blit
git-svn-id: svn://kolibrios.org@6790 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
4f831a4d79
commit
54932fe994
@ -362,6 +362,8 @@ SYSTEM_SHUTDOWN equ 2
|
||||
SYSTEM_REBOOT equ 3
|
||||
SYSTEM_RESTART equ 4
|
||||
|
||||
BLIT_CLIENT_RELATIVE equ 0x20000000
|
||||
|
||||
struct SYSCALL_STACK
|
||||
_eip dd ?
|
||||
_edi dd ? ; +4
|
||||
|
@ -4335,14 +4335,15 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
* eax = 73 - номер функции
|
||||
|
||||
* ebx = ROP и опциональные флаги
|
||||
31 6 5 4 3 0
|
||||
[ reserved ][T][B][ROP]
|
||||
31 30 29 28 6 5 4 3 0
|
||||
[reserved][CR][reserved][T][B][ROP]
|
||||
ROP - код растровых операций
|
||||
0: копировать
|
||||
1-15: Зарезервировано
|
||||
B - блит на фоновую поферхность
|
||||
T - блит с прозрачностью
|
||||
|
||||
CR - относительно клиентской области окна
|
||||
|
||||
* ecx = указатель на параметры функции
|
||||
смещение цели и отсечение
|
||||
+0 signed dword: смещение по X окна, для целевого прямоугольника
|
||||
|
@ -4285,13 +4285,14 @@ Parameters:
|
||||
* eax = 73 - function number
|
||||
|
||||
* ebx = ROP and optional flags
|
||||
31 6 5 4 3 0
|
||||
[ reserved ][T][B][ROP]
|
||||
31 30 29 28 6 5 4 3 0
|
||||
[reserved][CR][reserved][T][B][ROP]
|
||||
ROP - raster operation code
|
||||
0: Copy
|
||||
1-15: reserved
|
||||
B - blit into the background surface
|
||||
T - transparent blit
|
||||
CR - blit client relative
|
||||
|
||||
* ecx = pointer to the function parameters
|
||||
destination offset and clipping
|
||||
|
@ -206,10 +206,13 @@ virtual at sizeof.BLITTER
|
||||
.position dd ? ; (x shl 16) + y
|
||||
; ???
|
||||
.extra_var1 dd ?
|
||||
.flags dd ?
|
||||
.local_vars_size = $
|
||||
end virtual
|
||||
sub esp, .local_vars_size
|
||||
|
||||
|
||||
mov [esp+.flags], ebx
|
||||
|
||||
mov eax, [TASK_BASE]
|
||||
mov ebx, [eax-twdw + WDATA.box.width]
|
||||
mov edx, [eax-twdw + WDATA.box.height]
|
||||
@ -262,6 +265,14 @@ end virtual
|
||||
mov ebp, [esp+BLITTER.dst_y]
|
||||
add ebx, [eax-twdw + WDATA.box.left]
|
||||
add ebp, [eax-twdw + WDATA.box.top]
|
||||
|
||||
test [esp+.flags], BLIT_CLIENT_RELATIVE
|
||||
jz .no_client_relative
|
||||
|
||||
mov eax, [current_slot]
|
||||
add ebx, [eax + APPDATA.wnd_clientbox.left]
|
||||
add ebp, [eax + APPDATA.wnd_clientbox.top]
|
||||
.no_client_relative:
|
||||
|
||||
mov ecx, ebx
|
||||
add ecx, [esp+BLITTER.w]
|
||||
|
Loading…
Reference in New Issue
Block a user