freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Git][freetype/freetype][master] [raster] Sweep polishing.


From: Alexei Podtelezhnikov (@apodtele)
Subject: [Git][freetype/freetype][master] [raster] Sweep polishing.
Date: Tue, 21 Nov 2023 15:17:02 +0000

Alexei Podtelezhnikov pushed to branch master at FreeType / FreeType

Commits:

  • d77dd24b
    by Alexei Podtelezhnikov (Алексей Подтележников) at 2023-11-21T15:16:56+00:00
    [raster] Sweep polishing.
    
    * src/raster/ftraster.c (*_Sweep_Span): Polish.
    (*_Sweep_Drop): Restore tracing, polish.
    (Draw_Sweep): Simplify the dropout processing loop.

1 changed file:

Changes:

  • src/raster/ftraster.c
    ... ... @@ -1989,7 +1989,8 @@
    1989 1989
                                     FT_F26Dot6  x1,
    
    1990 1990
                                     FT_F26Dot6  x2 )
    
    1991 1991
       {
    
    1992
    -    Int  e1, e2;
    
    1992
    +    Int  e1 = (Int)TRUNC( CEILING( x1 ) );
    
    1993
    +    Int  e2 = (Int)TRUNC(   FLOOR( x2 ) );
    
    1993 1994
     
    
    1994 1995
         FT_UNUSED( y );
    
    1995 1996
     
    
    ... ... @@ -1999,12 +2000,9 @@
    1999 2000
                     ras.precision_bits, (double)x1 / (double)ras.precision,
    
    2000 2001
                     ras.precision_bits, (double)x2 / (double)ras.precision ));
    
    2001 2002
     
    
    2002
    -    e1 = (Int)TRUNC( CEILING( x1 ) );
    
    2003
    -    e2 = (Int)TRUNC( FLOOR( x2 ) );
    
    2004
    -
    
    2005 2003
         if ( e2 >= 0 && e1 <= ras.bRight )
    
    2006 2004
         {
    
    2007
    -      Byte*  target;
    
    2005
    +      PByte  target;
    
    2008 2006
     
    
    2009 2007
           Int   c1, f1, c2, f2;
    
    2010 2008
     
    
    ... ... @@ -2066,19 +2064,22 @@
    2066 2064
         /* otherwise check that the other pixel isn't set */
    
    2067 2065
         else if ( e2 >=0 && e2 <= ras.bRight )
    
    2068 2066
         {
    
    2069
    -      c1 = (Int)( e2 >> 3 );
    
    2070
    -      f1 = (Int)( e2 &  7 );
    
    2067
    +      c1 = e2 >> 3;
    
    2068
    +      f1 = 0x80 >> ( e2 & 7 );
    
    2071 2069
     
    
    2072
    -      if ( ras.bLine[c1] & ( 0x80 >> f1 ) )
    
    2070
    +      if ( ras.bLine[c1] & f1 )
    
    2073 2071
             return;
    
    2074 2072
         }
    
    2075 2073
     
    
    2076 2074
         if ( e1 >= 0 && e1 <= ras.bRight )
    
    2077 2075
         {
    
    2078
    -      c1 = (Int)( e1 >> 3 );
    
    2079
    -      f1 = (Int)( e1 &  7 );
    
    2076
    +      c1 = e1 >> 3;
    
    2077
    +      f1 = 0x80 >> ( e1 & 7 );
    
    2078
    +
    
    2079
    +      FT_TRACE7(( "  y=%d x=%d%s\n", y, e1,
    
    2080
    +                  ras.bLine[c1] & f1 ? " redundant" : "" ));
    
    2080 2081
     
    
    2081
    -      ras.bLine[c1] |= 0x80 >> f1;
    
    2082
    +      ras.bLine[c1] |= f1;
    
    2082 2083
         }
    
    2083 2084
       }
    
    2084 2085
     
    
    ... ... @@ -2115,7 +2116,8 @@
    2115 2116
                                       FT_F26Dot6  x1,
    
    2116 2117
                                       FT_F26Dot6  x2 )
    
    2117 2118
       {
    
    2118
    -    Long  e1, e2;
    
    2119
    +    Long  e1 = CEILING( x1 );
    
    2120
    +    Long  e2 =   FLOOR( x2 );
    
    2119 2121
     
    
    2120 2122
     
    
    2121 2123
         FT_TRACE7(( "  x=%d y=[% .*f;% .*f]",
    
    ... ... @@ -2129,8 +2131,6 @@
    2129 2131
         /*                                                            */
    
    2130 2132
         /* XXX: Can we handle horizontal lines better and drop this?  */
    
    2131 2133
     
    
    2132
    -    e1 = CEILING( x1 );
    
    2133
    -
    
    2134 2134
         if ( x1 == e1 )
    
    2135 2135
         {
    
    2136 2136
           e1 = TRUNC( e1 );
    
    ... ... @@ -2151,8 +2151,6 @@
    2151 2151
           }
    
    2152 2152
         }
    
    2153 2153
     
    
    2154
    -    e2 = FLOOR  ( x2 );
    
    2155
    -
    
    2156 2154
         if ( x2 == e2 )
    
    2157 2155
         {
    
    2158 2156
           e2 = TRUNC( e2 );
    
    ... ... @@ -2209,6 +2207,9 @@
    2209 2207
           bits  = ras.bOrigin + ( y >> 3 ) - e1 * ras.bPitch;
    
    2210 2208
           f1    = 0x80 >> ( y & 7 );
    
    2211 2209
     
    
    2210
    +      FT_TRACE7(( "  x=%d y=%d%s\n", y, e1,
    
    2211
    +                  *bits & f1 ? " redundant" : "" ));
    
    2212
    +
    
    2212 2213
           *bits |= f1;
    
    2213 2214
         }
    
    2214 2215
       }
    
    ... ... @@ -2402,7 +2403,7 @@
    2402 2403
             P_Left  = draw_left;
    
    2403 2404
             P_Right = draw_right;
    
    2404 2405
     
    
    2405
    -        while ( dropouts && P_Left && P_Right )
    
    2406
    +        while ( dropouts )
    
    2406 2407
             {
    
    2407 2408
               if ( P_Left->flags & Dropout )
    
    2408 2409
               {
    


  • reply via email to

    [Prev in Thread] Current Thread [Next in Thread]