Subversion Repositories Kolibri OS

Rev

Rev 2489 | Rev 2511 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2489 Rev 2509
Line 67... Line 67...
67
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
67
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 68... Line 68...
68
 
68
 
69
include 'macros.inc'
69
include 'macros.inc'
Line 70... Line 70...
70
include 'struct.inc'
70
include 'struct.inc'
Line 71... Line 71...
71
 
71
 
Line 72... Line 72...
72
$Revision: 2489 $
72
$Revision: 2509 $
Line 4685... Line 4685...
4685
        xchg    eax, ebx
4685
        xchg    eax, ebx
4686
        and     ecx, 0xFBFFFFFF  ;negate 0x04000000 use mouseunder area
4686
        and     ecx, 0xFBFFFFFF  ;negate 0x04000000 use mouseunder area
4687
        call    dword [GETPIXEL]; eax - x, ebx - y
4687
        call    dword [GETPIXEL]; eax - x, ebx - y
4688
        mov     [esp + 32], ecx
4688
        mov     [esp + 32], ecx
4689
        ret
4689
        ret
4690
 
-
 
-
 
4690
;-----------------------------------------------------------------------------
4691
align 4
4691
align 4
4692
 
-
 
4693
syscall_getarea:
4692
syscall_getarea:
4694
;eax = 36
4693
;eax = 36
4695
;ebx = pointer to bufer for img BBGGRRBBGGRR...
4694
;ebx = pointer to bufer for img BBGGRRBBGGRR...
4696
;ecx = [size x]*65536 + [size y]
4695
;ecx = [size x]*65536 + [size y]
4697
;edx = [start x]*65536 + [start y]
4696
;edx = [start x]*65536 + [start y]
Line 4723... Line 4722...
4723
 
4722
 
4724
        add     ebp, esi
4723
        add     ebp, esi
Line 4725... Line 4724...
4725
        add     ebp, edi
4724
        add     ebp, edi
-
 
4725
 
4726
 
4726
        add     ebx, edx
4727
        add     ebx, edx
4727
;--------------------------------------
4728
 
4728
align 4
-
 
4729
.start_y:
-
 
4730
        push    ecx edx
4729
.start_y:
4731
;--------------------------------------
4730
        push    ecx edx
4732
align 4
4731
.start_x:
4733
.start_x:
Line 4732... Line 4734...
4732
        push    eax ebx ecx
4734
        push    eax ebx ecx
Line 4747... Line 4749...
4747
        dec     ebx
4749
        dec     ebx
4748
        dec     edx
4750
        dec     edx
4749
        jnz     .start_y
4751
        jnz     .start_y
4750
        popad
4752
        popad
4751
        ret
4753
        ret
-
 
4754
;-----------------------------------------------------------------------------
-
 
4755
align 4
-
 
4756
syscall_putarea_backgr:
-
 
4757
;eax = 25
-
 
4758
;ebx = pointer to bufer for img BBGGRRBBGGRR...
-
 
4759
;ecx = [size x]*65536 + [size y]
-
 
4760
;edx = [start x]*65536 + [start y]
-
 
4761
        pushad
-
 
4762
        mov     edi, ebx
-
 
4763
        mov     eax, edx
-
 
4764
        shr     eax, 16
-
 
4765
        mov     ebx, edx
-
 
4766
        and     ebx, 0xffff
-
 
4767
        dec     eax
-
 
4768
        dec     ebx
-
 
4769
; eax - x, ebx - y
-
 
4770
        mov     edx, ecx
-
 
4771
        shr     ecx, 16
-
 
4772
        and     edx, 0xffff
-
 
4773
        mov     esi, ecx
-
 
4774
; ecx - size x, edx - size y
-
 
4775
        mov     ebp, edx
-
 
4776
        dec     ebp
-
 
4777
        shl     ebp, 2
-
 
4778
 
-
 
4779
        imul    ebp, esi
Line -... Line 4780...
-
 
4780
 
-
 
4781
        mov     esi, ecx
-
 
4782
        dec     esi
-
 
4783
        shl     esi, 2
-
 
4784
 
-
 
4785
        add     ebp, esi
-
 
4786
        add     ebp, edi
-
 
4787
 
-
 
4788
        add     ebx, edx
-
 
4789
;--------------------------------------
-
 
4790
align 4
-
 
4791
.start_y:
-
 
4792
        push    ecx edx
-
 
4793
;--------------------------------------
-
 
4794
align 4
-
 
4795
.start_x:
-
 
4796
        push    eax ecx
-
 
4797
        add     eax, ecx
-
 
4798
 
-
 
4799
        mov     ecx, [ebp]
-
 
4800
        rol     ecx, 8
-
 
4801
        test    cl, cl        ; transparensy = 0
-
 
4802
        jz      .no_put
-
 
4803
 
-
 
4804
        xor     cl, cl
-
 
4805
        ror     ecx, 8
-
 
4806
 
-
 
4807
        pushad
-
 
4808
        mov     edx, [d_width_calc_area + ebx*4]
-
 
4809
        add     edx, [_WinMapAddress]
-
 
4810
        movzx   edx, byte [eax+edx]
-
 
4811
        cmp     dl, byte 1
-
 
4812
        jne     @f
-
 
4813
 
-
 
4814
        call    dword [PUTPIXEL]; eax - x, ebx - y
-
 
4815
;--------------------------------------
-
 
4816
align 4
-
 
4817
@@:
-
 
4818
        popad
4752
 
4819
;--------------------------------------
-
 
4820
align 4
-
 
4821
.no_put:
Line -... Line 4822...
-
 
4822
        pop     ecx eax
-
 
4823
        
-
 
4824
        sub     ebp, 4
-
 
4825
        dec     ecx
-
 
4826
        jnz     .start_x
-
 
4827
 
-
 
4828
        pop     edx ecx
-
 
4829
        dec     ebx
-
 
4830
        dec     edx
-
 
4831
        jnz     .start_y
-
 
4832
 
-
 
4833
        popad
-
 
4834
        ret
4753
align 4
4835
;-----------------------------------------------------------------------------
Line 4754... Line 4836...
4754
 
4836
align 4
4755
syscall_drawline:                       ; DrawLine
4837
syscall_drawline:                       ; DrawLine
4756
 
4838