Subversion Repositories Kolibri OS

Rev

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

Rev 2736 Rev 6619
Line 745... Line 745...
745
	 push	    dword 0x01010101
745
	 push	    dword 0x01010101
746
	 movss	    xmm5,[esp]
746
	 movss	    xmm5,[esp]
747
	 shufps     xmm5,xmm5,0
747
	 shufps     xmm5,xmm5,0
748
     .again_blur:
748
     .again_blur:
749
	 push	    ecx
749
	 push	    ecx
750
	 mov	    edi,screen
750
	 mov	    edi,[screen_ptr]
-
 
751
	 movzx	    ecx,word[size_x_var]  ;SIZE_X*3/4
-
 
752
	 lea	    ecx,[ecx*3]
-
 
753
	 shr	    ecx,2
751
	 mov	    ecx,SIZE_X*3/4
754
   ;      mov        ecx,SIZE_X*3/4
752
	 xor	    eax,eax
755
	 xor	    eax,eax
753
	 rep	    stosd
756
	 rep	    stosd
754
 
757
   if 1
-
 
758
	 movzx	    ebx,word[size_x_var]
-
 
759
	 movzx	    ecx,word[size_y_var]
-
 
760
	 sub	    ecx,3
-
 
761
	 imul	    ecx,ebx
-
 
762
	 lea	    ecx,[ecx*3]
-
 
763
	 shr	    ecx,4
-
 
764
	 lea	    ebx,[ebx*3]
755
	 mov	    ecx,(SIZE_X*(SIZE_Y-3))*3/16
765
       ;  mov        ecx,(SIZE_X*(SIZE_Y-3))*3/16
756
     .blr:
766
     .blr:
757
     @@:
767
     @@:
-
 
768
	 push	    ecx
758
	 movaps     xmm0,[edi+SIZE_X*3]
769
	 movups     xmm0,[edi+ebx]
-
 
770
	 mov	    ecx,edi
-
 
771
	 sub	    ecx,ebx
759
	 movaps     xmm1,[edi-SIZE_X*3]
772
	 movups     xmm1,[ecx]
760
	 movups     xmm2,[edi-3]
773
	 movups     xmm2,[edi-3]
761
	 movups     xmm3,[edi+3]
774
	 movups     xmm3,[edi+3]
Line 762... Line 775...
762
 
775
 
763
	 pavgb	    xmm0,xmm1
776
	 pavgb	    xmm0,xmm1
764
	 pavgb	    xmm2,xmm3
777
	 pavgb	    xmm2,xmm3
Line 765... Line 778...
765
	 pavgb	    xmm0,xmm2
778
	 pavgb	    xmm0,xmm2
Line 766... Line 779...
766
 
779
 
767
	 psubusb    xmm0,xmm5  ; importand if fire
780
	 psubusb    xmm0,xmm5  ; importand if fire
768
 
781
 
769
	 movaps     [edi],xmm0
782
	 movups     [edi],xmm0
770
	 add	    edi,16
783
	 add	    edi,16
771
	 add	    esi,16
784
	 add	    esi,16
772
 
785
	 pop	    ecx
-
 
786
	 loop	    .blr
-
 
787
    end if
-
 
788
	 xor	    eax,eax
773
	 loop	    .blr
789
	 movzx	    ecx,word[size_x_var]
774
 
790
	 lea	    ecx,[ecx*3]
775
	 xor	    eax,eax
791
	 shr	    ecx,2
776
	 mov	    ecx,SIZE_X*3/4
792
    ;     mov        ecx,SIZE_X*3/4
777
	 rep	    stosd
793
	 rep	    stosd
778
	 pop	    ecx
794
	 pop	    ecx
Line 788... Line 804...
788
	 push	    dword 0x01010101
804
	 push	    dword 0x01010101
789
	 push	    dword 0x01010101
805
	 push	    dword 0x01010101
790
	 movq	    mm4,[esp]
806
	 movq	    mm4,[esp]
791
     .again_blur:
807
     .again_blur:
792
	 push	    ecx
808
	 push	    ecx
793
	 mov	    edi,screen
809
	 mov	    edi,[screen_ptr]
-
 
810
	 movzx	    ecx,word[size_x_var]  ;SIZE_X*3/4
794
	 mov	    ecx,SIZE_X*3/4
811
	 lea	    ecx,[ecx*3]
-
 
812
	 shr	    ecx,2
795
     ;    pxor       mm5,mm5
813
     ;    pxor       mm5,mm5
796
	 xor	    eax,eax
814
	 xor	    eax,eax
797
	 rep	    stosd
815
	 rep	    stosd
-
 
816
	 movzx	    ebx,word[size_x_var]
-
 
817
	 movzx	    ecx,word[size_y_var]
-
 
818
	 sub	    ecx,3
-
 
819
	 imul	    ecx,ebx
-
 
820
	 lea	    ecx,[ecx*3]
798
 
821
	 shr	    ecx,3
-
 
822
	 lea	    ebx,[ebx*3]
799
	 mov	    ecx,(SIZE_X*(SIZE_Y-3))*3/8
823
       ;  mov        ecx,(SIZE_X*(SIZE_Y-3))*3/8
800
     .blr:
824
     .blr:
801
     @@:
825
     @@:
802
	 movq	    mm0,[edi+SIZE_X*3]
826
	 movq	    mm0,[edi+ebx]
803
	 movq	    mm1,[edi-SIZE_X*3]
827
	 movq	    mm1,[edi-ebx]
804
	 movq	    mm2,[edi-3]
828
	 movq	    mm2,[edi-3]
805
	 movq	    mm3,[edi+3]
829
	 movq	    mm3,[edi+3]
Line 806... Line 830...
806
 
830
 
807
	 pavgb	    mm0,mm1
831
	 pavgb	    mm0,mm1
Line 815... Line 839...
815
	 add	     esi,8
839
	 add	     esi,8
Line 816... Line 840...
816
 
840
 
Line 817... Line 841...
817
	 loop	     .blr
841
	 loop	     .blr
-
 
842
 
-
 
843
	 xor	    eax,eax
-
 
844
	 mov	    ecx,[size_x_var]
818
 
845
	 lea	    ecx,[ecx*3]
819
	 xor	    eax,eax
846
	 shr	    ecx,2
820
	 mov	    ecx,SIZE_X*3/4
847
       ;  SIZE_X*3/4
821
	 rep	    stosd
848
	 rep	    stosd
822
	 pop	     ecx
849
	 pop	     ecx
823
	 loop	    .again_blur
850
	 loop	    .again_blur
Line 831... Line 858...
831
	 mov	    ebp,esp
858
	 mov	    ebp,esp
832
	 push	    dword 0x0
859
	 push	    dword 0x0
833
	 push	    dword 0x01010101
860
	 push	    dword 0x01010101
834
.again_blur:
861
.again_blur:
835
	 push	    ecx
862
	 push	    ecx
836
	 mov	    edi,screen
863
	 mov	    edi,[screen_ptr]
837
	 mov	    ecx,SIZE_X*3/4
864
	 mov	    ecx,SIZE_X*3/4
838
	 pxor	    mm5,mm5
865
	 pxor	    mm5,mm5
839
	 xor	    eax,eax
866
	 xor	    eax,eax
840
	 rep	    stosd
867
	 rep	    stosd