Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 9569 → Rev 9570

/programs/develop/libraries/buf2d/trunk/buf2d.asm
1646,11 → 1646,9
 
;¯¥à¥¢®à ç¨¢ ¥¬ §­ ç¥­¨ï ¯à®§à ç­®á⥩
neg edi
inc edi
add edi,255
add edi,256
neg esi
inc esi
add esi,255
add esi,256
 
movzx ecx,byte[eax]
imul ecx,edi
1694,8 → 1692,7
shr ecx,1
;¯¥à¥¢®à ç¨¢ ¥¬ §­ ç¥­¨ï ¯à®§à ç­®áâ¨
neg ecx
inc ecx
add ecx,255
add ecx,256
 
shl ecx,24
add ebx,ecx
1704,10 → 1701,10
 
jmp .end_f
.c0_c1: ;¥á«¨ ¯à®§à ç­®á⨠®¡®¨å 梥⮢ ᮢ¯ ¤ îâ
mov edx,dword[eax]
mov edx,[eax]
shr edx,1
and edx,011111110111111101111111b
mov esi,dword[ebx]
mov esi,[ebx]
shr esi,1
and esi,011111110111111101111111b
add edx,esi
1715,16 → 1712,16
or edx,edi
jmp .end_f
.c0z: ;¥á«¨ 梥⠢ eax ¯à®§à ç­ë©
mov edx,dword[ebx]
mov edx,[ebx]
movzx edi,byte[ebx+3]
jmp @f
.c1z: ;¥á«¨ 梥⠢ ebx ¯à®§à ç­ë©
mov edx,dword[eax]
mov edx,[eax]
@@:
add edi,255 ;¤¥« ¥¬ 梥⠭  ¯®«®¢¨­ã ¯à®§à ç­ë¬
shr edi,1
cmp edi,255
jl @f
jle @f
mov edi,255 ;¬ ªá¨¬ «ì­ ï ¯à®§à ç­®áâì ­¥ ¡®«¥¥ 255
@@:
shl edi,24
2271,15 → 2268,28
endp
 
;input:
; esi = pointer to color1 + transparent
; edi = pointer to background color2
; esi = pointer to color1 + transparent (32b)
; edi = pointer to background color2 (24b)
;output:
; [edi] = combine color
; [edi] = combine color (24b)
align 4
combine_colors_0:
push ax bx cx dx
mov bx,0x00ff ;---get transparent---
push ax cx
movzx cx,byte[esi+3] ;pro
cmp cx,255
je .end_f
or cx,cx
jnz @f
mov ax,[esi]
mov [edi],ax
mov al,[esi+2]
mov [edi+2],al
jmp .end_f
align 4
@@:
inc cx
push bx dx
mov bx,0x0100 ;---get transparent---
sub bx,cx ;256-pro
;---blye---
movzx ax,byte[esi]
2302,8 → 2312,9
imul dx,cx
add ax,dx
mov byte[edi+2],ah
 
pop dx cx bx ax
pop dx bx
.end_f:
pop cx ax
ret
 
;äã­ªæ¨ï ª®¯¨àã¥â ¨§®¡à ¦¥­¨¥ ¨§ ¡ãä¥à  buf_source (32b) ¢ buf_destination (24b)
2426,17 → 2437,28
endp
 
;input:
; ebx - color1
; esi = pointer to transparent
; edi = pointer to background color2
; ebx - color1 (24b)
; esi = pointer to transparent (8b)
; edi = pointer to background color2 (24b)
;output:
; [edi] = combine color
; [edi] = combine color (24b)
align 4
combine_colors_2:
push ax ebx cx dx si
mov cl,byte[esi] ;pro
xor ch,ch
mov si,0x00ff ;---get transparent---
push ebx cx
movzx cx,byte[esi] ;pro
cmp cx,255
je .end_f
or cx,cx
jnz @f
mov [edi],bx
shr ebx,16
mov [edi+2],bl
jmp .end_f
align 4
@@:
inc cx
push ax dx si
mov si,0x0100 ;---get transparent---
sub si,cx ;256-pro
 
;---blye---
2462,8 → 2484,9
imul dx,cx
add ax,dx
mov byte[edi+2],ah
 
pop si dx cx ebx ax
pop si dx ax
.end_f:
pop cx ebx
ret
 
;äã­ªæ¨ï ª®¯¨àã¥â ¨§®¡à ¦¥­¨¥ ¨§ ¡ãä¥à  buf_source (8b) ¢ buf_destination (24b)